Skip to content

Metadata Gateway

Scryer does not call TVDB or TMDB directly, and you do not need your own API keys. Title search, artwork, and episode data come through the Scryer Metadata Gateway (SMG), a hosted GraphQL relay that caches normalized metadata.

  • Proxies and caches TVDB and TMDB lookups so thousands of instances do not hammer upstream providers.
  • Normalizes results into one shape for movies, series, and anime, including multilingual titles.
  • Serves search from an index rebuilt from the cache on a schedule.
  • Publishes version-compatibility notices so an old Scryer learns when it should upgrade.

Metadata refreshes and Global Search both go through the gateway. If the gateway is unreachable, existing catalog data still works, but new adds and refreshes wait.

On first start, an instance enrolls with the gateway and receives an instance id, stored as the smg.instance_id setting. Requests after that are signed with a post-quantum ML-DSA key held by the instance, so the gateway can attribute traffic and apply per-instance rate limits without a shared secret.

Enrollment carries no personal data and no library contents. It identifies the instance and its version.

Most installs need nothing. The relevant environment variables are:

VariablePurpose
SCRYER_METADATA_GATEWAY_GRAPHQL_URLOverride the gateway endpoint. Release builds default to the hosted gateway.
SCRYER_SMG_REGISTRATION_SECRETOnly for self-hosting a gateway that requires a registration secret.

Restoring a backup to a new machine keeps the instance identity when the JWT signing secret is preserved. See Configuration for the full variable list.

The gateway is open source and runs standalone with PostgreSQL. Point SCRYER_METADATA_GATEWAY_GRAPHQL_URL at your instance’s /graphql endpoint. You will need your own upstream provider credentials on the gateway side.

  • Networking covers outbound connectivity from containers.
  • Core Model explains what a title stores from metadata.