デジタル本棚 (漫画・書籍管理)

買った漫画や小説の作品名・巻数・表紙を登録し,シリーズごとに並べて確認できるデジタル本棚です.手入力に加え,対応ブラウザでは本のEAN-13バーコードを読み取るか,13桁のISBNを入力して作品名・巻数・著者名・表紙画像の候補を取得できます.取得内容を確認して登録し,書店で「何巻まで持っていたか」を調べる補助として使えます.

読み込み中...

処理前・処理後の状態比較イメージ

処理前 (Before)

購入済みの巻を思い出せず,作品ごとに手持ちを確認しにくい状態

処理後 (After)

作品名ごとにまとめ,1巻・2巻・3巻のように巻数順で確認できる本棚

サポートフォーマット

読み込み形式 (Input)
手入力ISBN-13EAN-13(対応ブラウザ)12MB以下の画像カメラ撮影
出力保存形式 (Output)
IndexedDBの蔵書レコード300×450px JPEG表紙

主な利用シーン・活用例

  • ✓書店で作品名を検索し,登録済みの巻数を購入前に見直す
  • ✓3巻,1巻,2巻の順で登録した本を,1巻からの数値順で確認する
  • ✓作品名または著者名で絞り込み,本棚表示とグリッド表示を切り替える
  • ✓ISBN補完で見つからない本を,表紙なしの手入力で登録する

関連する技術解説・ブログ記事

ZeroToolsのブラウザ内処理と,外部通信を利用する機能の違いやデータの取り扱いについて.

記事を読む

ZeroToolsのブラウザ内処理とプライバシー

ISBN検索ではISBNをopenBDやGoogle Booksへ送信します.書影の表示でも画像配信元へ通信します.手入力での蔵書管理も利用できます.

データの取り扱い・プライバシー方針
第1章

登録できる情報と手入力・ISBN補完の違い

このツールは,書籍1冊ごとに作品名(シリーズ名),巻数,任意の著者名,任意の表紙画像をひも付けて登録するデジタル本棚です.登録経路には,項目を利用者が入力する「手入力」と,ISBNから書誌情報の候補を得る「ISBN補完」があります.表紙と著者は必須ではないため,作品名と巻数だけでも登録できます.ISBNを持たない本や書影のない本も,表紙なしの手入力で本棚へ追加できます.

ISBN補完で取得した内容は,外部データをそのまま確定する仕組みではありません.作品名,巻数,著者,表紙の候補をフォームへ入れ,利用者が確認・修正した後に保存します.外部サービスに該当データがない本,巻数を判別できない書名,書影が提供されていない本は,不足項目を手入力してください.取得元の収録状況や表記に依存するため,「ISBNを入れれば必ず正確な情報がそろう」とは保証できません.

本ツールには「読みたい」「読書中」「読了」などの読書状態,星評価,感想,タグを記録する機能はありません.購入済みの本を確認する用途なら,所有している本だけを登録するなど,利用者自身で運用ルールを決める必要があります.手入力では手元にない本も技術的には登録できるため,購入済みと購入予定を混在させると所持状況を判断しにくくなります.書店での確認を目的にする場合は,登録対象をそろえておくことが重要です.

第2章

ISBN-13の正規化,チェックディジット検査,書誌取得順

ISBN検索では,入力値をNFKCで正規化して全角数字を半角へそろえ,空白,ハイフン,長音に似た一般的な区切り記号を除きます.その後,978または979で始まる13桁かを確認します.さらに先頭12桁へ1と3の重みを交互に掛けて合計し,モジュラス10で求めたチェックディジットが末尾の1桁と一致する場合だけ検索へ進みます.

形式が不正な値は画面内でエラーにし,openBDやGoogle Booksへ送りません.

たとえば「978-4-10-101001-4」は「9784101010014」へ整えて検査できます.一方,12桁しかない値,978・979以外で始まるEAN-13,末尾のチェックディジットが一致しない値はISBNとして扱いません.バーコードで13桁を読み取れても,この検査を通過しなければ書誌検索を開始しないため,一般商品のEAN-13をISBNとして送ることを避けられます.

