MultiLibLink ヘルプ

図書館の貸出状況・予約状況・読書履歴を取得し、次に予約したい本を Excel で選んで予約まで支援する Windows 用ツールです。

このヘルプは Web 版です。アプリのヘルプボタンから開くページと同じ内容を想定しています。

動作環境

対応 OS Windows 10 / 11 を想定しています。macOS、Linux、スマートフォンでは利用できません。
インストール方法 通常は配布されている MultiLibLink_Setup.exe を実行してインストールします。開発用の MultiLibLink.exe を直接起動することもできますが、通常利用ではインストーラー版を推奨します。
追加ランタイム アプリ本体は必要な Python ライブラリを同梱した exe として配布する想定です。別途 .NET ランタイムや Python をインストールする必要はありません。
ブラウザ部品 図書館 HP の操作には Playwright Chromium を使用します。初回実行時にブラウザ部品が無い場合、自動で準備されます。インターネット接続と、セキュリティソフトによる通信許可が必要になることがあります。
ダウンロード 配布ページは MasaTools を想定しています。最新版のインストーラーがある場合は、そちらから入手してください。

対応図書館

現時点で主に動作確認しているのは、大阪市立図書館の蔵書検索・予約システムです。URL に licsxp-opac を含む LICS-XP / iLis 系の画面構造を前提に、ログイン、貸出状況取得、予約状況取得、検索、予約確定を行います。

LibraXX、Calista、その他の OPAC については、画面構造やボタン名が異なる場合があるため、そのまま対応できるとは限りません。新しい図書館を追加する場合は、図書館設定でログイン URL とユーザー情報を登録し、接続確認でログインできるかを確認してください。

プリセットについて
現在は「多くの図書館を一覧から選べるプリセット集」ではなく、図書館名・ログイン URL・ユーザー情報をアプリ内に登録して使う方式です。同じアプリ内に複数の図書館プロファイルを作成できます。

はじめて使う

1. 図書館を登録図書館設定で、図書館名、ログイン URL、カード番号、パスワードを入力します。
2. 接続確認登録したユーザーで図書館 HP にログインできるか確認します。
3. 設定を保存接続できたら、設定を保存します。
4. 今すぐ取得実行タブで貸出中の本、予約中の本、読書履歴を取得します。
5. Excel を確認取得後に Excel を開き、予約候補シートや予約状況を確認します。

初めて使う場合は、まず予約操作をせずに 今すぐ取得 だけを実行してください。取得が終わったら Excel を開き、予約中の本、借りている本、読書履歴が表示されていることを確認します。ここまで確認できてから、予約候補のチェックと予約実行に進むのが安全です。

実行タブの画面
実行タブ。通常の流れは「今すぐ取得」で最新状態を取得し、Excel で予約候補を選び、「予約する」で実行します。

ボタンの意味

ボタン動作
今すぐ取得 登録ユーザーの貸出状況、予約状況、読書履歴を図書館 HP から取得し、Excel に保存します。予約候補シートも更新されます。
予約候補を開く library_data.xlsx を開き、予約候補シートを表示します。画面や版によって 取得データを開く(予約候補入力) と表示されることがありますが、同じ Excel を開く操作です。
予約する 予約候補シートで 予約する にチェックした行だけを、図書館 HP で検索して予約します。
データフォルダを開く Excel、設定、バックアップが保存されているデータフォルダを開きます。通常はトラブル対応やバックアップ確認のときに使います。

定期的に自動取得するスケジュール実行は、現在の基本機能には含めていません。取得は 今すぐ取得 で手動実行します。メール監視を有効にした場合のみ、図書館からの通知メールをきっかけに取得処理を行います。

図書館設定

図書館設定タブの画面
図書館設定タブ。図書館プロファイル、ログイン URL、登録ユーザー、メール監視の対象を設定します。
  1. 図書館名 を選ぶか、追加します。
  2. 図書館ログイン用 URL に、ブラウザでログイン画面が開く URL を入力します。
  3. カード番号とパスワードを入力し、ユーザーを追加します。
  4. 登録ユーザー一覧で対象ユーザーを選び、接続確認 を実行します。
  5. 接続できたら 設定を保存 を押します。

登録ユーザーは、一覧の上から順に予約処理で使われます。ユーザーごとの予約上限に近い場合は、次のユーザーへ自動で切り替えます。

データ保存場所

取得データや設定は、通常は次のフォルダに保存されます。

%LOCALAPPDATA%\MultiLibLink\

エクスプローラーでは、アドレスバーに上記を貼り付けて Enter を押すと開けます。アプリの データフォルダを開く ボタンからも開けます。

ファイルまたはフォルダ内容
【図書館名】library_data.xlsx貸出状況、予約状況、読書履歴、予約候補を保存するメインの Excel です。
config.json図書館設定、ユーザー設定、メール設定を保存します。
.secret_keyパスワード暗号化に使う鍵です。設定をバックアップする場合は、このファイルも一緒に保管してください。
backups\Excel の自動バックアップを保存します。
backups\【図書館名】library_data\history_backup.jsonl読書履歴を追加保存する補助ログです。通常は開く必要はありません。
debug\debug.log動作確認用のログです。トラブル調査で使います。

