Documentation

Set up your library.

Install Gaming Memories, connect each source, and publish your library as a website.

01

Start

Install the app

Use the package for your desktop platform. Each release includes a SHA256SUMS file for file checks.

No release is visible?

The project can show the release page before the first public build exists.

Windows

  1. Download gaming-memories-<version>-windows-x64.exe.
  2. Open the downloaded file.
  3. Select More info if Windows SmartScreen appears.
  4. Select Run anyway.

The EXE opens from a temporary folder. The app removes that folder after you close the app.

You can also download the ZIP file. Extract it before you open gaming_memories.exe.

Download latest
02

Library

Complete the first run

  1. 1

    Open Settings

    Select Settings at the bottom of the sidebar.

  2. 2

    Choose a library folder

    Select an empty folder or a folder that contains an existing Gaming Memories library.

  3. 3

    Enable a source

    Open a source card. Confirm its folder and options.

  4. 4

    Start the first scan

    Select the disk arrow in the sidebar. Wait for the completion notice.

Folder access on macOS

Allow access when macOS asks. The app keeps this access for later sessions.

03

Daily use

Collect and browse captures

The scan action checks every enabled source. It copies new media into the library.

Supported PC sources add the matching bundled logo when they create a game album. They keep an existing cover.* file. A cover switch controls the logo for sources that have one.

  • The timeline puts the newest media first.
  • The sidebar groups albums by platform and game.
  • Album lists sort names without regard to case or accents. Numbers in a name sort by value, so Game 2 comes before Game 10.
  • Album lists skip dot-prefixed folders. On Windows, they also skip folders with the hidden attribute.
  • The filter can show all media, images, or videos.
  • The sort control can reverse the date order.
  • The detail view can zoom, pan, copy, reveal, or delete media.

Automatic updates

The app watches the library after the first scan. New files appear without a full scan.

Duplicate file names

The app compares each file before a copy. A safe suffix protects different captures that use the same name.

04

Sources

Battle.net

Battle.net imports screenshots from game folders. Each game version gets its own album.

  1. Open Settings.
  2. Enable Battle.net.
  3. Review each detected game folder.
  4. Use a custom folder when automatic detection finds no match.

On Windows, Diablo IV screenshots are read from Pictures\Diablo IV and Documents\Diablo IV\Screenshots. On macOS, automatic World of Warcraft detection asks for access to its installation folder.

Version folders include _retail_, _classic_, _classic_era_, _anniversary_, _classic_beta_, and _forever_. On Windows and macOS, the source checks each version's Screenshots folder. On Linux, select each screenshot folder in Settings.

Windows checks Documents\Heroes of the Storm\Screenshots and Documents\Warcraft III\ScreenShots. macOS checks the Heroes of the Storm folder under Library/Application Support/Blizzard and the Warcraft III folder under Documents.

Legacy Overwatch checks Documents\Overwatch\ScreenShots\GameClientApp on Windows. Overwatch 2 checks the separate Overwatch folder. Select a custom folder if your captures use another path.

The source converts TGA screenshots to PNG. World of Warcraft and Warcraft III screenshots use the date in their file names. Other games use the file modification date.

05

Sources

Steam

Local screenshots

Steam can find the local userdata folder. You can also select that folder yourself.

Steam Web API key

Every Steam import needs a Steam Web API key. Without it, albums keep their numeric app ID as a name and no online screenshot is imported.

Online gallery

The online gallery also requires a SteamID64 value.

  1. Open the Steam source in Settings.
  2. Enable Online gallery.
  3. Enter your SteamID64 value.
  4. Enter your Steam Web API key.
  5. Save the source settings.

Ignored and custom apps

An app ID in Ignored apps gets no album, and its screenshots are never copied. Use it for tools, launchers, or games you do not want in the library.

A name in Custom apps replaces the name Steam reports for an app ID. Non-Steam shortcuts, betas, and delisted games need one for a readable album title. The name applies to existing albums on the next import.

Protect your API key

Do not share the key. Gaming Memories stores it in the local settings file.

06

Sources

PC games

Hytale

The app checks Pictures/Hytale Screenshots on macOS and Linux. A custom folder works on all platforms. The source can save the included cover in the album.

Minecraft

The app checks common launcher folders. It also supports two common Flatpak folder layouts on Linux.

Guild Wars 2

Select the game screenshot folder. The source uses each file date for the capture date.

07

Sources

Consoles

Nintendo Switch and Nintendo Switch 2

Each console has its own source, and both work the same way. Use a copied album folder on every platform. Linux can also read the console through USB.

  1. Open Album on the console.
  2. Select Copy to a Computer.
  3. Connect the console through USB.
  4. Close any file manager that uses the console.
  5. Start a scan in Gaming Memories.

USB collection needs the mtp-folders, mtp-files, and mtp-connect commands. Only one program can use the console at a time. Collect from one console at a time, because the libmtp tools answer for the first console they open.

The source imports original _s.jpg and _s.mp4 files. It ignores duplicate _c files. You can exclude single album folders in Settings, including the folder for captures taken outside a game.

PlayStation 4 and PlayStation 5

Copy each console export to your computer. Select the export folder in the related source settings.

With FFprobe, a PlayStation 5 clip is dated from its start. Without it, the clip uses the end time in its file name.

08

Publish

Publish your gallery

Gaming Memories can render your library as a static website and upload it to a host you control. Every album becomes one page, with folder tiles, a screenshot and clip filter, a sort control, and a lightbox.

