lksrpp885 downloadsSearch for books with high-resolution covers and create new notes based on your template. Supports searching via Google Book API, Open Library, Apple Store.
Search books as you type, pick the exact edition, and get a finished note from your own template, complete with a high-resolution cover.
Built for anyone who keeps a book library in their vault. Metadata comes from Google Books or Open Library (your choice; Google Books wants a free API key, Open Library needs nothing). Cover art is pulled from Apple Books and Google Books side by side, so you can pick the sharpest image. That difference shows in gallery views like Obsidian Bases, where new notes get a full-size cover instead of the usual thumbnail.
Find a new book and add it to your Obsidian library.

If a note for the book already exists, you are asked first instead of ending up with a duplicate. Your default store region and cover storage mode come from settings, and both can be switched right in the search modal for a single search.
Already have a library? Open any book note and run Fetch or replace cover for current note.

The plugin reads the note's title and author (from frontmatter, or the file name if there is none) and shows candidates from Google Books and Apple side by side.
You set the default in settings.
The built-in Note template works out of the box and is editable right in the settings. Prefer managing templates as notes (for example with Templater)? Point the Template file setting at any note in your vault instead; a button next to the setting turns your current inline template into such a file, so nothing is lost when you switch.
Templates use simple {{variable}} placeholders in the frontmatter, body, or title.
| Variable | What you get |
|---|---|
{{title}} |
Book title |
{{subtitle}} |
Subtitle, if any |
{{author}} |
First author |
{{authors}} |
All authors, comma-separated |
{{authorsYamlLinks}} |
Authors as a YAML list of [[wikilinks]] |
{{description}} |
Publisher's description (body only, too long for frontmatter) |
{{descriptionCallout}} |
Description as a collapsed callout; custom title via {{descriptionCallout:My title}} |
{{publisher}} |
Publisher name |
{{publishedDate}} |
Raw publish date, e.g. 2021-05-04 |
{{year}} |
4-digit publish year |
{{pageCount}} |
Number of pages |
{{isbn}} |
ISBN-13, falling back to ISBN-10 |
{{isbn13}} |
ISBN-13 only |
{{isbn10}} |
ISBN-10 only |
{{categories}} |
Categories, comma-separated |
{{categoriesYamlList}} |
Categories as a YAML list |
{{language}} |
Language code, e.g. en, de |
{{seriesName}} |
Series name, if known |
{{seriesNumber}} |
Number within the series, if known |
{{source}} |
Search provider: google or openlibrary |
{{cover}} |
Cover URL or vault path, per the cover storage mode |
{{date}} |
Note creation date, YYYY-MM-DD |
{{datetime}} |
Note creation date and time, YYYY-MM-DD HH:mm:ss |
If you use Templater, the two get along nicely. The template file is a regular note in your vault, so it lives comfortably next to your Templater templates, and the plugin fills its {{variables}} on its own without needing Templater installed. With Templater's "Trigger Templater on new file creation" enabled, your Templater commands in the template run on the new note as usual.
The plugin talks to googleapis.com (with your API key), itunes.apple.com, and openlibrary.org to fetch book data and covers. Your API key is stored locally in the plugin's data.json and is never sent anywhere except Google. No telemetry, no tracking.
npm install
npm run dev # watch build -> main.js
npm run build # typecheck + production build
npm run lint # eslint-plugin-obsidianmd
npm test # vitest
Built with the standard Obsidian + esbuild toolchain.
MIT