IGDB Game Search

by tetsuya-dev-jp
5
4
3
2
1
New Plugin

Description

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

Reviews

No reviews yet.

Stats

stars
downloads
0
forks
0
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

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 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](https://raw.githubusercontent.com/tetsuya-dev-jp/igdb-game-search/HEAD/${tp.frontmatter.cover})` } %>

# {{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.