Help us understand the problem. What is going on with this article?

Kindle書籍すべてをブクログで管理する

More than 1 year has passed since last update.

ブクログは非常に良いサービスなのですが、Kindle書籍の登録に難があります。ブックマークレットがあったり、ブクログ側で、書籍を探して登録すれば登録されます。

しかし求めているのはそういうことじゃないのです。

購入したら、抜け漏れなく自動で登録されてほしいし、過去に購入した書籍も全部登録したい。ひとつも例外なく。すべてです。

今後の購入分

Kindleの購入メールを、HTML形式でメールを送ってもらうように設定します。

  • HTML形式なら、Kindle書籍へのURLを含んでいて、URLからASINを切り出すことができるためです。テキスト形式だと、注文履歴へのURLまでで、ASINを切り出せません。
  • 設定は、Kindle購入メールの下端に「 HTML形式でのEメール配信をご希望の場合は、以下のURLから設定を変更してください」というのがあるので、リンク踏んで設定。

以下記事を参考にGASを設置して、定期実行させます。

使うにあたって以下の調整しました。

  • カテゴリなしにする
  • ログはスプレッドシートに残らなくてよい
  • トリガーは、1時間毎に実行とした

元記事は2016年で、ちゃんと動くのか不安だったものの、1冊購入、複数冊購入の両方が期待通り動作しました。すばらしい。

過去の購入分

問題は過去分。GASでメールからブクログに登録する流れはセットアップしたので、ちまちまと過去メールをinboxに移して、GAS実行して、というのを全部繰り返すのでも不可能ではありません。

Kindle の過去に購入した書籍リストは、以下2箇所から取得できます。

ご注文の確認メールは、私はテキスト形式で受信していたため、本件のために利用することができません。なので「コンテンツと端末の管理」ページからアプローチしました。

ブラウザの開発コンソールでcURLコマンドを出させて、JSONからASINを切り出す

以下の記事を参考に。

ただし、やってみたところ、

  • 1000冊目までは、いちばん最初のcurlコマンドのstartIndexを変えて実行すれば取れる
  • 1000冊目以降は、ブラウザの開発コンソールで観測できるstartIndexを変更しても受け付けない。batchSizeは100でいけた。

なのでせっせとブラウザでページングしながら、都度curlコマンドをコピって、以下のシェルスクリプトに流し込んで、、、

抽出したASINをブクログの一括登録ページから登録します。参考記事ではCSVに加工していますが、私はものぐさなので、ASINだけで登録してしまいました。その後のカテゴリや読書ステータスの調整がかなり大変でしたが。。。

スクレイピングできるよ!

偉大な先人が、コンテンツと端末の管理ページをスクレイピングして、Rubyで操作できるようにしてくれたようです。

ただ、READMEを眺めて、大きめの依存関係があって、セットアップだけで果てしない yak shaving が想像できて、ちょっとまあ、いいやってなりました。

しばらく経過して

過去分はすべて登録できて、追加で購入している分ももれなく登録できていて、たいへん満足しています。

andpad
建築施工管理者向けアプリANDPADを開発、運営するスタートアップ
https://tech.andpad.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした