Kakao Book Search

approved

by Yang Haeseung

카카오 책 검색 API로 책을 검색하고, 표지/저자/역자/출판사 정보를 담은 노트를 자동으로 생성합니다. - This plugin has not been manually reviewed by Obsidian staff.

77 downloadsUpdated 1mo agoMIT

Kakao Book Search (Obsidian Plugin)

Search for books using the Kakao Book Search API and create a note automatically from the selected result, with cover image, authors, translators, publisher, ISBN, and description.

Features

  • Search books by title, author, or ISBN from the command palette or ribbon icon
  • Keyboard navigation through results (arrow keys + Enter)
  • Auto-generated notes using either the built-in default template or a fully customizable template you edit directly in the settings tab
  • Configurable note location, filename format, and auto-open behavior
  • Built-in connection test for your Kakao REST API key

Setup

  1. Get a free REST API key at developers.kakao.com (Apps → create an app → copy the REST API key from the app summary page)
  2. Install the plugin and enable it in Community plugins
  3. Paste the REST API key into the plugin settings (do not include the KakaoAK prefix — just the key itself)
  4. Open the search command and start creating book notes

See the Korean sections below for a detailed, step-by-step walkthrough (API key setup, building from source, template variables, etc).


카카오 책 검색 API로 책을 검색하고, 검색 결과에서 책을 고르면 표지·저자·역자·출판사 등의 정보가 담긴 노트를 자동으로 만들어주는 옵시디언 플러그인입니다.

1. 카카오 API 키 발급받기 (아직 없다면)

  1. https://developers.kakao.com 에 가입/로그인
  2. "내 애플리케이션" → "애플리케이션 추가하기"로 앱 하나 생성
  3. 생성된 앱의 "요약 정보" 화면에서 REST API 키를 복사 (Admin 키가 아니라 REST API 키입니다)
  4. "제품 설정" → "카카오 로그인"은 켤 필요 없습니다. 책 검색 API는 REST API 키만으로 호출 가능합니다.

2. 플러그인 빌드하기

이 폴더는 옵시디언이 바로 실행하는 형태가 아니라 TypeScript 소스입니다. main.js로 "빌드"해야 옵시디언이 읽을 수 있습니다.

npm install   # 의존성 설치 (최초 1회)
npm run build # main.ts -> main.js 로 빌드

빌드가 끝나면 폴더 안에 main.js가 생성됩니다.

3. Vault에 설치하기

  1. 사용 중인 Vault 폴더를 찾습니다 (탐색기에서 Vault를 우클릭 → "탐색기에서 보기" 등).
  2. <Vault>/.obsidian/plugins/kakao-book-search/ 폴더를 새로 만듭니다. (.obsidian은 숨김 폴더이니 숨김 파일 보기를 켜야 보일 수 있습니다)
  3. 그 폴더 안에 아래 3개 파일만 복사합니다.
    • main.js
    • manifest.json
    • styles.css
  4. 옵시디언을 재시작하거나, 설정 → "커뮤니티 플러그인"에서 새로고침합니다.
  5. "커뮤니티 플러그인" 목록에서 Kakao Book Search를 찾아 켭니다(toggle on).

4. 설정하기

설정 → 커뮤니티 플러그인 → Kakao Book Search 에서:

항목설명
카카오 REST API 키1번에서 복사한 REST API 키
연결 테스트입력한 키로 실제 요청을 보내 정상 작동하는지 바로 확인
책 노트 저장 경로책 노트가 저장될 폴더 (예: Books). 비우면 Vault 최상위
책 노트 제목파일명 형식. 기본값 {{title}}
템플릿 (토글)켜면 아래 "커스텀 템플릿 내용"을 사용하고, 끄면 기본 템플릿을 사용
커스텀 템플릿 내용토글이 켜졌을 때 실제로 쓰이는 템플릿. 텍스트박스에서 직접 수정
노트 생성 후 열기노트 생성 후 자동으로 열지 여부
검색 목록에 책 표지 이미지 보여주기검색 결과에 표지 이미지 표시 여부

템플릿에서 쓸 수 있는 변수

설정 화면의 "템플릿" 토글을 끄면 아래 기본 템플릿이 그대로 쓰이고, 켜면 "커스텀 템플릿 내용" 텍스트박스에 입력한 내용이 쓰입니다. 텍스트박스에는 기본 템플릿이 미리 채워져 있으니, 그걸 기반으로 고쳐 쓰면 됩니다.

{{title}}
{{authors}} 또는 {{author}}       (저자, 쉼표로 구분)
{{translators}}                   (역자, 쉼표로 구분)
{{publisher}}
{{isbn}}
{{price}} {{sale_price}}
{{status}}
{{thumbnail}} 또는 {{coverUrl}}   (표지 이미지 URL)
{{url}} 또는 {{link}}             (책 상세 페이지 URL)
{{contents}}                      (책 소개, 줄바꿈은 공백으로 치환됨)
{{date}} 또는 {{publishDate}}     (출간일, YYYY-MM-DD)
{{year}}                          (출간 연도만)
{{now}}                           (노트 생성 시각, 예: 2026/08/05(Wed) 14:32)
{{now_date}}                      (노트 생성 날짜, YYYY-MM-DD — 옵시디언 Date 타입 프로퍼티와 호환)

같은 값을 가리키는 변수가 두 가지씩 있는 건({{authors}}/{{author}}, {{thumbnail}}/{{coverUrl}} 등) 기존에 쓰던 Templater 템플릿과 이름이 다를 때도 그대로 재사용할 수 있게 하기 위해서입니다. 아무거나 편한 이름으로 쓰면 됩니다.

예시 템플릿 (커스텀 템플릿 내용 텍스트박스에 넣을 예시):

---
title: "{{title}}"
authors: {{authors}}
translators: {{translators}}
publisher: {{publisher}}
isbn: {{isbn}}
cover: {{thumbnail}}
status: 읽는 중
---

![cover]({{thumbnail}})

> {{contents}}

New file name에도 같은 변수를 쓸 수 있습니다. 예: {{authors}} - {{title}}

5. 사용하기

  • 왼쪽 리본의 책 아이콘을 클릭하거나,
  • 명령 팔레트(Cmd/Ctrl+P) → "책 검색해서 노트 만들기" 실행

검색창이 뜨면 제목/저자/ISBN 등을 입력 → 결과 목록에서 ↑/↓ 화살표로 이동, Enter로 선택 → 설정한 위치·형식대로 노트가 생성됩니다.

참고

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.