我想知道如何从 Kindle 书中剥离 DRM。我想从亚马逊购买 Kindle 电子书。我会剥离 DRM,然后将其转换为 Epub(这样我就可以在连接到 iPhone 的耳机上收听它)和 PDF 格式(这样,在收听时,我可以在 PDF 阅读器(Okular)中使用我的基于 Ubuntu 的发行版,并注释这本书)。
我花了一个小时寻找用于剥离 DRM 的软件,但只找到了指向内容似乎没有帮助或我不信任的页面的链接。
我不打算讨论删除 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)
wget https://github.com/apprenticeharper/DeDRM_tools/releases/download/v6.6.3/DeDRM_tools_6.6.3.zip
Run Code Online (Sandbox Code Playgroud)
(密切基于官方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 版本,这不太合适。
wine64 KindleForPC-installer-1.17.44170.exe
Run Code Online (Sandbox Code Playgroud)
输入您的亚马逊帐户详细信息,将相关书籍下载到“设备”(即您的计算机)等。
unzip DeDRM_tools_6.6.3.zip
calibre-customize --add DeDRM_calibre_plugin/DeDRM_plugin.zip
Run Code Online (Sandbox Code Playgroud)
或者,解压后您可以通过 Calibre 的标准 UI 安装它。(首选项 > 高级 > 插件 > 从文件加载插件。)
如果您使用的是 WINE/Linux,DeDRM 插件不会自行“自动神奇地”提取密钥而无需进行任何操作。
DeDRM_calibre_plugin/DeDRM_plugin_ReadMe.txt包含有关如何进行的一些建议。它们部分但不完全适合我。
为了提取 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.
如果您在 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)
为了让 calibre 插件运行脚本,你必须告诉它你的 wine 安装所在的位置(所谓的“WINEPREFIX”)。默认情况下,wineprefix 是~/.wine/. 您可以WINEPREFIX在 Calibre 中通过转至首选项 > 高级 > 插件 > 文件类型插件 > DeDRM > 自定义插件 > Kindle for PC 和 Adobe 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)
| 归档时间: |
|
| 查看次数: |
11720 次 |
| 最近记录: |