Excel を開いたまま 今すぐ取得予約する を実行すると、Windows からアクセス拒否されることがあります。実行前に library_data.xlsx を閉じてください。

予約候補の作られ方

今すぐ取得 が終わると、予約候補シートが自動で更新されます。候補は、直近約 2 か月の読書履歴、現在借りている本、現在予約している本を組み合わせて作成します。

基本ロジック

最終確認巻 は「読んだ巻」だけではありません。予約中の巻や、現在借りている巻がある場合は、それらも含めて一番先に進んでいる巻を指します。

予約中の巻がある場合

最終確認巻が予約中で、予約状態が 待ち の場合、次巻を予約すると順番が前後する可能性があります。そのため、状態は 予約待ちのため保留 になり、次巻予約の対象から外れます。

最終確認巻が 取置中 や確保済みと判断できる場合は、次の巻を予約しても順番が崩れにくいため、次巻予約の対象にできます。

シリーズ認識と検索ワード

タイトルには巻数、叢書名、著者名、出版社、副タイトルなどが混ざっています。MultiLibLink はこれらをできるだけ整理し、シリーズ名と巻数を抽出します。

推奨される検索ワード理由
世界史探偵コナン世界史探偵コナン + 歴史まんが副タイトルを入れると 1 冊に絞られすぎるため、シリーズ全体が出る語にします。
日本史探偵コナン日本史探偵コナン + 歴史まんが世界史探偵コナンと同様に、シリーズ名と叢書の語で検索します。
名探偵コナン VOLUME74名探偵コナン + 少年サンデーコミックス、しぼり込みに VOLUME74検索語は広めにし、巻数はしぼり込みで特定します。
Slam dunk 完全版"Slam dunk" + 完全版 デラックス空白を含む語は引用符付きで扱い、重すぎる検索を避けます。
うまくなろうトランペット Band journal bookうまくなろうトランペット + Band journal bookタイトル本体と叢書名の 2 語に分けます。
かみさまのベビーシッターかみさまのベビーシッター余分な記号や重複語を外します。

大阪市立図書館の検索では、検索結果が 1000 件を超えると検索条件を変更するよう求められます。この場合、状態は 検索語要確認(1000件超過) になります。シリーズ名だけで広すぎる場合は、叢書名を検索ワード2に入れるなどして絞り込んでください。

予約候補シート

予約候補シート
予約候補シート。予約したいシリーズの 予約する にチェックを入れ、必要に応じて検索ワードや予約冊数を修正します。

主な列

説明
予約する予約実行の対象にする場合にチェックします。チェックは次回の 今すぐ取得 後も、同じシリーズであれば引き継がれます。
状態検索や予約の結果、保留理由を表示します。
シリーズ名アプリが同じシリーズと判断した名前です。
最終確認巻読書履歴、貸出中、予約中から確認できた最大の巻数です。
次に予約する巻通常は 最終確認巻 + 1 です。予約実行ではこの巻を探します。
検索ワード1 / 検索ワード2図書館 HP で検索する語です。検索しにくい場合はここを手動で修正します。
予約冊数同じシリーズを複数巻まとめて予約したい場合に 2 以上を指定します。巻数の小さい順に受取順を指定します。

内部管理用に、図書館結果タイトル、実行ユーザー、最終処理日時、巻しぼり込み接頭辞、シリーズキーなどの列を持つ場合があります。通常は表示や編集の対象ではありません。

状態列の意味

状態意味次にすること
未検索まだ予約実行で検索していない候補です。予約する場合はチェックして実行します。
検索語要確認検索ワードや巻数が不足しています。検索ワード1、検索ワード2、次に予約する巻を修正します。
検索語要確認(1000件超過)検索結果が多すぎます。検索ワード2を追加するなどして絞り込みます。
予約待ちのため保留最終確認巻が予約待ちのため、次巻を先に予約しないよう保留しています。その巻が取置中になった後、今すぐ取得 で更新します。
検索結果なし検索したが対象巻が見つかりませんでした。検索ワードを見直します。図書館に所蔵がない場合もあります。
検索失敗(タイムアウト)通信状況や図書館 HP の応答遅延で検索が完了しませんでした。時間を置いて再実行します。必要に応じて検索ワードを軽くします。
予約済今回の予約、または予約状況一覧での確認により予約成立を確認しました。次に進むには 今すぐ取得 で候補を更新します。
予約済のため対象外同じ巻が既に予約シートに存在するため、重複予約を避けました。通常は何もしません。
一部予約済複数巻まとめて予約したうち、一部だけ予約済みまたは対象外になっています。予約候補と予約シートを確認します。
予約未成立(一覧未反映)予約操作後、予約状況一覧で反映を確認できませんでした。同日中の再実行は避けます。図書館 HP で実際の予約状況を確認します。
未処理(前候補未成立)前の候補の成立が確認できず、安全のため後続処理を止めました。予約状況を確認し、必要なら再実行します。
予約枠不足登録ユーザーの予約枠が不足しました。予約枠に空きができてから再実行します。
指定ユーザー予約枠不足予約ユーザーを指定している候補で、そのユーザーの予約枠が足りません。指定ユーザーを変更するか、予約枠が空いてから実行します。

