本文へ移動
cccskills
無料GitHub で公開

ndl-books

国立国会図書館サーチ(NDL Search)の公式API(OpenSearch / SRU)で書誌を検索する。ISBN・タイトル・著者名・任意キーワードでの検索に対応し、タイトル(読み)・著者・出版社・刊行年・資料種別(紙/電子)・書誌IDを返す。APIキー・ログイン不要。

図書館の蔵書・貸出状況はcalil-books、全文が読める青空文庫はaozora(採用予定)を使う。購入・書評・在庫(書店)は対象外。

インストール方法を見る

含まれるファイル(4)

  • SKILL.md5.1 KB
  • lookup.py4.6 KB
  • tests/fixtures/opensearch_title_yukiguni.xml5.4 KB
  • tests/test_lookup.py1.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

ndl-books

国立国会図書館サーチの公式APIで、日本のほぼ全ての刊行物の書誌(どんな本が存在するか)を検索するスキル。APIキー・ログイン・ユーザー登録は不要。国立国会図書館はユーザー登録なしで機械可読な書誌データを公開している。

実測日: 2026-09-29。以下のURL・構造・件数はすべて当日の実測で確認。

蔵書(どの図書館に実物があるか・貸出中か)はカーリルAPIの calil-books を使う。こちらは「存在する本の書誌」専用。

エンドポイント

APIURL形式
OpenSearchhttps://ndlsearch.ndl.go.jp/api/opensearchRSS 2.0 (XML)
SRUhttps://ndlsearch.ndl.go.jp/api/sru (operation=searchRetrieve)SRU (XML)

旧ホスト iss.ndl.go.jp は 303 で ndlsearch.ndl.go.jp にリダイレクトされる(2026-09-29実測)。古い手順記事は iss.ndl.go.jp のままのものが多い。今はリダイレクトで動くが、新しい方を直接使う。

使い方(ヘルパー)

python3 ndl-books/lookup.py --isbn 9784101010014
python3 ndl-books/lookup.py --title 雪国 --mediatype books --cnt 5
python3 ndl-books/lookup.py --creator 夏目漱石
python3 ndl-books/lookup.py --keyword 東京 防災

JSONで {total, count, items[]} を返す。items の各要素は title / title_yomi(タイトル読み) / creator / creator_yomi / publisher / date / isbn / bib_id(国立国会図書館書誌ID) / material(紙・電子など) / link(NDL Searchの書誌ページ)。

curl で直接読む場合:

curl -s "https://ndlsearch.ndl.go.jp/api/opensearch?isbn=9784101010014"

実測で確認した罠

  1. タイトル検索は部分一致。 title=雪国 は 2026-09-29 実測で 7,719件。「ああ、大ゼキよ : 雪国」のような本も混ざる。mediatype=books を付けると 1,767件に絞れる。件数を見てから cnt と idx でページングする。
  2. 1つのISBNに複数レコードが返る。 9784101010014 (吾輩は猫である) は4件(2026-09-29実測)。紙・電子・改版など別レコードとして存在する。material(紙/電子)と date を見て選ぶ。
  3. ページングの既定は200件。 cnt を省略すると itemsPerPage=200 で返る(指定は1〜200)。大きなXMLを黙って受け取らないよう、必要なら cnt を小さく指定する。
  4. 著者名は「姓, 名」形式。 夏目, 漱石 のように姓と名の間がカンマ+空白。読みは creatorTranscription (ナツメ, ソウセキ) に入る。
  5. ISBNはハイフンなしで渡す。 ヘルパーはハイフンを除去するが、直接叩くときは 9784101010014 のように13桁(または10桁)の連続数字。
  6. 応答の pubDate は刊行日ではない。 item の pubDate はレコードの更新日時。刊行年は dc:date / dcterms:issued を見る。

SRU を使う場面

OpenSearch はパラメータ直指定(isbn/title/creator/any)だが、SRU は CQL クエリで柔軟に組める。

curl -s 'https://ndlsearch.ndl.go.jp/api/sru?operation=searchRetrieve&query=isbn%3D%229784101010014%22&maximumRecords=2'

numberOfRecords が件数。OpenSearchと同じ4件が返ることを2026-09-29に実測。複雑な条件(資料種別・年代の組合せ)が必要なときだけこちら。

