memorandums

日々の作業ログです。

kindle本をpdfにしたときの作業ログ(mac)

(本エントリーはあくまで未来の自分用のメモなので手順だけ書きます)

DeDRM_tools_6.6.3/DeDRM_Macintosh_Application/DeDRM.app を実行

デスクトップにDeDRM.logが生成されるので内容を確認。/usr/bin/pythonを実行しているらしく「ImportError: No module named Crypto.Cipher」って怒られていることがわかる。以下の記事を参考にpipを入れる(pyenvの環境は一旦外す)。

macOSのデフォルトPythonでpipを使う - Qiita

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py --user

シェルにPATHを追加。

export PATH="$HOME/Library/Python/2.7/bin:$PATH"

Crypto.Cipherのモジュールを追加するため、以下を実行

pip install pycrypto --user
DeDRM_tools_6.6.3/DeDRM_Macintosh_Application/DeDRM.app 再実行

DeDRM.logをみると、今度は、ImportError: No module named pylzma って怒られている。以下を実行。

pip install pylzma --user
DeDRM_tools_6.6.3/DeDRM_Macintosh_Application/DeDRM.app 再実行

pythonのエラーはなくなったが復号時に失敗。エラーは「DrmException: No key found in 4 keys tried」といった内容。

そこからあれこれやっているうちに、何となく仕組みがわかってきた。クラウドからKindle端末やKindleアプリに書籍データをDLするときに、その端末ごとのキー情報をもとに暗号化するのではないかと。あれこれはおいておいてとりあえず手順だけ。

DeDRM_tools_6.6.3/DeDRM_Macintosh_Application/DeDRM.app を実行して、右下のConfigure...ボタンを押して、最上段のeink Kindle eBooksを選択して、kindle端末のシリアル番号を入れる。
シリアル番号は[https://www.amazon.co.jp/mycd:title=コンテンツと端末の管理]で端末を選択すると表示されるので、それをコピペ(空白は手動で除去)する。
コンテンツと端末の管理から、pdfにしたい書籍を選択してダウンロードする。

この操作でazwではなくazw3のファイルがダウンロードできる。ここが実はポイントではないかと思う。Kindle for PCを使えとか1.24を使えとかネットにはあってそれらを試したけどどれもうまくいかなかった。kindlemacに接続して読み出そうとしたときにcalibreから以下のメッセージがあってわかったことだった。

f:id:ke_takahashi:20190901114909p:plain

ここも想像だが、コンテンツと端末の管理からダウンロードすると登録済みのKindle端末のシリアル番号で暗号化されるのではないかと思われる。それと、上記手順でDeDRM.appにkindle端末のシリアル番号をいれておくことでマッチして復号化できるのではないかと。。。思う。自分が購入したコンテンツなのに。。。面倒だけど。。。しかたがない。

とりあえずこれで最後に DeDRM_tools_6.6.3/DeDRM_Macintosh_Application/DeDRM.app を実行すればDRMの解除ができた。

同じ技術書でもオライリー本なら最初からpdf本も配布してくれているから何の問題もないんだよね。。。