Skip to content
cccskills
FreePublished on GitHub

aozora

青空文庫の全作品カタログ(公式公開CSV)で著作権切れの文学作品を検索し、本文をプレーンテキストで取得する。タイトル部分一致・著者名・作品IDでの検索に対応し、作品ID・タイトル(読み)・著者・文字遣い種別・著作権フラグ・初出・図書カードURLを返す。APIキー・ログイン不要。

書誌の網羅検索はndl-books、図書館の蔵書はcalil-booksを使う。現行の書籍の購入・在庫は対象外。

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (6)

  • SKILL.md5.5 KB
  • lookup.py8.2 KB
  • tests/fixtures/card789.html8.9 KB
  • tests/fixtures/list_sample_utf8.csv2.7 KB
  • tests/fixtures/text789_sample.html607 B
  • tests/test_lookup.py2.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

aozora

青空文庫(著作権の切れた文学作品を無償公開する電子図書館)の公式カタログCSVと図書カードを読み、作品検索と本文取得を行うスキル。公式APIは存在しないが、全作品の一覧がCSVで公開されており、APIキー・ログイン・ユーザー登録は一切不要。

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

青空文庫は「存在する本の書誌」ではなく「今すぐ全文読める本文」を提供する。書誌の網羅検索は ndl-books、図書館の蔵書は calil-books と棲み分ける。

データソース

データURL形式
全作品一覧(拡張)https://www.aozora.gr.jp/index_pages/list_person_all_extended_utf8.zipzip内CSV (UTF-8, BOM付き)
図書カードhttps://www.aozora.gr.jp/cards/{person_id}/card{work_id}.htmlHTML (UTF-8)
本文(XHTML)カードページ内のリンク files/{work_id}_{serial}.htmlXHTML (Shift_JIS)

使い方(ヘルパー)

python3 aozora/lookup.py --title 吾輩は猫である      # タイトル部分一致
python3 aozora/lookup.py --author 夏目漱石           # 著者の作品一覧
python3 aozora/lookup.py --work-id 000789            # カードのリンク一覧
python3 aozora/lookup.py --text 000789 --max-chars 500  # 本文をテキスト抽出
python3 aozora/lookup.py --stats                     # カタログ件数サマリ

ヘルパーはCSVを ~/.cache/aozora/ に24時間キャッシュする(2.1MBのzipを毎回取りに行かない)。

実測で確認したこと (2026-09-30)

  • 拡張CSV: zip 2,092,746バイト、19,502行。distinct作品は17,840、人物は1,335。著作権フラグ「あり」の作品が928件混ざっている(著作者の許諾を得て公開中のもの。--stats で確認できる)。
  • 著者別の作品数1位は夏目漱石(113)でも太宰治(274)でもなく宮本百合子(1,186)。2位は岸田国士(641)。
  • 文字遣い種別の内訳: 新字新仮名 12,130行 / 新字旧仮名 4,856 / 旧字旧仮名 2,377 / 旧字新仮名 109 / その他 30。
  • 2026年に公開された作品は71件。最終更新は2026-08-20のスナップショット(zipのLast-Modified 2026-08-21)。一覧はリアルタイムではなく不定期更新のスナップショット。

実測で確認した罠

  1. 本文URLは作品IDから推測できない。 card789.html の本文は files/789_14547.html — 後ろの通し番号は作品IDと無関係。必ず図書カードのHTMLを取りに行って files/ リンクを拾う(ヘルパーがやる)。
  2. 文字コードがページで違う。 図書カードはUTF-8、本文XHTMLはShift_JIS。ヘッダのcharsetを見て切り替える(ヘルパーは自動判定)。
  3. CSVはBOM付きUTF-8。 素の utf-8 で読むと先頭列名にBOMが混入する。utf-8-sig で読む。
  4. 1作品=複数行。 翻訳物は著者+翻訳者で2行になる(ウェストミンスター寺院=アーヴィング著/高津春繁訳)。行数(19,502)は作品数(17,840)ではない。作品単位で数えるときは作品IDで畳む。
  5. ルビは <ruby><rb><rt><rp> 構造。 テキスト化するときは <rt>(読み)と <rp>(括弧)を要素ごと落とさないと「吾輩()は猫である」のように空の括弧が残る。

失敗時の対応

  • 作品が見つからない: タイトルは正確な表記(旧字体・旧仮名遣いのまま登録されている場合あり)。著者検索は「夏目漱石」のように姓名をスペースなしで連結する。CSVが古い可能性があるのでキャッシュを削除して再取得する(rm -rf ~/.cache/aozora)。
  • 文字化け: 本文を直接 curl した場合、ターミナルがUTF-8だと文字化けする。Shift_JISなので iconv -f shift_jis -t utf-8 を通すか、ヘルパーの --text を使う。
  • 取得したHTMLに本文がない: 青空文庫には図書カードがあっても本文未入力(入力中)の作品がある。カードの「本文」リンクの有無で判断する。

English summary

Searches Aozora Bunko (Japan's public-domain digital library) using its official full-catalog CSV — no API key or login. Finds works by title (partial match) or author, then fetches the book-card page to locate the full text (the text URL contains a serial number that cannot be derived from the work ID). Extracts plain text from the Shift_JIS XHTML, stripping ruby annotations (keeps base characters only). Returns work ID, title (with kana reading), author, orthography type, copyright flag, first-publication info, and card URL. The catalog is a snapshot (19,502 rows / 17,840 works / 1,335 persons as of 2026-08-21, measured 2026-09-30), not a live API. For exhaustive bibliography use ndl-books; for library holdings use calil-books.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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

The English summary is being prepared. Showing the original description.

tahodev/kurashi-skill4Updated Oct 21, 2026

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

The English summary is being prepared. Showing the original description.

tahodev/kurashi-skill4Updated Oct 21, 2026

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

The English summary is being prepared. Showing the original description.

tahodev/kurashi-skill4Updated Oct 21, 2026

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

The English summary is being prepared. Showing the original description.

tahodev/kurashi-skill4Updated Oct 21, 2026

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

The English summary is being prepared. Showing the original description.

tahodev/kurashi-skill4Updated Oct 21, 2026

気象庁の台風情報JSONで現在発生中の台風の有無と情報を確認する。台風、台風何号、台風接近、進路の質問に対応。APIキー・ログイン不要。地震・津波・気象警報はbosai-alert、天気予報はjma-weather、雨雲はamagumoを使う。

The English summary is being prepared. Showing the original description.

tahodev/kurashi-skill4Updated Oct 21, 2026

See all skills by tahodev

Report a problem with this skill