予約実行

予約実行の確認画面
予約実行前の確認画面。予約する本と、今回実行しない本の理由を確認してから実行します。
  1. 予約候補シートで 予約する にチェックします。
  2. Excel を閉じます。
  3. アプリの 予約する を押します。
  4. 確認画面で対象を確認し、問題なければ実行します。

予約上限とユーザー切り替え

大阪市立図書館では、登録ユーザー 1 人につき予約上限を 15 件として扱います。MultiLibLink は登録ユーザー一覧の上から順に処理します。

予約後に 15 件へ到達する割り当ては行わず、ひとつ手前で次のユーザーへ切り替えます。内部的には 15 - 現在予約数 - 1 を、そのユーザーで今回割り当て可能な冊数として扱います。たとえば現在 14 件のユーザーには 1 冊も追加せず、次のユーザーへ進みます。

今すぐ取得 から 10 分以内に予約処理を行う場合、直前取得で得た予約数を利用し、予約 15 件のユーザーは再確認せずにスキップします。

複数巻をまとめて予約する場合

予約冊数 を 2 以上にすると、次に予約する巻から連続する巻をまとめて予約します。図書館 HP のカートに追加し、巻数の小さい順に受取順を指定します。

ただし、対象巻の一部が見つからない場合や、予約枠に収まらない場合は、まとまりを分割せずに次のユーザーへ移るか、未処理として記録します。

メール監視

メール設定タブの画面
メール設定タブ。Gmail のアプリパスワードを使って、図書館からの通知メールを監視します。

メール監視は任意機能です。通常の 今すぐ取得予約する だけなら設定しなくても使えます。

何を監視するか

図書館設定で有効にした図書館について、指定した件名キーワードを含むメールを監視します。たとえば 予約資料がご用意できました のような取置通知を検知する想定です。

通知メールを検知したとき

接続テストで失敗する場合

Gmail の通常パスワードではなく、Google アカウントで発行したアプリパスワードを入力してください。メールアドレスに @gmail.com のドットが抜けていないか、IMAP が利用可能かも確認してください。

バックアップと復元

バックアップフォルダの画面
バックアップフォルダの例。日時付きの Excel バックアップと、読書履歴の補助ログが保存されます。

MultiLibLink は、Excel を保存する前に既存の library_data.xlsx をバックアップします。通常画面に復元ボタンは置いていません。誤操作を防ぐため、復元が必要なときだけ手順を確認しながら手動で戻します。

バックアップの保存場所

%LOCALAPPDATA%\MultiLibLink\backups\【図書館名】library_data\

世代管理

Excel をバックアップから戻す手順

  1. MultiLibLink と Excel を閉じます。
  2. データフォルダを開く でデータフォルダを開きます。
  3. 現在の 【図書館名】library_data.xlsx を、念のため別名に変更します。
  4. backups\【図書館名】library_data から戻したい日時の Excel をコピーします。
  5. コピーしたファイル名を 【図書館名】library_data.xlsx に変更します。
  6. MultiLibLink を起動し、Excel の内容を確認します。

history_backup.jsonl の使い方

history_backup.jsonl は、読書履歴を追加保存する補助ログです。Excel バックアップから戻せない場合に、読書履歴だけを復元するための材料として使います。通常は編集しないでください。

復元作業では、現在のファイルを上書きする前に必ず別名で残してください。迷う場合はファイルを削除せず、データフォルダ全体をコピーしてから作業すると安全です。

困ったとき

Excel への書き込みでアクセス拒否される

library_data.xlsx を Excel で開いたままにしている可能性があります。Excel を閉じてから、もう一度 今すぐ取得 または 予約する を実行してください。

予約したはずなのに予約状況に出ない

アプリは予約状況一覧で反映を確認できたものだけを 予約済 とします。確認できない場合は 予約未成立(一覧未反映) として記録し、同日中の重複予約を避けます。図書館 HP で実際の予約状況を確認してください。

検索が遅い、またはタイムアウトする

検索語が広すぎる場合や、3 語以上の検索で図書館 HP が重くなる場合があります。検索ワード1と検索ワード2の 2 語程度に整理し、巻数はしぼり込みで指定する形にしてください。

メール接続テストに失敗する

メールアドレス、アプリパスワード、IMAP の有効化を確認してください。Gmail の場合、通常のログインパスワードではなくアプリパスワードが必要です。

図書館に接続できない

ログイン URL が正しいか確認してください。ブラウザでその URL を開き、ログイン画面が表示される URL を設定します。図書館側の画面構造が対応外の場合、接続確認や予約処理ができないことがあります。