IGDB Game Search

approved

by tetsuya-dev-jp

Forked from Book Search

This plugin has not been manually reviewed by Obsidian staff. Search IGDB and create game notes.

27 downloadsUpdated 6d agoMIT

IGDB Game Search

Japanese Korean

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:

  1. Create VaultFolder/.obsidian/plugins/igdb-game-search/.
  2. Copy manifest.json, main.js, and styles.css into the folder.
  3. Reload Obsidian.
  4. Enable IGDB Game Search in 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

  1. Create a Twitch account if you do not already have one.
  2. Enable Two Factor Authentication on your Twitch account.
  3. Open the Twitch Developer Portal: https://dev.twitch.tv/console
  4. Register a new application.
  5. If Twitch asks for an OAuth Redirect URL, add localhost to continue.
  6. Set the Client Type to Confidential so Twitch can generate a Client Secret.
  7. Open the newly created application settings.
  8. Generate a Client Secret by pressing New Secret.
  9. Copy both the Client ID and Client Secret.
  10. 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 += `![cover|200](${tp.frontmatter.cover})` } %>

# {{title}}

## Summary

{{summary}}

## Storyline

{{storyline}}

Template variables definitions

Write {{name}} in your template and replace name with the desired field.

FieldDescription
titleGame title
alternativeTitleComma-separated alternative titles
alternativeTitlesAlternative titles array
slugIGDB slug
summaryGame summary, translated when DeepL translation is enabled
storylineGame storyline, translated when DeepL translation is enabled
igdbUrlIGDB page URL
websiteComma-separated website URLs
websitesWebsite URL array
platformComma-separated platform names
platformsPlatform array
genreComma-separated genre names
genresGenre array
themeComma-separated theme names
themesTheme array
gameModeComma-separated game mode names
gameModesGame mode array
playerPerspectiveComma-separated player perspective names
playerPerspectivesPlayer perspective array
developerComma-separated developer names
developersDeveloper array
publisherComma-separated publisher names
publishersPublisher array
franchiseFirst franchise name
collectionFirst collection name
firstReleaseDateRelease date in YYYY-MM-DD
releaseYearRelease year
ratingIGDB rating
ratingCountRating count
aggregatedRatingAggregated rating
aggregatedRatingCountAggregated rating count
totalRatingTotal rating
totalRatingCountTotal rating count
coverUrlCover image URL
coverSmallUrlSmall cover image URL
coverLargeUrlLarge cover image URL
screenshotComma-separated screenshot URLs
screenshotsScreenshot URL array
localScreenshotComma-separated local screenshot paths
localScreenshotsLocal screenshot path array
localCoverImageLocal 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.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.