Skip to main content

Amazon Kindle 电子书备份

· 4 min read

Amazon.cn 明年6月份会关闭电子书下载功能, 网上找了个备份Kindle电子书的教程, 整理如下.

Kindle shutdown

准备工具

  1. 下载 Calibre 并安装
  2. 下载 DeDRM_tools_7.2.1.zip 并解压
note

这两个文件我已上传至网盘, 如果从官网下载失败, 可以尝试从网盘下载:

  1. 移动网盘, 提取码 CP1W(需要登陆).
  2. 备份网盘 (直接下载, 速度比较慢).

配置

安装插件

  1. 打开 Calibre > Preferences(首选项, 图示1) > Plug-ins(插件, 图示2)
  2. 点击底部的 Load plug-in from file(从本地文件加载插件, 图示3), 选择 DeDRM_tools_7.2.1.zip 解压后的zip插件文件, 进行插件安装(注意解压后有两个插件, 都要安装).
  3. 勾选 Show only user installed plug-ins(仅展示用户已安装插件, 图示4), 双击 DeDRM 插件(图示5), 点击 eInk Kindle ebooks(图示6), 点击 +(图示7), 出现输入 Kindle Serial Number 输入对话框(图示9)
  4. 因为 Kindle 的电子书有DRM版权保护, 所以需要去Amazon网站获取Kindle设备的序列化(图示8), 然后复制粘贴到 图示9 即可.

steps

下载aw3格式电子书

接下来去Amazon网站下载 aw3 格式电子书并导入到 Calibre 即可阅读:

save file

如果电子书比较多, 这么手动点击下载比较繁琐, 下面是一段JS脚本, 按 F12 键打开 Developer Tool(开发者工具), 然后切换到 Console(控制台), 粘贴以下代码并执行, 会自动帮你下载每个文件:

Auto download aw3 file
(async function crawl() {
async function sleep(time) {
return new Promise((resolve) => {
setTimeout(() => resolve(), time);
});
}

for (let ele of document.querySelectorAll("[id^=DOWNLOAD_AND_TRANSFER_ACTION]")) {
const eleId = ele.id;
const isCancel = eleId.endsWith("CANCEL"),
isConfirm = eleId.endsWith("CONFIRM");
const isDownload = ele.innerHTML.indexOf("USB") !== -1;
if (!isDownload) {
continue;
}
const bookId = eleId.split("_").splice(-1);
const deviceId = `download_and_transfer_list_${bookId}_0`;
const eleDownload = document.getElementById(eleId + "_CONFIRM");
ele.click(); // 点击USB传输

await sleep(500);
const eleDevice = document.getElementById(deviceId);
eleDevice.click(); // 点击选择kindle设备

await sleep(500);
eleDownload.click(); // 点击确认下载

await sleep(5000);
document.getElementById("notification-success").querySelector("span").click(); // 隐藏下载成功提示
await sleep(2000);
}

document.querySelector(".page-item.active").nextSibling.click(); // 下一页
await sleep(60 * 1000);
await crawl();
})();

导出到微信阅读

在 Calibre 全选所有电子书, 右击选择 Save to disc > Save to disc, 然后电脑浏览器访问微信传书, 将到处的 epub 或者 aw3 格式的文件拖拽进去即可同步到微信阅读App上了.