【Linux】Calibre でkindle本の DRM を解除する方法メモ
Linux で DRM を解除しようとしたら設定に少し手間が掛かった。
再設定するころには忘れていると思うので、備忘録として記事に残すことにした。
はじめに
Windows では問題なく DRM 解除ができていた。
Linux では Amazon Kindle をwine上で動かしているので Calibre のプラグイン DeDRM_plugin が「kindlekey1.k4i」を上手く取得できないのが問題の模様。
結論を言うと Amazon Kindle をインストールしているwineに Python2 をインストールして DeDRM_tools_x.x.x.zipに含まれている「kindlekey.pyw」をwine上で実行すればいい。
そして生成された kindlekey1.k4i を DeDRM_plugin に読み込ませる。
DRM を解除する
Linuxに Calibre, DeDRM_plugin、 wine上に Amazon Kindle がすでにインストールされていることを想定して書いています。まだの場合は下のおまけの部分を読んでください。
wine上に Python2 をインストール
インストーラーのダウンロード
python2 のインストーラーをダウンロードします。
※私は python 2.7.15 をインストールしていますが、2.7 なら他のでも大丈夫だと思います。
Download Python | Python.org
URL: https://www.python.org/downloads/
上記のサイトに飛んで、Python 2.7.15 の Download をクリック。
Files の「Windows x86 MSI installer」をクリック。
ダウンロードされますので、ホームディレクトリ(~)にでも保存して下さい。
インストール
wineで python2 のインストーラーを起動して、wine上にインストールします。
以下のコマンドを実行。
~$ wine msiexec /i python-2.7.15.msi
インストーラーが立ち上がるので、特に何も変更せずインストールします。問題なくインストールが完了するはず。
kindlekey1.k4i の生成
DRM 解除のための鍵となるファイル kindlekey1.k4i を生成します。
DeDRM_tools のダウンロード
DeDRM_tools に含まれる python スクリプトを使用するので、以下のサイトからダウンロードします。
Releases · apprenticeharper/DeDRM_tools · GitHub
URL: https://github.com/apprenticeharper/DeDRM_tools/releases
バージョンは最新版で問題ないと思います。ホームディレクトリ(~)にでも保存してください。
kindlekey1.k4i を生成
以下のコマンドで、ダウンロードしたファイルを解凍、
今回必要なファイルは「kindlekey.pyw」です。それだけを解凍してます。
~$ unzip -j ~/DeDRM_tools_6.6.3.zip "Other_Tools/DRM_Key_Scripts/Kindle_for_Mac_and_PC/kindlekey.pyw"
※ダウンロードしたzipファイルはホームディレクトリ(~)に保存したと仮定しています。
wine上の Python2 で「kindlekey.pyw」を実行します。
次のコマンド。
~$ wine python ~/kindlekey.pyw
成功すると以下のウィンドウが出ます。
ホームディレクトリ内に「kindlekey1.k4i」が出来ているはずです、確認してみてください。
Calibre で DRM 解除
Calibre に上記で生成した「kindlekey1.k4i」を読み込ませ、DRM を解除できるようにします。
Calibre に kindlekey1.k4i を読み込ませる
Calibre を起動して「設定」をクリック。
設定画面が出てくるので、高度な設定の「プラグイン」をクリック。
プラグイン画面が出てくる。
DeDRM を選択して「プラグインをカスタマイズ」をクリック。
DeDRMの設定画面、「Kindle for Mac/PC ebooks」をクリック。
「Import Existing Keyfiles」をクリック。
ファイラーが起動するので、上記で生成した「kindlekey1.k4i」を選択します。
先程まで空白だったところに「kindlekey1」が追加されているはず。
あとは閉じてください。以上で「kindlekey1.k4i」の読み込みは完了です。次回から Calibre で Kindle本 を開くと自動で DRM が解除されるようになります。
また、DeDRM に kindlekey1.k4i を読み込ませたら、kindlekey1.k4iファイル はもう必要ないので削除して問題ありません。
ちなみに、「WINEPREFIX:」のところに正しいwineのパスを書いて追加ボタン(+)をクリックしても kindlekey1.k4i は生成できませんでした。あとwineのディレクトリ構造が変になったりするので追加ボタン(+)はクリックしない方がいいと思います。
DRM を解除してみる
wine上の Kindle for PC でダウンロードしたファイルを Calibre で開けば自動で DRM を解除してくれます。
フォーマットが「AZW3」になっていれば解除が成功しています。
おまけ
wineのインストール
wineにもバージョンは色々あるが私は気にしない。
~$ sudo apt-get install wine
RHEL系は少々面倒だった気がするので割愛。
Amazon Kindle のインストール
wine上で動かすには 1.17.x が安定していたと思う。この記事を書いている時点では問題なく同期可能。
どこからかインストーラーをダウンロードして来てください。一応現時点でダウンロードできる URL を書いておきますが、問題が起きても自己責任でお願いします。
Kindle for PC 1.17.44183
URL: http://www.mediafire.com/file/ku208jm2ccqvn1w/KindleForPC-installer-1.17.44183.exe/file
wineでインストーラーを起動してインストール。
~$ wine KindleForPC-installer-1.17.44183.exe
※ winecfgでwindowsバージョンをWindows 7 に設定しておいて下さい。
Calibre のインストール
~$ sudo apt-get install calibre
RHEL系は割愛。
DeDRM_plugin のインストール
以下から DeDRM_tools_x.x.x.zip をダウンロードします。バージョンは最新版でいいんでね?
Releases · apprenticeharper/DeDRM_tools · GitHub
URL: https://github.com/apprenticeharper/DeDRM_tools/releases
ダウンロードしたファイルを解凍しておきます。
Calibre を起動して
設定→プラグイン→ファイルからプラグインを読み込む
DeDRM_calibre_plugin フォルダ内の「DeDRM_plugin.zip」を選択
Calibre を再起動で完了です。
おわりに
wine上に pycrypto もインストールしているのを見るが、私の場合はインストールせずにできた。この辺はよく分かってないです。
wine上で安定して動く Kindle for PC 1.17 がいつまでサポートされるか分からない所が不安ですね。
何かの参考になれば幸いです。
追記
Kindle for PC が接続できなくなった
Debian 9 で最近dist-upgradeしたら Kindle for PC がネットに接続できない現象が発生しました。
「接続できません。ネットワークの設定とプロキシの構成を確認してください」というダイアログが表示されます。Debian 10 でも同様の症状が出てます。
私の技量では原因を見つけることはできませんでした。リリースノートを見て削除されたパッケージをインストールすれば直るかもしれないですが、面倒なので私は試していません。
とりあえず私の環境では Debian 9.8 に戻して正常に接続できることを確認できました(Wine 1.8.7-2)。また、Manjaro Linux では問題なく接続できています。
Debian 固有の問題?もしかしたらUbuntu系でも同様の症状が出てるかもしれないですね。
Calibre 5.x で DRM が解除できない
現在 Calibre のメジャーバージョンが「5」になっています。DeDRM_plugin も最新のもの(beta)で Calibre 5 に対応したみたいなのですが、私の環境では DRM が解除されませんでした。Crypto がねーよって言われます。バージョンが上がったことで Python2 から Python3 に移行されているみたいだったので Python3 に Crypto を入れたけど駄目でした。
解決策としては Calibre 4 にするのが早そうです。
calibre - Download for Linux に書かれているコマンドを実行すればスクリプトが勝手にやってくれます。
~$ wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin version=4.23.0
※ コマンドそのままコピペだとそんなコマンドないって怒られたので必要な部分のみ抜粋。
※ 上記のコマンドでも、すでにインストールされているCalibreどうする?って聞いてくれるいい子。