如何从 Kindle 电子书中删除 DRM?

Vim*_*935 10 kindle drm

我想知道如何从 Kindle 书中剥离 DRM。我想从亚马逊购买 Kindle 电子书。我会剥离 DRM,然后将其转换为 Epub(这样我就可以在连接到 iPhone 的耳机上收听它)和 PDF 格式(这样,在收听时,我可以在 PDF 阅读器(Okular)中使用我的基于 Ubuntu 的发行版,并注释这本书)。

我花了一个小时寻找用于剥离 DRM 的软件,但只找到了指向内容似乎没有帮助或我不信任的页面的链接。

Dav*_*ave 9

我将把这件事的合法性和道德问题留给律师,但我的理解是破坏 DRM 是非法的,但对您有权访问的 DRM 材料进行单一备份是合法的。

我相信这个问题的答案是通过结合两部独立的作品来找到的:

  1. 首先这个包:口径
  2. 再加上这个插件:DeDRM

插件链接中有详细说明。


apl*_*ice 5

我不打算讨论删除 DRM 的合法性,因为它因国家/地区而异——在某些情况下它属于合理使用,在其他情况下情况不明朗,而在其他情况下则明确为非法。

以下步骤对我有用,在 Ubuntu 18.04 上。

使用包管理器安装必要的程序

sudo apt-get install wine64
sudo apt-get install calibre
# sudo apt-get install winetricks # this is optional — see below
Run Code Online (Sandbox Code Playgroud)

下载其他必要的程序

DeDRM 插件

wget https://github.com/apprenticeharper/DeDRM_tools/releases/download/v6.6.3/DeDRM_tools_6.6.3.zip
Run Code Online (Sandbox Code Playgroud)

电脑版 Kindle v 1.17

(密切基于官方FAQ(快照)中的信息链接到最新版本。)

为获得最佳效果,您需要使用旧版 Kindle for PC (?1.17)。(较新的版本 (?1.24) 对下载的书籍使用次优 KFX 文件格式,而 DeDRM 插件根本无法“利用”较新的版本。)

不幸的是,Amazon 的网站上不再提供该版本的 PC 版 Kindle,因此您需要在 google/duckduckgo 上搜索文件名KindleForPC-installer-1.17.44170.exe,然后从一些粗略的网站下载。为确保您下载的是“原始”文件(而不是带有额外恶意软件的修改版本),您需要检查文件的哈希值。(md5 已“损坏”,而 sha1 部分“已损坏”,因此我不建议仅依赖它们。)

sha256sum KindleForPC-installer-1.17.44170.exe | grep 14e0f0053f1276c0c7c446892dc170344f707fbfe99b6951762c120144163200
Run Code Online (Sandbox Code Playgroud)

如果你不相信我,互联网上的一个随机人,告诉你正确的哈希,(你没有理由)你可以去上面的官方常见问题解答 - 毕竟,你已经信任 DeDRM 插件不要恶意。(出于某种原因,在常见问题解答中的 sha256 哈希中有一个空格。)

酒术

我们不能在 Kindle for PC 上使用 winetricks,因为它安装了 1.20 版本,这不太合适。

安装并运行电脑版 Kindle

wine64 KindleForPC-installer-1.17.44170.exe
Run Code Online (Sandbox Code Playgroud)

输入您的亚马逊帐户详细信息,将相关书籍下载到“设备”(即您的计算机)等。

安装 calibre DeDRM 插件

unzip DeDRM_tools_6.6.3.zip
calibre-customize --add DeDRM_calibre_plugin/DeDRM_plugin.zip
Run Code Online (Sandbox Code Playgroud)

或者,解压后您可以通过 Calibre 的标准 UI 安装它。(首选项 > 高级 > 插件 > 从文件加载插件。)

提取您的 Kindle 密钥

如果您使用的是 WINE/Linux,DeDRM 插件不会自行“自动神奇地”提取密钥而无需进行任何操作。

DeDRM_calibre_plugin/DeDRM_plugin_ReadMe.txt包含有关如何进行的一些建议。它们部分但不完全适合我。

安装python(在wine中)

