はじめに
みなさんはGoogle の NotebookLM を使っていますか?
ドキュメントや記事・YouTubeのURLをアップロードすると、その内容をもとに AI が質問に答えてくれたり、レポート資料を作ってくれたり、「ポッドキャスト」を自動生成してくれたりする、GoogleのAIリサーチ・情報整理ツールです。
AI リサーチツール&思考パートナー - Google NotebookLM
ブラウザ上でポチポチ操作するのも便利なのですが、「これ、API から叩けたらいいのに」と思っていたら、非公式の Python ライブラリ notebooklm-py を見つけたので試してみました。
本記事では、CLI からコマンドを数行叩くだけで、PDF や URL をポッドキャスト化する方法をハンズオン形式で紹介します。
注意事項
notebooklm-py は Google 非公認のコミュニティプロジェクトです。内部 API を利用しているため、Google 側の変更で突然動かなくなる可能性があります。プロトタイプや個人利用にとどめることをおすすめします。
今回やること
今回やることの全体像がこちらです。
記事 / YouTube 動画
↓ notebooklm-py (CLI)
NotebookLM に自動登録
↓
Audio Overview(ポッドキャスト)を生成
↓
MP3 としてダウンロード
セットアップから、ポッドキャスト生成・DLまでをハンズオン形式で紹介します。
お題は、今流行りのオープンソースの自律型AIエージェント OpenClawに関するポッドキャストを作ろうと思います。
1. 環境構築
1-1. 前提条件
- Python: ver 3.10以上
- パッケージ管理ツール: uv
- OS: macCS / Linux / Windows いずれも可
- Googleアカウント: NotebookLMにログインできるもの
1-2. uvのインストール
uvはRust製の高速なPythonパッケージ&プロジェクト管理ツールです。
pip / venve / pyenv などを1つのツールに統合してくれます。
uvのインストールがまだの方は、下記手順でインストールをお願いします。
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# macOS (Homebrew)
brew install uv
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
インストール確認:
uv --version
1-3. プロジェクトを作成する
今回のハンズオン用に、専用のプロジェクトと仮想環境を作ります。
こうすることで、グローバル環境を汚さず、他のプロジェクトにも一切影響しません。
# プロジェクトディレクトリを作成して移動
mkdir notebooklm-podcast-lab
cd notebooklm-podcast-lab
# uv でプロジェクトを初期化(pyproject.toml が生成される)
uv init
uv initを実行すると、以下のようなファイルが自動生成されます
notebooklm-podcast-lab/
├── .python-version # Python バージョン指定
├── pyproject.toml # プロジェクトの依存管理
├── README.md
└── main.py # サンプルスクリプト
1-4. notebooklm-pyをインストールする
# notebooklm-py(ブラウザログイン機能付き)を依存に追加
uv add "notebooklm-py[browser]"
uv addを実行すると、以下が自動的に行われます。
- .venv/ に仮想環境を作成(初回のみ)
- pyproject.toml の [project.dependencies] に追記
- uv.lock にロックファイルを生成
- パッケージを .venv/ 内にインストール
1-5. Playwrightのセットアップ
ブラウザ自動操作用の Chromium をインストールします。
uv run playwright install chromium
1-6. 動作確認
uv run notebooklm --help
コマンド一覧が表示されれば準備完了です。
uv run とは?
uv run <コマンド> は、プロジェクトの仮想環境の中でコマンドを実行してくれます。
source .venv/bin/activate して手動で有効化する必要がないので便利です。
以降のコマンドもすべて uv run 経由で実行します。
2. Googleアカウントでログイン
uv run notebooklm login
出力:
Opening browser for Google login...
Using persistent profile: /Users/matsumotoikuya/.notebooklm/browser_profile
Instructions:
1. Complete the Google login in the browser window
2. Wait until you see the NotebookLM homepage
3. Press ENTER here to save and close
[Press ENTER when logged in]
実行すると Chromium ブラウザが自動で立ち上がります。普段どおり Google アカウントでログインしてください。
ログイン成功後、ターミナルに戻り「Enter」キーを押すと、自動でブラウザが閉じます。
ログインが成功すると、セッション情報が ~/.notebooklm/storage_state.json に保存されます。
この認証は 1〜2 週間 ほど有効で、期限が切れたら再度 uv run notebooklm login を実行するだけです。
ヘッドレス環境(SSH 先のサーバーなど)の場合
ブラウザが開けない環境では、ローカル PC でログインして生成された ~/.notebooklm/storage_state.json をサーバーにコピーする方法が使えます。
3. 出力言語を日本語に設定する
ログインが完了したら、最初に出力言語を日本語に設定しましょう。
この設定を忘れると、ポッドキャストが英語で生成されてしまいます。
uv run notebooklm language set ja
NotebookLM はデフォルトで Google アカウントの言語設定を参照します。
アカウントの言語が英語になっている場合、音声やチャットの応答もすべて英語になります。
上記コマンドで明示的に日本語を指定しておけば確実です。
現在の設定を確認したい場合や、対応言語の一覧を見たい場合は以下が使えます。
# 現在の出力言語を確認
uv run notebooklm language get
# 対応言語コードの一覧を表示
uv run notebooklm language list
これはアカウント全体に影響するグローバル設定です。
ノートブック単位ではなく、そのアカウントのすべてのノートブックの出力言語が変更されます。
英語に戻したい場合は uv run notebooklm language set en を実行してください。
CLI を使わずに設定する方法
ブラウザで NotebookLM を開き、右上の Settings > Output Language から「日本語」を選択しても同じ効果があります。
4. ノートブックを作成する
NotebookLMを使ったことがある方はわかると思いますが、NotebookLMでは、「ノートブック」がプロジェクト単位の入れ物です。
# 「Podcast実験」という名前でノートブックを作成
uv run notebooklm create "Podcast実験"
出力例:
Created notebook: cc8a6c9f-528e-4bb4-a963-452ec765665d - Podcast実験
表示されたノートブックのIDをコピーして、操作対象として設定します。
以降のコマンドは、このノートブックに対して実行されます。
uv run notebooklm use cc8a6c9f-528e-4bb4-a963-452ec765665d
5. ソース(資料)を追加する
ポッドキャストのソース元となる資料を追加します。
今回は、OpenClawに関する記事や、YouTubeでのエンジニアの方の紹介動画などを使ってみます。
# 公式ブログを追加
uv run notebooklm source add "https://openclaw.ai/blog/introducing-openclaw"
Added source: 377d1e8b-fa67-4456-98f6-086d2faede23
# noteの紹介記事を追加
uv run notebooklm source add "https://note.com/ai__worker/n/n3ba744cde4a0"
Added source: 1cfb6ea2-a470-4d83-9467-7e8956d413cc
# YouTubeの紹介動画を追加
uv run notebooklm source add "https://www.youtube.com/watch?v=IUxpoZYnEL0"
Added source: 46b4d8ed-4069-424d-853e-c4e014468129
ソースの処理状況は下記コマンドで確認できます。
uv run notebooklm source list
追加直後はステータスが processing になっています。ready に変わるまで待ちましょう(通常 30 秒〜数分)。
ソースが ready でないと、次のステップに進めません。
6. チャットで中身を確認
ポッドキャスト生成に移る前に、ソースの中身を確認してみます。
下記コマンドで、チャットで質問をすることができます。
uv run notebooklm ask "OpenClawとは何か、従来のAIエージェントとの違いを教えて"
出力:
Answer:
**OpenClaw(オープンクロー)**は、ユーザーのローカルPCやサーバー上で動作し、日常的なタスクを自律的に実行する**オープンソースのAIパーソナルアシスタント**です [1,
2]。PSPDFKitの創業者であるPeter Steinberger氏によって開発され、GitHubで公開後わずか数日で10万スターを獲得するなど、2026年時点で最も注目されているAIエージェントの一つです [3, 4]。
従来のAIエージェント(ChatGPTやClaudeなどのチャット型AI)との主な違いは、以下の4点に集約されます。
### 1. 「アドバイス」ではなく「実働」する
従来のAIは、ブラウザ内でのテキスト生成や質問への回答を得意とする「相談相手」であり、PC内の操作は指示されたユーザー自身が行う必要がありました [2]。
対してOpenClawは、**ユーザーのPC上で実際にファイルを操作したり、アプリケーションを起動したりする「実務担当者」**です [2,
5]。例えば、「デスクトップのファイルを整理して」と頼めば、アドバイスを返すのではなく、実際にフォルダを作成しファイルを移動させます [5]。
### 2. ローカル環境での動作と広範な権限
多くのAIアシスタントがSaaS(提供元のサーバー)上で動作するのに対し、OpenClawは**ユーザー自身のマシン(PC、ホームラボ、VPSなど)で動作**します [1]。
* **フルアクセス権限:** マシンへの完全なシェルアクセス権を持ち、スクリプトの実行やファイルシステムの操作が可能です [6]。
* **ブラウザ制御:** ローカルのブラウザを操作できるため、ユーザーがログイン済みのSNSやWebサービスなどのセッションをそのまま引き継いで操作できます [6]。
### 3. 「能動的」な自律動作(ハートビート機能)
従来のAIはユーザーが問いかけない限り動かない「受動的」な存在ですが、OpenClawは**「ハートビート」機能により能動的に行動**します [7, 8]。
* 定期的にメールやニュースをチェックし、重要な連絡があれば通知する、といった自律的な動作が可能です [7]。
* 過去のやり取りを記憶し続ける**「永続メモリ」**を備えており、使い込むほどユーザーの好みにパーナライズされます [7, 9]。
### 4. マルチチャネル対応と拡張性
特定のアプリに縛られず、日常的に使うメッセージングアプリから指示を出せる点も大きな特徴です。
* **多様なUI:** WhatsApp、Discord、Slack、LINE、Telegramなど10以上のプラットフォームと連携でき、外出先からスマホで自宅のPCに指示を出すことが可能です [1, 5, 10]。
* **スキル拡張:** 「スキル」と呼ばれる3,000以上のモジュールがあり、Spotifyの操作やPDF処理、カレンダー連携など、機能を自由に追加できます [7]。
* **モデルの自由度:** Claude、GPT、Geminiといった商用モデルから、ローカルLLMまで、用途に合わせてAIモデルを切り替えられます [7, 11]。
### 留意すべき点
OpenClawはその強力な権限ゆえに、**セキュリティリスクも極めて高い**とされています [12,
13]。悪意のあるメールを読み取った際に不正なコマンドを実行してしまう「間接的プロンプトインジェクション」や、過去には深刻な脆弱性も報告されています [13,
14]。そのため、メインのPCではなく専用の検証環境(Mac Miniの専用機化など)での利用や、適切なサンドボックス設定が推奨されています [11, 15, 16]。
ソースに含まれる情報をさらに深く理解するために、**フラッシュカード**や**クイズ**を作成して学習をサポートすることも可能です。また、OpenClawの機能や歴史をまとめた**レポート**の作成
も承りますが、いかがでしょうか?
7. ポッドキャストを生成する
いよいよ本題のポッドキャストを生成します。
下記のコマンドでポッドキャストの生成を開始できます。
uv run notebooklm generate audio --wait
--wait フラグをつけると、生成が完了するまでターミナルで待機してくれます。
私が試した際、生成には10分ほどの時間がかかりました。
Audio Overview(ポッドキャスト)の生成は非同期処理で、バックグラウンドで AI がスクリプトを作成し、音声を合成しています。
また、5分を超えるとタイムアウトし、下記のようなエラーで待機が終わってしまうことがありますが、非同期処理は動いているので、この後紹介するコマンドで処理ステータスを確認しましょう。
Generating audio... Task: 32da254d-f78f-4e8f-9233-5a59d107a676
Error: Task 32da254d-f78f-4e8f-9233-5a59d107a676 timed out after 300.0s
無料ユーザーは1日3回までの制限があります。
Audio Overview の生成回数には上限があり、無料プランでは 1日あたり3 回に制限されています。より多くの生成が必要な場合は NotebookLM Plus への加入を検討してください。
カスタム指示をつける
生成時に指示を追加して、ポッドキャストの雰囲気をカスタマイズすることもできます。
uv run notebooklm generate audio "OpenClawを知らない人にもわかるよう、わかりやすく説明して" --wait
--wait を付けない場合
# タスクIDだけ受け取って、あとで確認する方法
uv run notebooklm generate audio
# 生成状況を確認
uv run notebooklm artifact list
# 特定のタスクIDの処理状況を確認
uv run notebooklm artifact get fa8f5a4b-8d50-4f97-ab08-2c226db121eb
# 完了を待つ(あとから待機したい場合)
uv run notebooklm artifact wait <task_id>
8. 生成したポッドキャストをダウンロードする
生成が完了したら、MP3 ファイルとしてダウンロードします。
uv run notebooklm download audio ./podcast.mp3
これで手元に podcast.mp3 が保存されます。再生してみてください!
2人のAIホストが、OpenClawついて掛け合い形式で議論する、自然な音声が聞けるはずです。
実際に生成された音声ファイルをGoogleドライブにアップロードしました。気になる方は聞いてみてください。
ポッドキャスト以外に生成できるもの
ポッドキャスト(Audio Overview)以外にも、様々なコンテンツを生成できます。
-
generate audio: ポッドキャスト MP3 -
generate video: 解説動画 MP4 -
generate quiz: クイズ JSON / Markdown -
generate flashcards: フラッシュカード JSON / Markdown -
generate slide-deck: スライドPDF -
generate mind-map: マインドマップJSON / PNG -
generate infographic: インフォグラフィックPNG -
generate data-table: データテーブルCSV
一連のコマンドまとめ
# === セットアップ(初回のみ) ===
# プロジェクト作成
mkdir notebooklm-podcast-lab && cd notebooklm-podcast-lab
uv init
uv add "notebooklm-py[browser]"
uv run playwright install chromium
# Google ログイン(ブラウザが開く)
uv run notebooklm login
# 出力言語を日本語に設定(英語で生成されるのを防ぐ)
uv run notebooklm language set ja
# === ポッドキャスト化 ===
uv run notebooklm create "Podcast実験"
uv run notebooklm use <表示されたノートブックID>
uv run notebooklm source add "https://openclaw.ai/blog/introducing-openclaw"
uv run notebooklm source add "https://note.com/ai__worker/n/n3ba744cde4a0"
uv run notebooklm source add "https://www.youtube.com/watch?v=IUxpoZYnEL0"
uv run notebooklm source list # READY になるまで待つ
uv run notebooklm generate audio --wait # 10〜20分待ち
uv run notebooklm download audio ./podcast.mp3 # 完成!🎉
Tips
別のGoogleアカウントに切り替えたい
login を再実行するだけでは、ブラウザプロファイルに前のセッションが残っていて同じアカウントでログインされます。
認証情報を削除してからやり直してください。
rm -rf ~/.notebooklm/storage_state.json ~/.notebooklm/browser_profile
uv run notebooklm login
おわりに
notebooklm-py を使うと、コマンド数行で PDF や URL をポッドキャストに変換できます。手動でブラウザを操作する必要がなくなるので、たとえば以下のようなユースケースが考えられます。
- 論文の定期キャッチアップ: arXiv の新着論文を自動でポッドキャスト化して通勤中に聴く
- 社内ナレッジの音声化: 社内ドキュメントをポッドキャストにして、新メンバーのオンボーディングに活用
- 学習コンテンツの量産: 教材 PDF からクイズやフラッシュカードを自動生成
また、今回は uv でプロジェクトごとに仮想環境を閉じた構成にしたので、不要になったらディレクトリごと消すだけです。気軽に実験してみてください。
ただし、繰り返しになりますが非公式 API を使っている点には十分注意してください。Google 側の変更で突然動かなくなる可能性があります。あくまで実験的に楽しむスタンスで使うのがよいでしょう。
参考リンク
notebooklm-py (GitHub)
Google NotebookLM
uv 公式ドキュメント
OpenClaw (GitHub)
Introducing OpenClaw(公式ブログ)