有効なISBNは,まずopenBDへ送信します.利用できる書誌情報が得られなければ,Google Booksへ同じISBNを送って再検索します.書影URLが返った場合は画像配信元へも通信し,画像として扱える応答か,12MB以下かを確認して読み込みます.通信が10秒以内に完了しない場合,HTTP応答が不正な場合,予想したデータ構造でない場合は検索を中断し,手入力を案内します.

巻数候補は,外部データの部番号または書名末尾の「第12巻」「12巻」「 12」のように明示された形だけから取り出します.「3月のライオン」の先頭の3や「20世紀少年」の20を巻数にする処理ではありません.外部データの部番号も1〜999の整数だけを使い,候補が不適切なら空欄のまま利用者が入力します.補完後も登録前の目視確認が必要です.

第3章

バーコード対応差と表紙を300×450pxへ整える処理

カメラでISBNバーコードを読む機能は,ブラウザ標準のBarcodeDetectorが利用でき,対応形式にEAN-13を含む場合に有効になります.独自のAIやWebAssembly製の認識器を読み込む方式ではありません.利用にはカメラ権限も必要で,対応状況,権限設定,照明の反射,本の湾曲,バーコードの印刷状態によっては検出できません.

ボタンが表示されない,または読み取りに失敗する環境では,13桁のISBNを手入力できます.

表紙は端末内の画像ファイルを選ぶか,カメラ映像を撮影して用意します.選択できるファイルは12MB以下で,ブラウザが画像としてデコードできる必要があります.破損ファイル,画像以外の応答,容量上限を超えるデータはエラーとして扱います.外部書影を取得する場合も同じ上限を確認し,取得できなくても表紙なしまたは手元の画像で登録できます.

読み込んだ画像は2:3のプレビュー領域で調整します.マウスやタッチで位置を動かし,0.5倍から2.5倍の範囲でズームして使用部分を決めます.確定した領域はCanvasへ300×450pxで描画し,JPEG品質0.85のBlobに変換して蔵書レコードへ保存します.元画像のファイル形式,元解像度,EXIF等のメタデータをそのまま保管する機能ではありません.

画像処理中は保存操作を待機状態にし,新しく選んだ画像より古い非同期処理が後から完了して結果を上書きしないようにします.撮影を終了したときや画面を閉じたときはカメラのMediaStreamを停止します.手元の画像を切り抜く処理はブラウザ内で行いますが,ISBN補完から外部書影を選んだ場合は,取得時に画像配信元への通信が発生します.

第4章

作品別グループ,巻数順表示,重複警告の範囲

登録後は保存された作品名の文字列ごとに本をまとめ,各作品の中では巻数を数値の小さい順に並べます.同じ作品を3巻,1巻,2巻の順で登録しても,表示は1巻,2巻,3巻です.作品単位で横に並べる本棚表示と,全件を一覧するグリッド表示を切り替えられます.検索欄は作品名と著者名の部分一致で絞り込むため,蔵書が増えた場合も書名や著者の一部から探せます.

グループ化は保存された作品名を基準にするため,「作品名」と「作品名 完全版」のように文字列が違えば別のまとまりになります.後から複数グループを統合する機能や,一括して作品名を直す機能はありません.登録前にシリーズ名の表記をそろえると探しやすくなります.著者名は検索に使えますが,著者別の棚を自動作成する機能ではありません.

同じ作品名と巻数を追加しようとした場合は,確認ダイアログで重複の可能性を知らせます.比較時はNFKC正規化,前後空白,連続空白,英字の大文字・小文字をそろえます.ただしデータベースの一意制約ではなく,警告後に続行すれば保存用と閲覧用など同じ巻を複数登録できます.

別名,略称,完全版・通常版等の意味まで判断する機能もありません.「二重買いを完全に防止」するのではなく,登録済みの同一巻へ気付きやすくする補助です.

詳細画面では1冊ごとの作品名,巻数,著者,追加日,表紙を確認し,確認ダイアログを経て削除できます.削除後の復元箱や編集履歴はありません.誤削除を避けるため,対象の作品名と巻数を確認してから操作してください.

第5章

IndexedDBへ保存する項目とデータ保持の限界

保存する項目は,作品名,巻数,任意の著者名,加工後の表紙JPEG Blob,追加日時です.ISBNそのもの,出版社,発売日,読書状態,評価,感想,タグ,検索履歴は保存しません.ISBNで取得した情報でも,最終的にフォームへ残した上記項目だけを蔵書レコードとして保存します.ツール独自の暗号化,ユーザーアカウント,クラウド同期はありません.

