Skip to content

Scrapers and Metadata

60plus edited this page Jul 11, 2026 · 4 revisions

Scrapers & Metadata

GamesDownloader enriches your library with artwork, descriptions, ratings, and playtime pulled from external providers. This page covers every source, how to obtain the credentials each one needs, how titles are matched, and how the built-in metadata editor lets you fine-tune the result.

All scraped media is downloaded to your server and served locally. Covers, heroes, screenshots, logos and videos are fetched once and stored under data/resources/, then served from your own instance. Nothing is hot-linked from a third-party CDN at browse time, so your library keeps working even if a provider goes offline or rate-limits you.


Contents


The keyed scrapers

Settings → Metadata: scraper credentials, each with a Test button

Settings → Metadata: scraper credentials, each with a Test button

Four providers need credentials, entered under Settings → Metadata. Each row has a Test button that verifies the credentials against the live service before you save. All four are optional; add only the ones you want.

IGDB

Game metadata, covers, ratings, and franchise data. IGDB authenticates through Twitch, so you create a Twitch application, not an IGDB one:

  1. Sign in at dev.twitch.tv/console/apps and click Register Your Application.
  2. Give it any name, set the OAuth Redirect URL to http://localhost, category Application Integration.
  3. Copy the Client ID and generate a Client Secret.
  4. Paste both into Settings → Metadata → IGDB and click Test.

RAWG

Backgrounds, descriptions, and ratings from RAWG.io.

  1. Go to rawg.io/apidocs and request a free API key.
  2. Paste it into Settings → Metadata → RAWG.

SteamGridDB

Community artwork: grid covers, hero banners, logos, and icons (including animated WebP variants).

  1. Sign in at steamgriddb.com, open Preferences → API.
  2. Generate an API key and paste it into Settings → Metadata → SteamGridDB.

ScreenScraper

The primary ROM metadata source: covers, heroes, screenshots, support art, videos, descriptions, and scores. ScreenScraper needs a free user account:

  1. Register at screenscraper.fr.
  2. Enter your account username and password under Settings → Metadata → ScreenScraper.

Developer credentials (optional). ScreenScraper's API also expects a registered developer identity. GamesDownloader ships with a built-in one, so scraping works out of the box with just your user account. The developer credentials fields let you supply your own registered ScreenScraper dev ID and password if you have them (useful for higher personal rate limits). Leave them blank to use the built-in default. The lookup order is: your configured dev credentials, then the SCREENSCRAPER_DEVID / SCREENSCRAPER_DEVPASSWORD environment variables if set, then the built-in default.


Built-in, keyless sources

These need no configuration and are always available:

Source Provides Notes
GOG Covers, backgrounds, logos, descriptions, requirements, ratings Pulled from your connected GOG account for GOG titles. See GOG Integration.
LaunchBox ROM covers (Box-Front, Box-3D, Fanart), heroes, screenshots, clear logos, descriptions, ratings The metadata archive is downloaded on first boot and built into an on-disk SQLite index (persistent, near-zero RAM after the first build).
HowLongToBeat Playtime estimates (Main Story, 100%) Shown on GOG, Custom Games, and ROM detail pages.
Steam Requirements, ratings For the GOG / Custom Games library.
SystemRequirementsLab System requirements For the GOG / Custom Games library.

What each source provides

GOG and Custom Games library

Source Covers Backgrounds Logos Description Requirements Rating Playtime
GOG + + + + + +
SteamGridDB + + +
IGDB + + +
RAWG + + +
Steam + +
SystemRequirementsLab +
HowLongToBeat +

ROM library

Source Cover Hero Screenshots Support / Bezel / Wheel Steam Grid Video Description Score Playtime
ScreenScraper + + + + + + +
IGDB + + + +
LaunchBox + + + + + +
SteamGridDB + + + +
Plugins + + + + + +
HowLongToBeat +

A single scrape pass queries all configured sources for a title and merges the results, so you get the best available artwork and data from across providers in one go.


How title matching works

GOG and Custom Games

Matching is title-based. GamesDownloader normalises the game name and searches each provider, using smart matching to avoid wrong-game results (for example, distinguishing a remaster from the original, or ignoring edition suffixes). You can always override the match manually in the Edit Metadata panel.

ROMs

ROM matching is far more precise because it is hash-based:

  1. Hash match (most accurate). GamesDownloader computes CRC32, MD5, and SHA1 of the ROM and looks it up in the provider's database. For .zip and .7z archives the hash is taken from the ROM inside the archive, not the archive itself, so compression does not break matching.
  2. Filename match. If no hash match is found, the filename is used.
  3. Name search. As a last resort, a text search on the cleaned-up title.

This is why ROM scraping is usually spot-on: an exact hash identifies the precise revision of a game.


The Edit Metadata panel

The Edit Metadata panel with combined multi-source search

The Edit Metadata panel with combined multi-source search

Every game has an Edit Metadata editor for reviewing and overriding what was scraped. Highlights:

  • Combined multi-source search across ScreenScraper, IGDB, LaunchBox, SteamGridDB, and metadata plugins, with icon-based source filter buttons and per-source result counts.
  • Ten tabs for ROMs: Cover, Hero, Screenshots, Support, Bezel, Wheel, Steam Grid, Video, Description, Details.
  • Per-field Apply. The Description and Details tabs show each source side by side so you can apply, say, the IGDB description but the ScreenScraper score.
  • Box-art variant picker (front, 3D, back, spine) and a manual URL override for any image.
  • Scrape this version re-scrapes a single result from ScreenScraper or LaunchBox.
  • Source badges with provider icons appear on every cover thumbnail so you always know where an image came from.

For the preferred ROM cover, GamesDownloader defaults to the 2D box art from the ScreenScraper region; you can switch variant per game.


Metadata backup and restore

The bottom of Settings → Metadata has a backup and restore tool:

  • Backup exports your scraped metadata (and, optionally, the downloaded media and your settings) into a single downloadable archive, with live counts of how many rows and how much media will be included.
  • Restore imports such an archive, with independent toggles for metadata, media, and settings, and a summary of inserted / updated / skipped rows afterwards.

This lets you move a fully-scraped library to another instance, or keep an offline snapshot, without re-scraping everything.


Plugins as metadata providers

Metadata plugins add extra sources that behave exactly like the built-in ones: they contribute covers, heroes, logos, screenshots, descriptions, and ratings across the GOG, Custom Games, and ROM libraries, and they appear in the Edit Metadata search alongside the native providers. Examples on the store include TheGamesDB and PPE.pl. See Plugin Development to write your own.


Where credentials are stored

All scraper credentials you enter in Settings → Metadata are stored in the application database and encrypted at rest (with a key derived from your GD_AUTH_SECRET_KEY). They are not read from environment variables, and you should never put them in .env - that would keep them in plaintext for no benefit. See Configuration → Infrastructure vs in-app settings.


Next: Email & Notifications or Network & Security.

Clone this wiki locally