On mobile, the site stays at its normal size. Pinch an image in the lightbox to zoom it. Drag the image to see more. Clips keep their normal playback controls.

Opening a capture shows the date it was taken, read from its file name where the source writes one there and from the file itself where it does not.

Every tile takes the shape of the image in it. A wide store banner, a square console cover, a 16:9 capture and a Game Boy's 10:9 one each appear whole, so nothing is cut off to fit a shape the page picked.

The pages are written to a folder of the app's own. Your library is never written to. The upload merges the two: captures and thumbnails from the library first, then the pages from that folder. A page never arrives before the media it links to, so the site stays usable during a publish.

Turn it on

  1. 1

    Open the Publish tab

    Select Settings, then Publish. Enable Publish the library as a website.

  2. 2

    Describe the site

    Enter the site title, author, address, and footer text. The address is used for social card links.

  3. 3

    Enter the destination

    Enter the host, port, user, and the remote folder your web server serves.

  4. 4

    Publish

    Select Publish in the sidebar, above Settings.

While a publish runs, the button becomes a progress panel with a stop control. Stopping ends the file in flight. Nothing is removed from the host after a stop.

Sign in

ChoiceWhat it uses
Automatic keyWhat this computer already has, the same way ssh finds it.
Key fileOne key you select, and only that key.
PasswordThe account password on the host.

Automatic is the default and needs no setup. It reads ~/.ssh/config for the host and uses IdentityAgent, IdentityFile, and IdentitiesOnly. An agent set up that way is found even though a desktop app receives no SSH_AUTH_SOCK value from your shell. Without those, the app uses SSH_AUTH_SOCK and then the usual ~/.ssh/id_ed25519, id_ecdsa, id_rsa, and id_dsa files.

No secret is stored

The app saves the path to a key file only. A passphrase or password is requested at publish time and kept in memory until the app closes.

Host keys

The first publish to a host accepts its key and remembers it. A later change is refused and nothing is uploaded. A host that ~/.ssh/known_hosts already holds is accepted without a new record.

A refused host key

The server was rebuilt, or another machine answers for that name. Confirm the new fingerprint before you publish again.

Transfer

Automatic uses rsync when this computer has version 3 or newer and no passphrase is required. Otherwise the upload uses SFTP, which needs no other program and works on every platform. A password always uses SFTP.

The rsync in macOS

macOS ships openrsync. It accepts the options a mirrored publish needs and then ignores them, so Gaming Memories uses SFTP instead. Install rsync 3 with Homebrew for the faster path. Gaming Memories looks for /opt/homebrew/bin/rsync before the rsync on PATH.

File and folder permissions are applied during the upload. 644 and 755 match chmod -R u=rwX,go=rX.

What is published

The whole library is published, except the platforms and albums in Excluded albums. A path there is relative to the library folder, such as Steam or Steam/My Private Game.

With Mirror the library enabled, anything the gallery no longer holds is removed from the host as well.

Platform tiles use covers included with the app for Android, Game Boy, Game Boy Advance, Game Boy Color, Nintendo Switch, Nintendo Switch 2, PC, Pico-8, PlayStation 4, PlayStation 5, and Super Nintendo. A cover.* file in a platform folder replaces the included cover.

Each page carries a light and a dark theme and follows the reader's system setting. There is nothing to press.

The gallery also publishes gaming-memories.webp at its root, which is the logo the page footers show.

09

Reference

Optional tools

ToolPurposeResult without the tool
FFmpegCreate video thumbnailsThe app uses existing thumbnail sidecar files.
FFprobeRead video duration and clip start timeVideos still play, but some details can be absent.
libmtp toolsRead Nintendo Switch and Nintendo Switch 2 media through USB on LinuxUse a copied album folder.
rsync 3 or newerUpload a published gallery fasterThe upload uses SFTP, which needs no other program.
10

Reference

Library format

The library uses normal folders. You can browse it without the app.

Gaming Memories/
├── PC/
│   └── Minecraft/
│       ├── cover.png
│       └── 2026-09-16_17-09-14.png
├── Steam/
│   └── Guild Wars 2/
└── PlayStation 5/
    └── Horizon Forbidden West/

Do not change files during a scan. The library watcher will detect changes after the scan.

11

Help

Troubleshoot issues

The source finds no captures.+

Check these items:

  • The source is enabled.
  • The selected folder exists.
  • The folder contains a supported file type.
  • macOS folder access is active.
A video has no thumbnail.+

Install FFmpeg. Start a new scan after the installation.

Nintendo Switch USB access fails on Linux.+

Install the libmtp tools. Close any file manager that uses the console.

A publish reports a refused host key.+

The host answers with a different key than the one recorded on the first publish. Confirm the fingerprint with the server owner. The server was rebuilt, or another machine answers for that name.

A publish finds no SSH key.+

Add the key to your SSH agent, name it with IdentityFile in ~/.ssh/config, or select Key file in the Publish settings.

A SmartScreen warning appears on Windows.+

The Windows build has no code signature. Select More info. Select Run anyway.

Diagnostic log

The app writes a local diagnostic log. Add the relevant part when you report an issue.

Open an issue on GitHub →
12

Development

Build from source

Install Flutter 3.47.0 or newer. Install FVM and the Flutter desktop tools for your platform.

git clone https://github.com/fmartingr/gaming-memories.git
cd gaming-memories
make setup
make run

Use make check to run the format, analysis, and test checks.

Read the release guide for package details.