Digital Archive

approved

by 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.

31 downloadsUpdated 21d agoMIT

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):

  1. Sign in at aladin.co.kr and open the open API page.
  2. Request an API key. Aladin issues a TTB key that looks like ttbyourid1234001.
  3. 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

  1. Install the plugin (from the Community Plugins store, or manually by copying main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/digital-archive/).
  2. Enable it in Settings → Community plugins.
  3. 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-archive code 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.json from 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

MIT

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.