Digital Archive
approvedby HyoYoonNam
Search books through the Aladin open API, generate notes with cover images and metadata, and browse your library in a card gallery view. - This plugin has not been manually reviewed by Obsidian staff.
Digital Archive
Search books through the Aladin open API, generate richly-populated notes with cover images and metadata, and browse your reading library in a built-in card gallery view — no other plugins required.
Why
Aladin exposes a free open API with detailed Korean and foreign book metadata. This plugin turns a title search into a ready-to-use note (cover, author, publisher, page count, category, ISBN, reading status) and renders every book note as a cover-first gallery, so your vault doubles as a personal bookshelf.
It is fully self-contained: the library view is a native Obsidian view, so you do not need Dataview, Templater, or a theme snippet.
⚠️ Before you start
You need your own Aladin TTB key (a personal open API key):
- Sign in at aladin.co.kr and open the open API page.
- Request an API key. Aladin issues a TTB key that looks like
ttbyourid1234001. - Copy the key into Settings → Digital Archive → Aladin TTB key.
The key is required for every search and is stored only in your vault. See Security below.
Setup
- Install the plugin (from the Community Plugins store, or manually by copying
main.js,manifest.json, andstyles.cssinto<vault>/.obsidian/plugins/digital-archive/). - Enable it in Settings → Community plugins.
- Enter your TTB key and, optionally, adjust the library/cover folders, cover download behavior, search target, and interface language.
Usage
Search and create a note
- Run the Search for a book command (command palette).
- Start typing a title — results from Aladin appear as you type.
- Pick a result. The plugin fetches full details, downloads the cover, and creates a note in your library folder, then opens it.
Each note is generated with this front matter (keys are kept in English so they stay machine-readable):
---
cover: "_assets/library_covers/<title>.jpg"
title: "..."
author: "..."
publisher: "..."
publishDate: "..."
totalPage: 0
category: "..."
isbn: "..."
link: "..."
status: unread
rating:
started:
finished:
---
Set status to unread, reading, or finished to drive the library filter,
and fill in started / finished dates to sort your shelf.
Browse your library
There are two ways to open the gallery:
-
As a view: click the library ribbon icon, or run Open library view.
-
As a physical note: on first run the plugin creates a library note (named "Library" in your chosen language) containing a
digital-archivecode block. Open it from the file explorer any time to render the gallery — handy if you want the shelf pinned in your vault like a dashboard. If you delete it, it is not recreated; run Create a library note to make it again. You can also drop the block into any note:```digital-archive ```
Either way, books render as a cover-first card grid. Filter by title/author, filter by reading status, and sort by title, author, started, or finished date. Click a card to open its note. The leading + tile launches a book search.
Hotkeys
To run a command with a keyboard shortcut, assign one under Obsidian's Settings → Hotkeys and search for "Digital Archive".
Development
npm install
npm run dev # watch build
npm run build # type-check + production bundle
For local testing, symlink main.js, manifest.json, and styles.css into a
test vault's .obsidian/plugins/digital-archive/ folder and reload Obsidian.
Security
Obsidian has no secure secret storage, so your TTB key is stored in plain
text in this vault's .obsidian/plugins/digital-archive/data.json.
- Use a key you can revoke or regenerate from your Aladin account.
- Exclude
data.jsonfrom any sync service you do not fully trust. - The plugin only ever sends the key to Aladin's official API over HTTPS via
Obsidian's
requestUrl.
License
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.