Download all your kindle books script.
到 Release 页面查看最新版本,获取对应系统的二进制文件下载解压即可。
- python3
- requirements
python3 --version # 查看 python 版本
pip3 install kindle_download # 使用 pip 安装
git clone https://github.com/yihong0618/Kindle_download_helper.git && cd Kindle_download_helper
pip3 install -r requirements.txt
python3 kindle.py --h #查看使用参数
usage: kindle.py [-h] [--cookie COOKIE | --cookie-file COOKIE_FILE] [--cn] [--jp] [--de] [--resume-from INDEX]
[--cut-length CUT_LENGTH] [-o OUTDIR] [-od OUTDEDRMDIR] [-s SESSION_FILE] [--pdoc] [--resolve_duplicate_names]
[--readme] [--dedrm] [--list]
[csrf_token]
positional arguments:
csrf_token amazon or amazon cn csrf token
options:
-h, --help show this help message and exit
--cookie COOKIE amazon or amazon cn cookie
--cookie-file COOKIE_FILE
load cookie local file
--cn if your account is an amazon.cn account
--jp if your account is an amazon.jp account
--de if your account is an amazon.de account
--resume-from INDEX resume from the index if download failed
--cut-length CUT_LENGTH
truncate the file name
-o OUTDIR, --outdir OUTDIR
dwonload output dir
-od OUTDEDRMDIR, --outdedrmdir OUTDEDRMDIR
dwonload output dedrm dir
-s SESSION_FILE, --session-file SESSION_FILE
The reusable session dump file
--pdoc to download personal documents or ebook
--resolve_duplicate_names
Resolve duplicate names files to download
--readme If you want to generate kindle readme stats
--dedrm If you want to `dedrm` directly
--list just list books/pdoc, not to download
尝试自动获取 cookie、csrfToken 进行下载
python3 kindle.py --dedrm --cn ## --dedrm 移除 DRM
(推荐) 手动输入 cookie、csrfToken 进行下载
python3 kindle.py ${csrfToken} --cookie ${cookie} --dedrm --cn #下载国区 Kindle 书籍并移除 DRM
python3 kindle.py ${csrfToken} --cookie ${cookie} --dedrm #下载美区 Kindle 书籍
若默认情况下提示 cookie 无效,你也可以手动输入 cookie。
在上述 全部书籍 列表页面,按 F12
或右键点击——检查,进入网络面板 (Network),找到任意一个 ajax
请求,复制请求头里的 Cookie
即可。同时也能在 Payload 里找到 csrfToken
。
然后,执行
python3 kindle.py --cn --cookie ${cookie}
你也可以把 cookie 保存为文本文件,执行 python3 kindle.py --cookie-file ${cookie_file}
下载书籍。
若执行过程中提示获取 CSRF token 失败,你可以手动输入 CSRF Token。
CSRF Token
可以在页面源码中找到。在 全部书籍 列表页面右键点击,选择查看网页源码,再利用文本匹配工具 (Ctrl + F) 查找 csrfToken
,将等号右边引号中的值复制出来,加到命令行参数中。
# CSRF Token
python3 kindle.py --cn ${csrfToken}
# Both cookie and CSRF Token
python3 kindle.py --cn --cookie ${cookie} ${csrfToken}
如果你的运行环境是本机,项目可以使用 browser-cookie3 库自动从浏览器中获取 cookie。
- 登陆 amazon.cn
- 访问 https://www.amazon.cn/hz/mycd/myx#/home/content/booksAll/dateDsc/
- 右键查看源码,搜索
csrfToken
复制后面的 value - 执行
python3 kindle.py --cn
- 如果下载推送文件
python3 kindle.py --cn --pdoc
- 如果想直接 dedrm 解密 (不保证好用)
python3 kindle.py --cn --pdoc --dedrm
- login amazon.com
- visit https://www.amazon.com/hz/mycd/myx#/home/content/booksAll/dateDsc/
- right click this page source then find
csrfToken
value copy - run:
python3 kindle.py
- if is doc file
python3 kindle.py --pdoc
- login amazon.de
- visit https://www.amazon.de/hz/mycd/myx#/home/content/booksAll/dateDsc/
- right click this page source then find
csrfToken
value copy - run:
python3 kindle.py --de
- if is doc file
python3 kindle.py --de --pdoc
- amazon.co.jp にログインする。
- ホームページ https://www.amazon.jp/hz/mycd/myx#/home/content/booksAll/dateDsc/)にアクセスする。
- ソースコード上で右クリックし、
csrfToken
を検索して、それ以降の値をコピーします。 python3 kindle.py --jp
を実行する。- プッシュファイルをダウンロードする場合
python3 kindle.py --jp --pdoc
- cookie 和 csrf token 会过期,重新刷新下 amazon 的页面就行
- 程序会自动在命令执行的目录下创建
DOWNLOADS
目录,书会下载在DOWNLOADS
里 - 支持 mobi 类型的文件直接 dedrm
--dedrm
生成的文件在DEDRMS
里 - 如果你用 DeDRM_tools 解密 key 存在 key.txt 里
- 或者直接拖进 Calibre 里 please google it.
- 如果过程中失败了可以使用 e.g.
--resume-from ${num}
- 如果出现名字太长的报错可以增加:
--cut-length 80
来截断文件名 - 支持推送文件下载
--pdoc
- 如果有很多同名 pdoc 或 book 可以使用
--resolve_duplicate_names
解决同名冲突 - error log 记录在 .error_books.log 中
- 支持生成最近读完书的 README
--readme
生成的文件在my_kindle_stats.md
中 - 支持 mobi 类型的文件直接 dedrm
--dedrm
生成的文件在DEDRMS
里
- The cookie and csrf token will expire, just refresh the amazon page again.
- The program will automatically create
DOWNLOADS
directory under the command execution directory, the book will be downloaded inDOWNLOADS
directory. - If you use DeDRM_tools to decrypt the key, it will be stored in key.txt
- or just drag it into Calibre. Please google it.
- If the process fails you can use e.g.
--resume-from ${num}
- If the name is too long, you can add:
-cut-length 80
to truncate the file name - Support push file download
--pdoc
- If there are many pdocs or books with the same name, you can use
--resolve_duplicate_names
to resolve conflicts with the same name. - error log is logged in .error_books.log
- Support for generating READMEs of recently finished books
--readme
generated files are inmy_kindle_stats.md
- Any issues PR welcome
black kindle.py
- @Kindle
- @DeDRM_tools
- @frostming GUI and a lot of work
- @bladewang PDOC download
- 谢谢就够了