Kindle関係物置

KindleUnpack - The Plugin + ZIP mod

概要

calibre用KindleUnpackプラグインを改造してazw3を画像のみのzipでも出力可能にしたものです。
DumpAZW6も取り込んであるのでresがあれば中にあるHD画像を差し替えて出力します。(要設定)
ついでに個人的なことで、

  • 画像のファイル名の連番の開始を00001に変更。(DumpAZW6の出力ファイルと同じ連番に)
  • JPEG画像の拡張子をjpegからjpgに変更。
  • zipは画像だけだとどうせ大して縮まないので無圧縮で作成されるように。
  • ファイル変換後に書籍毎に一時ファイルをすべて消すように。
    (大量のファイルを変換した場合calibreを終了するまでTEMPディレクトリの容量を圧迫するため)

をしています。

開発環境

Windows 10のcalibre 4.12で動作確認を行っています。

使用方法

KindleUnpackのメニューにzipで出力する項目が出来ているのでそれを実行してください。

DumpAZW6を使用したHD画像の差し替え機能を使うには、KindleUnpackのメニューのCustomize pluginからKindle Contentのディレクトリの位置を設定してください。

その中の書籍のディレクトリ(*_EBOK)にresファイルがあれば自動的に差し替えてepubやzipを作成します。
上記の場所に見つからない場合は、calibreライブラリの書籍のディレクトリからresファイルを探して差し替えます。

変更部分

  • __init__.py
  • action.py
  • config.py
  • dialogs.py
  • mobi_stuff.py
  • utilities.py
  • kindleunpackcore/kindleunpack.py
  • kindleunpackcore/mobi_cover.py
  • kindleunpackcore/unpack_structure.py
  • kindleunpackcore/unpack_structure.py
  • kindleunpackcore/DumpAZW6_v01.py

上記を主にzipで出力できるようにコードを修正、追加しています。

使用したもの等

ToDo

  • なし

ライセンス

更新履歴

v.0.3 - 2020/03/29

  • 設定ダイアログにzipの圧縮タイプを追加。(デフォルトは無圧縮)
  • 設定ダイアログに一時ファイルを常に削除するを追加。(デフォルトはオン)
  • 上記に伴い設定ダイアログを整理。
  • テキストの一部日本語表示に対応。
  • nav.xhtmlに存在しない表紙が登録され、表紙が二重になってしまうことがあったのを修正。

v.0.2 - 2020/03/17

  • 設定にKindle Contentディレクトリを設定する項目を追加。
  • DumpAZW6の機能を追加。(上記の位置かcalibreライブラリの書籍のディレクトリにresがあればHD画像と差し替えるように)
  • epub出力のデフォルトバージョンをAuto-detectに変更。
  • ファイル変換後に書籍毎に一時ファイルをすべて消すように変更。
  • 配布ファイルの構造を変更。

v.0.1 - 2020/3/14

  • なんとなく形になったので公開。

ダウンロード

GitHub

azw2zip

Python 2.7(+pycrypto)が動く環境を自分で構築できる人向けのものです。

概要

KindleUnpackとDeDRM、DumpAZW6を改造してKindleの電子書籍(azw/azw3(あればresも))を画像のみの無圧縮zipかepubに変換するようにしたもの。
azwはWindowsならキーファイル(k4i)がなければ作り、変換します。(多分Macもだけど環境がないので未確認)
Linux(WSLも)では各自キーファイル(k4i)を別途用意してこれと同じディレクトリにおいてください。
Kindleは1.24以前のものをインストールした環境でないとダメです。(DeDRMの仕様)

開発環境

Windows 10とWSL(Ubuntu 18.4 LTS)のPython2.7、Kindle 1.24で開発&動作確認を行っています。

使用方法

各々の環境にPython 2.7(+pycrypto)を入れてazw2zip.pyに引数を渡して実行してください。

引数

azw2zip [-t] [-e] [-d] <azw_indir> [outdir]

  • -t : ファイル名の作品名をUpdated_Titleを使用するように(calibreと同じ形式)
  • -e : zipではなくepubを出力するように
  • -d : デバッグモード(標準出力表示&作業ファイルを消さない)
  • azw_indir : My Kindle Content内の変換したい書籍のディレクトリ
    (ディレクトリを再帰的に読み込むのでMy Kindle Contentディレクトリを指定するとすべての書籍を変換出来ます)
  • outdir : 出力先(省略するとこれと同じディレクトリ)
-dを付けてazw_indirにMy Kindle Contentを指定するとすべての書籍を変換し、
すべての作業ファイルが残るのでストレージの空き容量に注意ください。

Windowsで毎回コマンドラインはめんどくさい人

Pythonの環境を整えてからazw2zip.vbsにpython.exeのパスを設定して、
変換したい書籍のディレクトリをazw2zip.vbsにD&Dするとこれと同じディレクトリにzipが作成されます。

変更点

DeDRM - DeDRM_Plugin

  • 出力ファイル名を_nodrmを付けただけのものに変更。(k4mobidedrm.py)
  • ©のprintがWindows環境ではエラーになるので(C)に変更。(mobidedrm.py)
  • python-lzmaを入れなくても大丈夫なように変更(多分)。(ion.py)
  • S-JISに存在しないUnicode文字の表示がWindows環境でエラーが出ないように対策。(k4mobidedrm.py)

DumpAZW6

  • 外部から呼べるように関数を追加。(DumpAZW6_v01.py)
  • 受け付ける拡張子にresを追加。(DumpAZW6_v01.py)
  • 出力先を指定できるように変更。(DumpAZW6_v01.py)
  • 出力される画像のファイル名をHDimage→imageに変更。(DumpAZW6_v01.py)
  • 出力されるJPEG画像の拡張子をjpeg→jpgに変更。(DumpAZW6_v01.py)

KindleUnpack - KindleUnpack/lib

  • 外部から呼べるように関数を追加。(kindleunpack.py)
  • 出力されるJPEG画像の拡張子をjpeg→jpgに変更。(kindleunpack.py、mobi_cover.py)
  • 出力される画像の連番を00001からに変更。(kindleunpack.py)
  • zipでも出力できるように追加。(kindleunpack.py、unpack_structure.py)
  • DumpAZW6で出力したHD画像を取り込むように追加。(unpack_structure.py)
  • S-JISに存在しないUnicode文字の表示がWindows環境でエラーが出ないように対策。(mobi_header.py)

その他

出力されるファル名は、
[作者名] 作品名.zip(.epub)
になります。
作者名は複数作者の場合 & で繋げるようになっています。
作品名はTitleを使用します。
-t オプションでUpdated_Titleを使うようになります。(calibreと同じ形式)
作者名、作品名をファイル名にする際のダメ文字は全角化するようにしています。(/を/等)

出力ファイル名を変えたければ、
KindleUnpack/lib/kindleunpack.py
の625行からの部分を変更してください。

使用したもの等

ライセンス

更新履歴

ver.0.2 - 2020/3/25

  • S-JISに存在しないUnicode文字が作者名/作品名に含まれていた場合、出力ファイル名が数値文字参照になっていたのを修正。
  • -dオプションを付けた場合、Windows環境で上記の時エラーになっていたのを対策。
  • -dオプションを付けた場合、キーファイル(k4i)が作成できずエラーになっていたのを修正。

ver.0.1 - 2020/3/23

  • なんとなく形になったので公開。

ダウンロード

GitHub


tools/kindle/start.txt · 最終更新: 2020/04/04 21:13 by junk2ool