Easily create game notes from IGDB.
https://github.com/user-attachments/assets/e19ee2d0-1c84-4092-87d9-ee2f84b636d1
Use this plugin to search games by:
Use IGDB API to get the game metadata.
The plugin talks to the following remote services:
api.igdb.com) — searches games and fetches game metadata. Requires a Twitch Client ID and Client Secret (see below).id.twitch.tv) — exchanges your Client ID / Client Secret for the IGDB access token. Credentials are stored locally in the plugin data file.api.deepl.com / api-free.deepl.com) — optional; translates the summary and storyline when enabled.No analytics or telemetry are collected.
Install from Community plugins:
IGDB Game Search.Install, then Enable.For development builds, install manually instead: copy manifest.json, main.js, and styles.css into VaultFolder/.obsidian/plugins/igdb-game-search/, reload Obsidian, and enable IGDB Game Search in Community plugins.
Requires Obsidian 1.13.0 or later.
Create new game note.Open a note, then run the Insert metadata command from the command palette (Ctrl/Cmd+P). The rendered metadata block (frontmatter + content, following your template or default settings) is inserted at the top of the current note. No new file is created.
localhost to continue.Confidential so Twitch can generate a Client Secret.New Secret.Client ID and Client Secret.For IGDB API details, see the official docs: https://api-docs.igdb.com
The IGDB API is free for non-commercial use under the Twitch Developer Service Agreement.
Choose the plugin UI language.
Auto follows your current Obsidian language. You can also force English, Japanese, or Korean.
Enter your Twitch Client ID and Client Secret in the plugin settings.
The plugin uses these credentials to get an IGDB access token automatically.
Set the folder where the new game note is created.
If empty, the note is created in the vault root.
Set the file name format.
The default format is {{title}}.
You can also use {{DATE}} or {{DATE:YYYYMMDD}}.
Set the template file path used when creating a note.
If no template file is set, the plugin creates a note from the built-in metadata rendering.
Use DeepL to translate long-form fields before writing them into your note.
Only summary and storyline are translated. Short metadata such as genres, platforms, and company names stay in the original IGDB form.
When the target language is set to Auto, the plugin follows your current Obsidian language.
If translation fails, the plugin keeps the original English text and continues note creation.
Show IGDB cover images in the search results.
Open the created note automatically after selection.
Download and save the selected game cover inside your vault.
Use {{localCoverImage}} in your template if you want to embed the saved image.
Set the folder where downloaded cover images are stored.
Download IGDB screenshots into your vault.
Screenshots are stored under the configured root folder, with one subfolder per game.
Set the root folder where downloaded screenshots are stored.
Configure how the note body and frontmatter are generated when no template file is set.
Use the Use default frontmatter toggle to include game metadata (title, platforms, ratings...) as frontmatter.
Frontmatter key style switches the default frontmatter keys between Camel Case and Snake Case.
Extra frontmatter adds custom YAML keys to the frontmatter, one key: value per line.
Note content is the body template used when no template file is set, supporting {{variable}} syntax. It is ignored when a template file is set.
Please also find a definition of the variables used in this template below.
---
type: game
title: '{{title}}'
aliases: '{{alternativeTitle}}'
platforms: '{{platform}}'
genres: '{{genre}}'
developers: '{{developer}}'
publishers: '{{publisher}}'
franchise: '{{franchise}}'
collection: '{{collection}}'
released: '{{firstReleaseDate}}'
year: '{{releaseYear}}'
rating: '{{totalRating}}'
igdb: '{{igdbUrl}}'
cover: '{{coverLargeUrl}}'
localCover: '{{localCoverImage}}'
created: '{{DATE:YYYY-MM-DD HH:mm:ss}}'
updated: '{{DATE:YYYY-MM-DD HH:mm:ss}}'
---
<%\* if (tp.frontmatter.cover && tp.frontmatter.cover.trim() !== "") { tR += `` } %>
# {{title}}
## Summary
{{summary}}
## Storyline
{{storyline}}
Write {{name}} in your template and replace name with the desired field.
| Field | Description |
|---|---|
title |
Game title |
alternativeTitle |
Comma-separated alternative titles |
alternativeTitles |
Alternative titles array |
slug |
IGDB slug |
summary |
Game summary, translated when DeepL translation is enabled |
storyline |
Game storyline, translated when DeepL translation is enabled |
igdbUrl |
IGDB page URL |
website |
Comma-separated website URLs |
websites |
Website URL array |
platform |
Comma-separated platform names |
platforms |
Platform array |
genre |
Comma-separated genre names |
genres |
Genre array |
theme |
Comma-separated theme names |
themes |
Theme array |
gameMode |
Comma-separated game mode names |
gameModes |
Game mode array |
playerPerspective |
Comma-separated player perspective names |
playerPerspectives |
Player perspective array |
developer |
Comma-separated developer names |
developers |
Developer array |
publisher |
Comma-separated publisher names |
publishers |
Publisher array |
franchise |
First franchise name |
collection |
First collection name |
similarGame |
Comma-separated similar game names |
similarGames |
Similar game array |
firstReleaseDate |
Release date in YYYY-MM-DD |
releaseYear |
Release year |
rating |
IGDB rating |
ratingCount |
Rating count |
aggregatedRating |
Aggregated rating |
aggregatedRatingCount |
Aggregated rating count |
totalRating |
Total rating |
totalRatingCount |
Total rating count |
coverUrl |
Cover image URL |
coverSmallUrl |
Small cover image URL |
coverLargeUrl |
Large cover image URL |
screenshot |
Comma-separated screenshot URLs |
screenshots |
Screenshot URL array |
localScreenshot |
Comma-separated local screenshot paths |
localScreenshots |
Local screenshot path array |
localCoverImage |
Local path of the downloaded cover image |
{{variables}} and date placeholders, but it no longer executes custom <%= ... %> expressions..nvmrc).pnpm installpnpm dev — builds main.js on change; copy main.js, manifest.json, styles.css to VaultFolder/.obsidian/plugins/igdb-game-search/.pnpm lint (prettier + eslint + typecheck) and pnpm test (jest)src/locales/en.ts and every locale file, and get a README row.pnpm buildpnpm release (standard-version) — pushes a versioned tag; the GitHub Actions workflow builds and attaches the release assets.This project started as a fork of anpigon/obsidian-book-search-plugin and was adapted for IGDB-based game metadata.