-
Notifications
You must be signed in to change notification settings - Fork 2
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
{
"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"
]
}
]
}| 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 |
| 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 |
| 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 |
- The
console.slugfield 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.