保存先のIndexedDBは,利用中のブラウザとこのサイトの組み合わせに結び付く領域です.同じ端末でも別ブラウザや別プロファイルでは別の本棚になり,スマートフォンとパソコンの間でも自動共有されません.ブラウザのサイトデータ削除,保存容量の整理,プライベートブラウズの終了,端末の変更等によって利用できなくなる場合があります.保存可能な冊数,保持期間,データが消えないことは保証できません.

現在はCSV・JSONの書き出し,バックアップ,復元,一括移行に対応していません.ブラウザの保存容量が不足すれば,表紙Blobを含む新しいレコードの追加に失敗する場合があり,そのときは画面に保存エラーを表示します.表紙を省略すれば1冊あたりの使用量は小さくなりますが,本ツールの記録を唯一の蔵書台帳にしないことが安全です.失われて困る情報は,他の方法でも確認できる状態にしておいてください.

第6章

手入力とISBN補完の通信差,書店で確認するときの限界

作品名,巻数,著者名を手入力して保存する操作では,それらの値をopenBDやGoogle Booksへ送りません.保存済み本棚の作品名・著者名検索,表示切替,詳細表示,削除にも書誌APIは使いません.一方,ISBN補完ではISBNを外部の書誌サービスへ送り,書影を取得するときは画像配信元へも通信します.

ページのHTML,CSS,JavaScript,広告,アクセス解析等を読み込むサイト共通通信とは分けて説明する必要があります.

書店では作品名を検索し,登録済みの巻数を小さい順に見直せます.たとえば一覧に1巻から8巻まであり9巻がないことを確認すれば,購入判断の材料になります.しかし,電子書籍ストアや店舗の購入履歴を自動取得する機能,新刊発売を通知する機能はありません.登録を忘れた本,別表記で登録した本,警告後に複数登録した本まで自動で判断できないため,二重買い防止を保証する仕組みではありません.

店内の通信状況が悪いとISBN検索は失敗またはタイムアウトする場合があります.BarcodeDetector非対応,カメラ権限拒否,バーコードの反射等で走査できない場合もあります.その場合はISBNを手入力し,書誌情報を取得できなければ作品名と巻数を直接入力します.

表紙は任意なので,通信やカメラを使わず表紙なしで登録する手順を代替として利用できます.本ツールは購入状況を自動判定するシステムではなく,利用者が記録した内容を購入前に確認するための補助です.

よくある質問(FAQ)

A.
購入済みの作品名と巻数を登録しておけば,書店などで本棚を検索して手持ちの巻を確認できます.同じ作品名・巻数を再登録すると警告しますが,登録漏れや表記揺れまでは自動判定できません.購入前の確認を助ける機能であり,二重買いを完全に防止するものではありません.
A.
作品名,巻数,著者名,加工後の表紙画像,登録日時を,このサイトのIndexedDBへ保存します.ツール独自の暗号化は行いません.手入力した蔵書情報や自分で選んだ画像を外部の書誌APIへ送る処理はありませんが,ページ表示に必要な通常の通信とは別です.
A.
はい.ISBNをopenBDへ送信して書誌情報を検索し,見つからない場合はGoogle Booksへ送信します.書影を取得するときは画像の配信元へも通信します.取得内容は外部データに由来する候補なので,作品名・巻数・著者・表紙を登録前に確認してください.
A.
カメラ利用を許可できる対応ブラウザでは撮影できます.画像は2:3の枠内で位置と倍率を調整し,300×450pxのJPEGへ変換してIndexedDBへ保存します.この表紙処理で,選択・撮影した画像をツール独自のサーバーへアップロードする機能はありません.
A.
ブラウザ標準のBarcodeDetectorがEAN-13へ対応している場合だけ表示します.カメラ権限も必要です.非対応環境や権限を許可できない環境では,本の裏表紙にある978または979で始まる13桁のISBNを入力してください.
A.
現在はクラウド同期,バックアップ,エクスポート,復元に対応していません.サイトデータの削除,ブラウザの容量整理,プライベートブラウズの終了,端末やブラウザの変更によって登録内容を利用できなくなる場合があります.