Skip to content

How to make a game catalog source

Gregory Cabral De Los Santos edited this page Feb 19, 2026 · 5 revisions

Game Catalog Sources define a collection of games that Yamata can display in the catalog. These sources provide metadata such as title, platform, images, and optional additional information. the game catalogs are stackables, so you can have more than 1 game catalog for the same system.

the official game catalog sources were made by using This scraper you can use it as a reference for creating your scraper or you can just fork it and put your custom logic

In order to make a game catalog source you should host a json file on a accesible http host, it can be a public github repository that can expose the raw file url, the JSON structure of a game catalog source is the following

Structure

{
  "console": {
    "name": "Test console",
    "slug": "test",
    "logoUrl": "https://logo.com/logo",
    "description": "Short description"
  },
  "sourceName": "hoster - test console games",
  "games": [
    {
      "name": "Test game",
      "developer": "",
      "publisher": "",
      "releaseDate": "19-05-2021",
      "rating": "2.75",
      "categories":["Action", "Adventure"]
      "detailsUrl": "https://details.com/details",
      "console": "test",
      "portrait": "https://logo.com/portrait",
      "logo": "https://logo.com/logo",
      "titleImage": "https://logo.com/title",
      "gameplayCovers": [
        "https://covers.com/gameplay"
      ]
    }
  ]
}

Root Object

Field Type Required Description
console object Yes Defines the platform or console associated with the catalog
sourceName string Yes Human-readable name of the source, this is basically the unique identifier for this source, make sure to be creative with this one
games array Yes List of games provided by this source

Console Object

Field Type Required Description
name string Yes Display name of the console or platform
slug string Yes Unique identifier for the console. Used internally to group platforms, please refer to This file to have a reference of the used slugs, you can use an unique slug for your collection and it will work but keep in mind that in order to work the download source must match with this slug
logoUrl string (URL) No URL of the console logo image, if specified and the application will use that logo to be displayed on the explore screen in case that the logo its not built in on the app
description string No Short description of the source and the platform

Game Object

Field Type Required Description
name string Yes Game title
developer string No Developer name
publisher string No Publisher name
releaseDate string No Release date (recommended format: DD-MM-YYYY)
rating string or number No Rating value from 0 to 5 (for example: 2.75)
categories array No List of genres or categories
detailsUrl string (URL) No Link to an external details page preferably from launchbox's gamesdb
console string Yes Console slug this game belongs to. Must match console.slug otherwise it will never be matched with any download source or catalog
portrait string (URL) No Portrait or box art image, this is the main image of the game
logo string (URL) No Game logo image (Not used on the app yet but good to have)
titleImage string (URL) No Title screen or banner image (Not used on the app yet but good to have)
gameplayCovers array No List of gameplay or screenshot image URLs, if specified the first image will be used as a cover for the card

Notes

  • The console.slug field is used to merge this catalog with existing platforms, its really important to be consisistent and specify it, you can take a look to This file that contains most of the available console slugs .
  • Multiple sources can contribute games to the same console by using the same slug.
  • All image URLs should be publicly accessible.
  • Fields such as developer, publisher, rating, and images are optional but recommended to improve the user experience.

Clone this wiki locally