README file from
GithubIGDB Game Search
Easily create game notes from IGDB.
Demo
https://github.com/user-attachments/assets/e19ee2d0-1c84-4092-87d9-ee2f84b636d1
Description
Use this plugin to search games by:
- Game title
Use IGDB API to get the game metadata.
How to install
Currently, install it manually:
- Create
VaultFolder/.obsidian/plugins/igdb-game-search/. - Copy
manifest.json,main.js, andstyles.cssinto the folder. - Reload Obsidian.
- Enable
IGDB Game Searchin Community plugins.
How to use
1. Click the ribbon icon, or execute the command Create new game note.
2. Search for a game by title.
3. Select the game from the search results.
4. A note is created from the selected metadata.
How to get Twitch Client ID and Client Secret
- Create a Twitch account if you do not already have one.
- Enable Two Factor Authentication on your Twitch account.
- Open the Twitch Developer Portal: https://dev.twitch.tv/console
- Register a new application.
- If Twitch asks for an OAuth Redirect URL, add
localhostto continue. - Set the Client Type to
Confidentialso Twitch can generate a Client Secret. - Open the newly created application settings.
- Generate a Client Secret by pressing
New Secret. - Copy both the
Client IDandClient Secret. - Paste them into the plugin settings in Obsidian.
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.
How to use settings
Twitch Client ID / Client Secret
Enter your Twitch Client ID and Client Secret in the plugin settings.
The plugin uses these credentials to get an IGDB access token automatically.
New file location
Set the folder where the new game note is created.
If empty, the note is created in the vault root.
New file name
Set the file name format.
The default format is {{title}}.
You can also use {{DATE}} or {{DATE:YYYYMMDD}}.
Template file
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.
Translation
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 cover images in search
Show IGDB cover images in the search results.
Open new game note
Open the created note automatically after selection.
Cover image saving
Download and save the selected game cover inside your vault.
Use {{localCoverImage}} in your template if you want to embed the saved image.
Cover image folder
Set the folder where downloaded cover images are stored.
Screenshot saving
Download IGDB screenshots into your vault.
Screenshots are stored under the configured root folder, with one subfolder per game.
Screenshot folder
Set the root folder where downloaded screenshots are stored.
Example template
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}}
Template variables definitions
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 |
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 |
Advanced
Templater
- This plugin replaces
{{variables}}and date placeholders, but it no longer executes custom<%= ... %>expressions. - Use the Templater plugin for loops, conditions, or any other scripting inside templates.
- If you want to render screenshots or add conditional sections, use Templater on top of the generated metadata.
Acknowledgements
This project started as a fork of anpigon/obsidian-book-search-plugin and was adapted for IGDB-based game metadata.