失敗時の対応

  • 空の応答(0件): キーワードの表記(漢字/かな/カナ)を変えて再試行。書誌は存在するのに表記ゆれで0件になることがある。ISBNなら10桁↔13桁を両方試す。
  • 接続エラー・5xx: NDL Search のメンテナンス(毎週火曜夜間の予定メンテあり)の可能性。時間を置いて再試行。旧ホスト iss.ndl.go.jp 経由で叩いている場合は新ホストに切り替える。
  • XMLのパース失敗: & を含むタイトルを手でURLに埋め込むとクエリが壊れる。必ずURLエンコードする(ヘルパーは自動で行う)。

English summary

Searches the National Diet Library (NDL) Search API for bibliographic records of Japanese publications — no API key or login. Supports ISBN, title (partial match), creator, and free-keyword queries via the OpenSearch endpoint (RSS/XML), with SRU/CQL available for complex queries. Returns title (with kana reading), author, publisher, year, ISBN, NDL bib ID, material type (paper/electronic), and a link to the record. For library holdings and availability, use calil-books instead. Measured against the live API on 2026-09-29.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

address-normalize

無料日本語概要

デジタル庁 アドレス・ベース・レジストリ(ABR)の公式マスタ(都道府県・市区町村・町字)で日本の住所文字列を分解・正規化する。全国47都道府県・1,918市区町村・町字レコードを使い、住所から都道府県・市区町村(全国地方公共団体コード)・町字(町字ID)・番地を切り出す。表記ゆれ(漢数字/全角/半角の丁目、郡名省略、都道府県名省略)を吸収。APIキー・ログイン不要。住居表示の番地・号の正規化やジオコーディング(緯度経度)は対象外。

tahodev/kurashi-skill42026年10月6日 更新

air-quality

無料日本語概要

環境省の大気汚染物質広域監視システム(AEROS・そらまめくん)から、PM2.5・光化学オキシダントなどの測定値(速報値)を取得する。全国約1,600測定局の最新1時間値・測定局ごとの今日/7日分・都道府県ごとの月次履歴に対応。「今のPM2.5」「空気が悪い?」の質問に答える。APIキー・ログイン不要。確定値(過去の公式統計)は対象外。

tahodev/kurashi-skill42026年10月6日 更新

amagumo

無料日本語概要

気象庁の雨雲レーダー(解析雨量・降水ナウキャスト)タイルから、今の雨の強さとこの後30〜60分の見通しを調べる。今雨降ってる、雨雲、あとどれくらいで雨、降水ナウキャストの質問に対応。APIキー・ログイン不要。明日以降の天気はjma-weather、警報・地震・津波はbosai-alertを使う。

tahodev/kurashi-skill42026年10月6日 更新

amedas-weather

無料日本語概要

気象庁のアメダス(地域気象観測システム)最新観測値を取得する。今の気温・湿度・風・降水量・気圧を全国約1,300観測所から調べる。「今の気温」「今の雨量」「今の風」の質問に対応。APIキー・ログイン不要。予報はjma-weather、雨雲の動きはamagumo、警報はbosai-alertを使う。

tahodev/kurashi-skill42026年10月6日 更新

aozora

無料日本語概要

青空文庫の全作品カタログ(公式公開CSV)で著作権切れの文学作品を検索し、本文をプレーンテキストで取得する。タイトル部分一致・著者名・作品IDでの検索に対応し、作品ID・タイトル(読み)・著者・文字遣い種別・著作権フラグ・初出・図書カードURLを返す。APIキー・ログイン不要。書誌の網羅検索はndl-books、図書館の蔵書はcalil-booksを使う。現行の書籍の購入・在庫は対象外。

tahodev/kurashi-skill42026年10月6日 更新

bosai-alert

無料日本語概要

気象庁の防災情報(地震速報・震度詳細、気象警報・注意報、津波情報)を公開JSONから取得する。地震、震度、警報、注意報、津波の確認に対応。APIキー・ログイン不要。ふだんの天気予報は対象外(jma-weatherを使う)。

tahodev/kurashi-skill42026年10月6日 更新

tahodev のスキルをすべて見る

このスキルの問題を報告する