Libby/OverDrive Book Monitor
Track book availability on Libby/OverDrive libraries. Search catalogues, manage a watchlist, and get notified when books are added to your library's collection.
Disclaimer: This is an unofficial tool, not affiliated with or endorsed by OverDrive/Libby. Catalogue data queries APIs that power the website and may not reflect actual availability. This tool does NOT borrow books or place holds. Provided "as is" without warranty of any kind.
Quick Start
CODEBLOCK0
Commands
| Command | Description |
|---|
| INLINECODE0 | Search a library catalogue by title/author |
| INLINECODE1 |
Add a book to the watchlist |
|
unwatch <title> | Remove a book from the watchlist |
|
list | Show the watchlist with status |
|
check | Check all watchlist books against the API |
Options
| Option | Commands | Description |
|---|
| INLINECODE5 | all | Separate watchlist per user |
| INLINECODE6 |
watch | Specify book author |
|
--library <code> | watch | Library code (default: from config) |
|
--notify | check | Only print newly found books (for cron) |
|
--data-dir <path> | all | Custom data directory |
Profiles
Use --profile to maintain separate watchlists for different people:
CODEBLOCK1
Configuration
Default library is telaviv Israel Digital. Edit ~/.libby-book-monitor/config.json to change:
CODEBLOCK2
The library code is the subdomain from your library's OverDrive site (e.g., nypl.overdrive.com -> nypl).
Cron Integration
Run a daily check that only outputs when books are newly found:
CODEBLOCK3
If any new books are found, send the results to the user.
Notes
- - Works with non-Latin scripts (Hebrew, Arabic, CJK, etc.)
- Books are considered "found" when
isOwned: true in the API response - 1-second delay between API calls when checking multiple books
- No external dependencies (Python stdlib only)
- Data stored in
~/.libby-book-monitor/ (configurable via --data-dir or $LIBBY_BOOK_MONITOR_DATA)
Libby/OverDrive 图书监控器
追踪Libby/OverDrive图书馆的图书可借阅状态。搜索目录、管理关注列表,并在图书添加到图书馆馆藏时接收通知。
免责声明:这是一个非官方工具,与OverDrive/Libby无关联或未经其认可。目录数据查询的是驱动网站的API,可能无法反映实际可借阅状态。本工具不会借阅图书或进行预约。按原样提供,不提供任何形式的担保。
快速开始
bash
搜索图书馆目录
python3 {baseDir}/scripts/libby-book-monitor.py search telaviv Project Hail Mary
将图书添加到关注列表
python3 {baseDir}/scripts/libby-book-monitor.py watch Kafka on the Shore --author Haruki Murakami
通过API检查关注列表
python3 {baseDir}/scripts/libby-book-monitor.py check
显示关注列表
python3 {baseDir}/scripts/libby-book-monitor.py list
命令
| 命令 | 描述 |
|---|
| search <library> <query> | 按标题/作者搜索图书馆目录 |
| watch <title> |
将图书添加到关注列表 |
| unwatch
| 从关注列表中移除图书 |
| list | 显示关注列表及状态 |
| check | 通过API检查所有关注列表中的图书 |
选项
| 选项 | 适用命令 | 描述 |
|---|
| --profile <name> | 所有 | 按用户区分关注列表 |
| --author <name> |
watch | 指定图书作者 |
| --library | watch | 图书馆代码(默认:从配置读取) |
| --notify | check | 仅输出新发现的图书(用于定时任务) |
| --data-dir | 所有 | 自定义数据目录 |
配置文件
使用--profile为不同用户维护独立的关注列表:
bash
python3 {baseDir}/scripts/libby-book-monitor.py --profile jane watch Dune
python3 {baseDir}/scripts/libby-book-monitor.py --profile bob check --notify
配置
默认图书馆为telaviv以色列数字图书馆。编辑~/.libby-book-monitor/config.json进行修改:
json
{
default_library: nypl,
libraries: {
nypl: 纽约公共图书馆
}
}
图书馆代码是您图书馆OverDrive站点的子域名(例如:nypl.overdrive.com -> nypl)。
定时任务集成
运行每日检查,仅在发现新图书时输出结果:
bash
python3 {baseDir}/scripts/libby-book-monitor.py --profile jane check --notify
如果发现任何新图书,将结果发送给用户。
注意事项
- - 支持非拉丁文字(希伯来语、阿拉伯语、中日韩文字等)
- 当API响应中isOwned: true时,视为已发现图书
- 检查多本图书时,API调用间隔1秒
- 无外部依赖(仅使用Python标准库)
- 数据存储在~/.libby-book-monitor/(可通过--data-dir或$LIBBYBOOKMONITOR_DATA配置)