set setting reset

脂肪と糖にはたらくやつ

Notebook LM に Kindle 本を突っ込む

Notebook LM に本を突っ込むとポッドキャストを生成してくれる機能を愛用しています。
生成されたマインドマップを見ながらポッドキャストを聞き、深堀りしたい部分を実際に読んだり、他の記事などもソースに突っ込んで分析するなど読書体験が令和になりました。

o'reilly ebook は PDF もあるため、それを突っ込めばいいのですが、 Kindle 本はそうもいきません。
いくつか検索した結果、ソリューションとして、

  1. KIndle をスクショする
  2. スクショした画像を PDF 化する
  3. PDF を Notebook LM にアップロードする

という方式がよさそうです。
最近 NotebookLM が画像アップロード機能が実装されたようですが、1ノートブックに対して50ファイルが上限となると、厚い本はつらそうです。

forest.watch.impress.co.jp

というわけで今回は 2 までを自動化するプログラムを AntiGravity に実装してもらいました。

github.com

特筆すべき点があるとすると以下です。

  • 1ファイル200MBの制限があるため、PDFを分割する機能がある点
  • 本の右送り、左送りに対応している点

実際に作成された PDF を突っ込んで使ってみて、 OCR していなくてもかなり理解してくれていると実感できます。

以下 README.md です。

Kindle for PC to PDF Converter

WindowsKindle for PC の書籍をキャプチャして PDF に変換するツールです。

前提条件

  • Windows OS 上で実行する必要があります(WSL不可)。
  • Python がインストールされていること。

インストール

  1. このフォルダを Windows 上の適当な場所に配置します。
  2. 依存ライブラリをインストールします: powershell pip install pyautogui img2pdf Pillow も必要ですが img2pdf の依存で入るはずです。もしエラーが出たら pip install Pillow してください。

実行方法

  1. コマンドプロンプトまたは PowerShell でこのフォルダを開きます。

  2. スクリプトを実行します:

   python main.py --output my_book.pdf

ページ数を指定したい場合は --pages オプションを使います:

   python main.py --output my_book.pdf --pages 100

ページ送り方向を指定したい場合は --direction オプションを使います:

   # 左送り(右縦書きなど)
   python main.py --output my_book.pdf --direction rtl

   # 右送り(左横書きなど、デフォルト)
   python main.py --output my_book.pdf --direction ltr

PDFのサイズ上限を指定したい場合は --max-size オプションを使います(デフォルト: 180MB):

   python main.py --output my_book.pdf --max-size 50MB
  1. 画面の指示に従い、Enterキーを押します。

  2. 5秒以内Kindle for PC のウィンドウをアクティブにし、全画面表示 (F11) にしてください。

  3. 自動でページがめくられ、スクリーンショットが撮られます。

    • 停止したい場合は、このターミナルウィンドウに戻って Ctrl+C を押してください(またはマウスを画面左上に急激に動かすと緊急停止します)。
  4. 終了後、my_book.pdf が生成されます。