memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

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

■2020/5/30 追記

amazon.comで購入したkindle本を読むたびにアカウントを切り替えるのが面倒になりkindle本をPDFに変換しようとしまして。以下をやろうとしたけど、実はもっと簡単にできることがわかったので、とりあえず作業ログを書いておきます>将来の自分のために。

(1) Kindle for PC 1.24 をWin10にインストール
(2) Calibre と DeDRM(6.7.0) のそれぞれ最新版をWin10にインストール
(3) Kindle for PCに変換したい本を詠み込むとazwファイルが生成される。
(4) Calibreを起動し、DeDRMをプラグイン追加したあと、本を追加でazwファイルを詠み込む。
(5) あとは本を変換でPDFにするだけ。特に困ることはなし。





ーーーーーーーーーーーーーーーーーーーー

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

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本も配布してくれているから何の問題もないんだよね。。。