ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

3 步批量下载已购 Kindle 电子书:Kindle_download_helper 工具实战

3 步批量下载已购 Kindle 电子书:Kindle_download_helper 工具实战

3 步批量下载已购 Kindle 电子书:Kindle_download_helper 工具实战

【免费下载链接】Kindle_download_helperDownload all your kindle books script.项目地址: https://gitcode.com/GitHub_Trending/ki/Kindle_download_helper

Kindle_download_helper 是一个面向 Kindle 电子书下载的开源脚本:把亚马逊 Kindle 商店里购买的全部电子书备份到本地,下载时还能直接去除 DRM。无需连接 Kindle 设备逐本传书,装好之后一条命令就能把整个书库收进自己的电脑。

核心能力速览 📚

  • 批量下载:拉取账户下全部已购书籍,默认存到本地DOWNLOADS文件夹。
  • DRM 去除:加--dedrm参数边下载边解密,处理结果输出到DEDRMS。
  • 多站点支持:美、中、日、德、英站各对应一个站点参数,--cn/--jp/--de/--uk,默认美站。
  • 无设备替代:没有实体 Kindle 时,no_kindle.py用邮箱密码登录直接导出 EPUB。
  • 双界面:命令行与 PySide6 图形界面两种用法,按习惯选择。

从零到跑通:pip 安装与首次下载 🚀

命令行版一行装好:

pip3 install kindle_download

想用最新源码就克隆仓库后执行pip3 install -r requirements.txt:

git clone https://gitcode.com/GitHub_Trending/ki/Kindle_download_helper

图形界面版装好requirements_gui.txt里的依赖后运行:

python3 kindle_gui.py

窗口里选站点、填 cookie、拉取书目,点按钮就能全量或勾选下载;也可以从项目 Release 页直接下载免安装的二进制包。

命令行首次使用,一条命令先跑通:

python3 kindle.py --cn --dedrm

--cn声明你是亚马逊中国账户,美站省略该参数。本地运行时工具会自动从浏览器读取 cookie,不用手动复制。跑成功后,书籍会出现在当前目录的DOWNLOADS文件夹里。

核心工作流:拿到 Cookie 再发起全量下载

自动读取 cookie 偶尔会失效,手动获取更稳。整个过程分两步。

第一步:复制 Cookie 与 csrfToken

登录账户后打开"所有书籍"页面,按 F12 打开开发者工具,切到 Network 面板,任选一个ajax请求,从请求头里复制Cookie。再右键查看页面源代码,搜索csrfToken复制它的值。

拿到这两个认证信息后,就可以发起下载了。

第二步:发起下载并按站点传参

python3 kindle.py ${csrfToken} --cookie ${cookie} --dedrm --cn

这个命令中位置参数传的是 csrfToken,--cookie传刚才复制的 cookie,--dedrm开启 DRM 去除。站点参数决定访问哪个商店:--cn中国、--jp日本、--de德国、--uk英国,不传就是美站。如果嫌 cookie 在命令行里转义麻烦,可以把它存成文本文件,用--cookie-file从文件读取。

进阶场景:选择性下载、断点续传与无设备方案 💡

如果你只想下其中几本,加上--mode sel进入选择模式:程序会列出全部书目,你输入7 10 20这样的序号或10:12这样的区间即可,输入l重新列表,输入q退出。

如果下载中途断网,重跑同一条命令并加上--resume-from 20,会从第 20 本接着下,不用从头再来。

遇到具体情况的处理:文件名过长报错用--cut-length 70截断;邮箱推送的文档加--pdoc单独下载;书名重名冲突用--resolve_duplicate_names;只想看清单不下载用--list;生成阅读统计表用--readme,输出my_kindle_stats.md。

如果你没有实体 Kindle 设备,走no_kindle.py这条替代路线:

python no_kindle.py -e ${email} -p ${password}

下载到的 EPUB 会存进EPUB文件夹,--memory可以额外导出全部购买记录和笔记,--bookmark导出书签与划线数据,适合做读书数据分析。

项目内部结构

项目把下载主流程、DRM 解密与界面拆成独立模块,顶层kindle.py、no_kindle.py只是入口脚本:

  • kindle_download_helper/kindle.py:核心下载与站点 API 逻辑
  • kindle_download_helper/dedrm/:DRM 解密实现
  • kindle_download_helper/no_kindle.py:无设备登录与 EPUB 导出
  • gui/:PySide6 图形界面

排障与高频问题

提示 cookie 无效或下载失败。多半是 cookie 和 csrfToken 过期了。刷新亚马逊"所有书籍"页面,重新复制两个值再跑一遍即可。

下载中断,中途缺了几本。失败的书籍会记录在.error_books.log里。用--resume-from指定第一本失败书籍的序号重跑,即可断点续传。

no_kindle 报AttributeError: 'NoneType' object has no attribute 'url'。通常是登录流程没拿到有效会话或站点参数不匹配。确认站点参数与账户一致(默认中国站,美站用--com),然后重新运行。

下载的 mobi 文件仍带 DRM 保护。说明--dedrm没生效或该本书解密失败。可以用dedrm.py对已下载目录单独解密,并传入目标格式参数直接输出 epub。

这条从备份到去 DRM 的链路基本覆盖了你拥有电子书的所有环节。下一步挑一条与你账户站点匹配的命令跑起来,确认DOWNLOADS文件夹里出现第一批书,剩下的就是慢慢读完整个书库。

【免费下载链接】Kindle_download_helperDownload all your kindle books script.项目地址: https://gitcode.com/GitHub_Trending/ki/Kindle_download_helper

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进