Kindle for PCのキャッシュファイルから持っているKindle本の一覧を作成する
持ってるKindleの一覧を作成したかったので色々調べたところ、Windows版のKindleアプリだと「%systemdrive%\users\《ユーザー名\AppData\Local\Amazon\Kindle\Cache」に本の情報が含まれたxmlファイル「KindleSyncMetadataCache.xml」が保存されることがわかりました。
そこで作成されたxmlをcsvに変換するスクリプトを「Python」で作成したので投稿しておこうと思います。
#kindle Pc cashe file => kindle book list csv
import xml.etree.ElementTree as ET
import csv
input_file_str = "./KindleSyncMetadataCache.xml"
output_file_str = "./kindle_book_list.csv"
header = ["ASIN", "title", "authors", "publishers",
"publication_date", "purchase_date",
"textbook_type", "cde_contenttype",
"content_type"]
nary = [header]
tree = ET.parse(input_file_str)
root = tree.getroot()
for book_info in root[2]:
ary = []
for info in book_info:
#authers publishers are nested
if len(info) == 0:
ary.append(info.text)
else:
info_list = [ s.text for s in info ]
ary.append(';'.join(info_list))
nary.append(ary)
with open(output_file_str, 'w') as f:
writer = csv.writer(f)
writer.writerows(nary)
キャッシュファイルの構造上、作者と、発行元が複数設定されることがある様なので、ループないで処理を分けています。作者は、原作と作画など複数なのはわかりますが、発行元が複数ってのはパッと想像つかないですね。
使っているモジュールは標準のものなので「Python」が入っていれば、上記スクリプトと同じ場所に「KindleSyncMetadataCache.xml」を置いてスクリプトを実行すれば「kindle_book_list.csv」が生成されます。
読み終わってるかどうかが、上記のxmlに含まれていない様なのでその辺りの情報が取れないのは残念。。。
この記事が気に入ったらサポートをしてみませんか?