为了提取 DRM 密钥,需要由 calibre 插件本身wine 中运行 python 脚本(由 calibre 插件提供)(理想情况下)。因此,您需要在 wine 环境中安装 python。

这里有两种选择——使用 winetricks 或从官方 python 网站手动安装。

手动安装(目前推荐)

wget https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi
msiexec /i python-2.7.13.msi ALLUSERS=1
Run Code Online (Sandbox Code Playgroud)

请注意,这与当前的说明不同,DeDRM_calibre_plugin/DeDRM_plugin_ReadMe.txt关键添加了ALLUSERS=1.

Winetricks(不推荐,除非你有新版本的 winetricks)

如果您在 18.04 上使用从 Ubuntu 存储库安装的 winetricks,那么不幸的是,只有 python-2.6(您可以使用 安装winetricks python26)可用。因为 calibre 插件目前硬编码标准 python-2.7 安装的路径,所以这是次优的。因此,您要么需要修补 calibre 插件,要么自己运行 wine python 脚本并复制解密密钥。

如果你有更新版本的 winetricks,你可以安装 python-2.7。

winetricks python27
Run Code Online (Sandbox Code Playgroud)

运行 wine python 脚本

为了让 calibre 插件运行脚本,你必须告诉它你的 wine 安装所在的位置(所谓的“WINEPREFIX”)。默认情况下,wineprefix 是~/.wine/. 您可以WINEPREFIX在 Calibre 中通过转至首选项 > 高级 > 插件 > 文件类型插件 > DeDRM > 自定义插件 > Kindle for PC 和 Adob​​e Digital Editions来告诉 calibre 插件。您可以通过按“+”按钮来提示运行脚本——否则,当您第一次尝试使用 Kindle DRM 添加一本书时,它会运行。

应该就是这样 - 当您将书籍添加到 calibre 时,它​​们将被自动剥离 DRM。或者,您可以查看下面的(几乎)cli 版本,其中删除了我的大部分详细解释。

(几乎)纯命令行版本

不要一次性复制粘贴所有这些,因为它不起作用——其中几个步骤需要人工参与。

sudo apt-get install wine64
sudo apt-get install calibre

mkdir -p ~/Downloads/kindle_dedrm/
cd ~/Downloads/kindle_dedrm/

# somehow get KindleForPC-installer-1.17.44170.exe
# check its hash
sha256sum KindleForPC-installer-1.17.44170.exe | grep 14e0f0053f1276c0c7c446892dc170344f707fbfe99b6951762c120144163200

wine64 ~/Downloads/kindle_dedrm/KindleForPC-installer-1.17.44170.exe &

# Enter your amazon account details, download your relevant books to the device etc.

wget https://github.com/apprenticeharper/DeDRM_tools/releases/download/v6.6.3/DeDRM_tools_6.6.3.zip
unzip DeDRM_tools_6.6.3.zip
# Install plugin (could also use Calibre's GUI)
calibre-customize --add DeDRM_calibre_plugin/DeDRM_plugin.zip

wget https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi
msiexec /i python-2.7.13.msi ALLUSERS=1

# Configure the calibre dedrm plugin with the correct wineprefix
# (could also use Calibre's GUI)
# (could also save it to a file and run, say,
# python add_wine_prefix_to_dedrm_config.py #)
python -c '
import json
import os

home = os.path.expanduser("~")
file = open(home + "/.config/calibre/plugins/dedrm.json", "r+")

dedrm_config = json.load(file)

dedrm_config["kindlewineprefix"] = home + "/.wine/"

file.seek(0)
json.dump(dedrm_config, file)
file.truncate()
file.close()
'

# Add all your Kindle books to the Calibre Library for automatic processing
calibredb add ~/Documents/My\ Kindle\ Content/*.azw --with-library="Calibre Library"
## (Optionally) list your books
# calibredb list --with-library="Calibre Library"
## (Optionally) export the first book
# calibredb export 1 --with-library="Calibre Library"
## (Optionally) export all your books
# calibredb export --all --with-library="Calibre Library"

Run Code Online (Sandbox Code Playgroud)