关于 library-ebooks
用于搜索和下载个人 Amazon (Kindle) 图书馆电子书的命令行技能。它支持核对版本与格式,仅获取可访问的授权内容。
主要功能
- 01搜索个人 Kindle 图书馆
- 02按电子书格式筛选
- 03核对书名与版本
- 04下载可访问的文件
- 05自动切换镜像域名
适用场景
- 01按书名或作者查找已拥有的书
- 02选择指定版本或文件格式
- 03下载授权电子书以供分析
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ montagao/ skills --skill library-ebooks安装后在 Claude Code 中输入/library-ebooks确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignorescripts/library.pytests/test_library.py详细介绍
我的 Amazon(Kindle)图书馆电子书查询与下载
概述
用于搜索和下载我个人 Amazon(Kindle)图书馆中的电子书的内部工具,即我已购买或添加到帐户中的书籍(以及同步到图书馆的个人文档),支持所有可用格式。
注意:此技能仅适用于我自己拥有授权的内容,不会绕过 DRM。如果某个标题无法以可访问的文件格式下载,请改用 Amazon 官方的阅读或导出选项。
前提条件
重要:下载需要我帐户的 Amazon 图书馆访问密钥。
使用下载功能前,用户必须:
- 能访问自己的 Amazon(Kindle)图书馆(已购书籍/内容图书馆)
- 设置 API 密钥/令牌:
export LIBRARY_KEY="your-key"
可在内部图书馆代理/帐户设置中找到此密钥(或在用于验证 Amazon 图书馆索引访问权限的系统中查找)。不设置密钥也能搜索,但下载会失败。
**如果未设置密钥:**告知用户需要设置 LIBRARY_KEY,并提供上述设置说明。
适用场景
- 用户要求查找/下载自己 Amazon 图书馆中的书籍
- 需要查找自己拥有的已出版书籍中的内容
- 搜索图书馆中某个特定版本或格式的书籍
- “从我的 Kindle 图书馆中获取《Clean Code》的 PDF”
- “查找我拥有的《Design Patterns》最新版本”
快速参考
| 任务 | 命令 |
|---|---|
| 搜索 | python3 scripts/library.py search "query" --format pdf |
| 获取详情 | python3 scripts/library.py details <md5> |
| 下载 | python3 scripts/library.py download <md5> --output /path/ |
| 验证匹配项 | python3 scripts/library.py search "title author" --verify "expected title" |
环境设置
export LIBRARY_KEY="your-membership-key"
可在 Amazon 图书馆访问设置中找到此密钥(内部代理/令牌设置)。
工作流
digraph download_flow {
rankdir=TB;
node [shape=box];
search [label="Search by title/author"];
verify [label="Verify correct book\n(check title, author, year)"];
multiple [label="Multiple editions?" shape=diamond];
prefer_recent [label="Prefer most recent\nunless specific edition requested"];
format_ok [label="Preferred format available?" shape=diamond];
download [label="Download via fast API"];
convert [label="Use ebook-extractor\nto convert to text"];
search -> verify;
verify -> multiple;
multiple -> prefer_recent [label="yes"];
multiple -> format_ok [label="no"];
prefer_recent -> format_ok;
format_ok -> download [label="yes"];
format_ok -> search [label="no - try different format"];
download -> convert;
}
常见模式
查找并下载书籍
# Search with format preference
python3 scripts/library.py search "Clean Code Robert Martin" --format pdf --limit 5
# Verify it's the right book, get details
python3 scripts/library.py details adb5293cf369256a883718e71d3771c3
# Download
python3 scripts/library.py download adb5293cf369256a883718e71d3771c3 --output ./books/
处理多个版本
搜索结果返回多个版本时:
- 查看年份——除非用户指定版本,否则优先选择最新版本
- 查看格式——与用户偏好(pdf/epub)一致
- 确认作者完全匹配
格式优先级
用户未指定时的默认优先级:pdf > epub > mobi > azw3 > djvu
API 详情
这些端点指向你的内部 Amazon 图书馆索引/代理服务(由你自己的 Amazon 帐户/图书馆数据支持),而非公开的“查找任意书籍”目录。
搜索端点:https://library-archive.org/search
q- 查询字符串ext- 格式筛选(pdf、epub、mobi、azw3、djvu)sort-year_desc,按年份从新到旧排序
快速下载 API:https://library-archive.org/dyn/api/fast_download.json
md5- 书籍标识符key- 来自 LIBRARY_KEY 环境变量
常见错误
| 错误 | 修正方法 |
|---|---|
| 未设置密钥 | 检查 echo $LIBRARY_KEY |
| 版本错误 | 使用 --verify 标志并指定预期标题 |
| 格式不匹配 | 明确设置 --format |
| 未找到书籍 | 尝试更短的查询词或不同的作者姓名写法 |
转换为文本
下载的文件保留原始格式(PDF、EPUB、MOBI 等)。下载后,可使用 ebook-extractor 技能将其转换为纯文本,以便分析或处理。
典型工作流:
- 使用此技能下载 →
books/Clean_Code.pdf - 使用 ebook-extractor 转换 →
books/Clean_Code.txt
镜像回退
如果主域名不可用,脚本会自动尝试多个镜像域名:
- library-archive.org(主镜像)
- library-archive.li
- library-archive.se
- library-archive.in
- library-archive.pm
第一个可用的镜像会在本次会话中缓存。使用备用镜像时,你会在 stderr 中看到 Using mirror: <domain>。
错误处理
- "Invalid md5" - MD5 哈希格式错误或不存在
- "Not a member" - 密钥无效或已过期(即你的 Amazon 图书馆访问令牌无效)
- 无结果 - 扩展搜索词,或尝试仅按作者搜索
- "Could not connect to any mirror" - 所有镜像都不可用,请稍后重试
故障排除
macOS 上的 SSL 证书错误
如果你看到此错误:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate
这是因为 Python 无法在 macOS 上找到系统的 CA 证书包。
快速修复:
-
安装 certifi:
pip3 install certifi -
查找证书路径:
python3 -c "import certifi; print(certifi.where())" -
添加到
~/.zshrc:export SSL_CERT_FILE=/path/from/step/2/cacert.pem -
重新加载 shell:
source ~/.zshrc
验证是否正常:
python3 -c "import urllib.request; urllib.request.urlopen('https://google.com')"
**原因:**macOS 使用 Keychain 管理证书,但 Python 默认不会使用它。框架安装(如 /Library/Frameworks/Python.framework)通常缺少证书配置。
请勿使用 verify=False 或 PYTHONHTTPSVERIFY=0——这会完全禁用 SSL,存在安全风险。