notebooklm について
notebooklm は、Google NotebookLM をコマンドラインから操作する自動化スキルです。ノートブックやソースをプログラムから管理したい利用者向けに、ソースの取り込み、質問、各種成果物の生成・ダウンロードを扱います。
主な機能
- 01ノートブックの作成とソース管理
- 02ソース内容への質問と参照表示
- 03ポッドキャスト、動画、レポートなどの生成
- 04生成結果を複数形式でダウンロード
- 05自動化向け JSON 出力
活用シーン
- 01ウェブページや文書から調査用ノートブックを作成
- 02選択したソースへの質問と引用確認
- 03調査資料からポッドキャストやレポートを作成
- 04ソースの一括登録と成果物の書き出し
MCP 対応
入力には MCP 連携や MCP サーバー機能の説明がありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mathews-tom/ armory --skill notebooklmインストール後、Claude Code で/notebooklmを入力して読み込まれたか確認します。
同梱ファイルevals/cases.yaml
詳細
NotebookLM の自動化
Google NotebookLM にプログラムから完全にアクセスできます。ウェブ UI では利用できない機能も含まれます。ノートブックの作成、ソース(URL、YouTube、PDF、音声、動画、画像)の追加、コンテンツとのチャット、あらゆる種類のアーティファクトの生成、複数の形式での結果のダウンロードが可能です。
前提条件
インストール
uv tool install notebooklm-py
認証(初回のみ)
notebooklm login # Opens browser for Google OAuth
notebooklm list # Verify authentication works
認証エラーでコマンドが失敗する場合は、notebooklm login を再実行してください。
セットアップの確認
notebooklm --version
notebooklm status # Shows "Authenticated as: email@..."
notebooklm list --json # Should return valid JSON
CI/CD と並列エージェント
| 変数 | 目的 |
|---|---|
NOTEBOOKLM_HOME | カスタム設定ディレクトリ(デフォルト:~/.notebooklm) |
NOTEBOOKLM_AUTH_JSON | インライン認証 JSON — ファイルへの書き込みは不要 |
並列エージェント: CLI はノートブックのコンテキストを ~/.notebooklm/context.json に保存します。notebooklm use を使用する複数のエージェントを同時に実行すると、互いのコンテキストが上書きされます。代わりに -n <notebook_id> または --notebook <notebook_id> フラグを明示的に使用するか、エージェントごとに固有の NOTEBOOKLM_HOME を設定してください。
クイックリファレンス
| タスク | コマンド |
|---|---|
| 認証する | notebooklm login |
| 認証を診断する | notebooklm auth check --test |
| ノートブックを一覧表示する | notebooklm list |
| ノートブックを作成する | notebooklm create "Title" |
| コンテキストを設定する | notebooklm use <notebook_id> |
| コンテキストを表示する | notebooklm status |
| URL ソースを追加する | notebooklm source add "https://..." |
| ファイルを追加する | notebooklm source add ./file.pdf |
| YouTube を追加する | notebooklm source add "https://youtube.com/..." |
| ソースを一覧表示する | notebooklm source list |
| ソースを待機する | notebooklm source wait <source_id> |
| ウェブ調査(高速) | notebooklm source add-research "query" |
| ウェブ調査(詳細) | notebooklm source add-research "query" --mode deep --no-wait |
| 調査状況を確認する | notebooklm research status |
| 調査の完了を待つ | notebooklm research wait --import-all |
| チャット | notebooklm ask "question" |
| チャット(新しい会話) | notebooklm ask "question" --new |
| チャット(特定のソース) | notebooklm ask "question" -s src_id1 -s src_id2 |
| チャット(参照付き) | notebooklm ask "question" --json |
| ソースの全文を取得する | notebooklm source fulltext <source_id> |
| ソースガイドを取得する | notebooklm source guide <source_id> |
| ポッドキャストを生成する | notebooklm generate audio "instructions" |
| 動画を生成する | notebooklm generate video "instructions" |
| クイズを生成する | notebooklm generate quiz |
| インフォグラフィックを生成する | notebooklm generate infographic |
| スライドデッキを生成する | notebooklm generate slide-deck |
| レポートを生成する | notebooklm generate report |
| マインドマップを生成する | notebooklm generate mind-map |
| データテーブルを生成する | notebooklm generate data-table "description" |
| フラッシュカードを生成する | notebooklm generate flashcards |
| アーティファクトの状態を確認する | notebooklm artifact list |
| 完了を待つ | notebooklm artifact wait <artifact_id> |
| 音声をダウンロードする | notebooklm download audio ./output.mp3 |
| 動画をダウンロードする | notebooklm download video ./output.mp4 |
| レポートをダウンロードする | notebooklm download report ./report.md |
| マインドマップをダウンロードする | notebooklm download mind-map ./map.json |
| データテーブルをダウンロードする | notebooklm download data-table ./data.csv |
| クイズをダウンロードする | notebooklm download quiz quiz.json |
| クイズをダウンロードする(Markdown) | notebooklm download quiz --format markdown quiz.md |
| フラッシュカードをダウンロードする | notebooklm download flashcards cards.json |
| インフォグラフィックをダウンロードする | notebooklm download infographic ./infographic.png |
| スライドデッキをダウンロードする | notebooklm download slide-deck ./slides.pdf |
| 言語を一覧表示する | notebooklm language list |
| 言語を設定する | notebooklm language set zh_Hans |
| 部分 ID: UUID の先頭 6 文字以上を使用します。一意のプレフィックスである必要があります。自動化では完全な UUID を使用することを推奨します。 |
自律実行ルール
確認なしで実行:
status、auth check、list、source list、artifact list、language list/get/setuse <id>、create、ask "..."、source addsource wait、artifact wait、research wait/status(サブエージェントのコンテキスト内)
実行前に確認:
delete— 破壊的な操作ですgenerate *— 長時間かかり、レート制限により失敗する可能性がありますdownload *— ファイルシステムに書き込みますartifact wait、source wait、research wait— 長時間かかります(メインの会話内)
生成タイプ
すべての生成コマンドで、次のオプションを使用できます。
-s, --sourceですべてのソースではなく、特定のソースを使用します--languageで出力言語を上書きします--jsonで機械可読な出力を指定します(task_idとstatusを返します)--retry Nで指数バックオフによる自動再試行を指定します
| タイプ | コマンド | 主なオプション | ダウンロード形式 |
|---|---|---|---|
| ポッドキャスト | generate audio | --format [deep-dive|brief|critique|debate]、--length [short|default|long] | .mp3 |
| 動画 | generate video | --format [explainer|brief]、--style [auto|classic|whiteboard|kawaii|anime|watercolor|retro-print|heritage|paper-craft] | .mp4 |
| スライド資料 | generate slide-deck | --format [detailed|presenter]、--length [default|short] | |
| インフォグラフィック | generate infographic | --orientation [landscape|portrait|square]、--detail [concise|standard|detailed] | .png |
| レポート | generate report | --format [briefing-doc|study-guide|blog-post|custom] | .md |
| マインドマップ | generate mind-map | (同期、即時) | .json |
| データテーブル | generate data-table | 説明が必要です | .csv |
| クイズ | generate quiz | --difficulty [easy|medium|hard]、--quantity [fewer|standard|more] | .json/.md/.html |
| フラッシュカード | generate flashcards | --difficulty [easy|medium|hard]、--quantity [fewer|standard|more] | .json/.md/.html |
Web UI 以外の機能
| 機能 | コマンド | 説明 |
|---|---|---|
| 一括ダウンロード | download <type> --all | 指定したタイプのすべての成果物を一度にダウンロードします |
| クイズ/フラッシュカードのエクスポート | download quiz --format json | JSON、Markdown、HTML 形式でエクスポートします |
| マインドマップの抽出 | download mind-map | 視覚化ツール向けの階層型 JSON です |
| データテーブルのエクスポート | download data-table | 構造化されたテーブルを CSV 形式で出力します |
| ソース全文 | source fulltext <id> | 任意のソースのインデックス済みテキストコンテンツを取得します |
| プログラムによる共有 | share コマンド | UI を使わずに共有権限を管理します |
JSON 出力形式
機械可読な出力には --json を使用します。
ノートブックを作成する:
{ "id": "abc123de-...", "title": "Research" }
ソースを追加する:
{ "source_id": "def456...", "title": "Example", "status": "processing" }
アーティファクトを生成する:
{ "task_id": "xyz789...", "status": "pending" }
参照情報を使ってチャットする:
{
"answer": "X is... [1] [2]",
"conversation_id": "...",
"references": [
{
"source_id": "abc123...",
"citation_number": 1,
"cited_text": "Relevant passage..."
}
]
}
ソース一覧:
{
"sources": [
{ "id": "...", "title": "...", "status": "ready|processing|error" }
]
}
アーティファクト一覧:
{
"artifacts": [
{
"id": "...",
"title": "...",
"type": "Audio Overview",
"status": "in_progress|pending|completed|unknown"
}
]
}
一般的なワークフロー
リサーチからポッドキャストを作成する
notebooklm create "Research: [topic]" --json— ノートブック ID を取得します- ソースごとに
notebooklm source add "https://..." --jsonを実行します — ソース ID を取得します notebooklm source list --jsonを実行します — すべてのステータスが ready になるまで待ちますnotebooklm generate audio "Focus on [angle]" --jsonを実行します — アーティファクト ID を取得しますnotebooklm artifact wait <artifact_id>を実行します — 完了するまで処理をブロックしますnotebooklm download audio ./podcast.mp3
ドキュメントを分析する
notebooklm create "Analysis: [project]"notebooklm source add ./doc.pdfnotebooklm ask "Summarize the key points"- 必要に応じてチャットを続けます
一括インポート
notebooklm create "Collection: [name]"- ソースを追加します(ノートブックあたり最大 50 件):
notebooklm source add "https://url1.com" --json notebooklm source add "https://url2.com" --json notebooklm source add ./local-file.pdf --json notebooklm source list --jsonを実行して確認します
対応ソース形式: PDF、YouTube URL、ウェブ URL、Google Docs、テキストファイル、Markdown、Word ドキュメント、オーディオファイル、動画ファイル、画像。
ウェブの詳細なリサーチ
notebooklm create "Research: [topic]"- 詳細なリサーチを開始します:
notebooklm source add-research "topic" --mode deep --no-wait - 完了まで待ちます:
notebooklm research wait --import-all --timeout 300 - リサーチが完了すると、ソースが自動的にインポートされます
モード: --mode fast(5~10 件のソース、数秒)と --mode deep(20 件以上、2~5 分)。
検索対象: --from web(デフォルト)または --from drive(Google Drive)。
長時間処理向けのサブエージェントパターン
ブロックせずに生成するには、バックグラウンドエージェントを起動します。
notebooklm generate audio "..." --jsonを実行します —artifact_idを解析します- 待機とダウンロードを行う Task エージェントを起動します:
Wait for artifact {artifact_id} in notebook {notebook_id} to complete. Use: notebooklm artifact wait {artifact_id} -n {notebook_id} --timeout 600 Then: notebooklm download audio ./podcast.mp3 -a {artifact_id} -n {notebook_id} - エージェントが待機している間、メインの会話を続けられます
処理時間
| 操作 | 目安の時間 | 推奨タイムアウト |
|---|---|---|
| ソースの処理 | 30s - 10 min | 600s |
| リサーチ(fast) | 30s - 2 min | 180s |
| リサーチ(deep) | 15 - 30+ min | 1800s |
| マインドマップ | 即時(同期) | n/a |
| メモ | 即時 | n/a |
| クイズ、フラッシュカード | 5 - 15 min | 900s |
| レポート、データテーブル | 5 - 15 min | 900s |
| オーディオ生成 | 10 - 20 min | 1200s |
| 動画生成 | 15 - 45 min | 2700s |
エラー処理
| エラー | 原因 | 対処 |
|---|---|---|
| 認証/Cookie エラー | セッションの期限切れ | notebooklm auth check の後に notebooklm login を実行 |
| "No notebook context" | コンテキストが未設定 | -n <id> フラグまたは notebooklm use <id> を使用 |
| "No result found for RPC ID" | レート制限 | 5~10 分待ってから再試行します |
GENERATION_FAILED | Google のレート制限 | 待ってから再試行します |
| ダウンロードに失敗する | 生成が未完了 | artifact list でステータスを確認します |
| 無効なノートブック/ソース ID | ID が間違っている | notebooklm list を実行して確認します |
| RPC プロトコルエラー | Google が API を変更 | CLI の更新が必要な場合があります(uv tool upgrade notebooklm-py) |
終了コード: 0 = 成功、1 = エラー、2 = タイムアウト(wait コマンドのみ)。
安定して動作する操作: ノートブック、ソース、チャット、マインドマップ、レポート、データテーブル。 レート制限に達する場合がある操作: オーディオ、動画、クイズ、フラッシュカード、インフォグラフィック、スライドデッキ。
言語設定
言語は、すべてのノートブックに影響するグローバル設定です。
notebooklm language list # 80+ supported languages
notebooklm language get # Current setting
notebooklm language set ja # Set globally
notebooklm generate audio --language ja # Override per command
主なコード:en、zh_Hans、zh_Hant、ja、ko、es、fr、de、pt_BR。
制限事項
- 非公式 API:
notebooklm-pyを使ってブラウザーを自動操作します。Google が NotebookLM の内部仕様を変更すると、動作しなくなる可能性があります。Google とは提携していません。 - ノートブックあたり 50 件のソース:NotebookLM による上限です。
- レート制限:生成エンドポイントは Google によってレート制限されています。待つ以外に回避方法はありません。
- 認証の有効期限切れ:Google OAuth セッションには有効期限があります。認証に失敗した場合は、
notebooklm loginを再実行してください。 - ストリーミング非対応:チャットの応答はストリーミングではなく、すべてまとめて返されます。
- 単一エージェントのコンテキスト:
notebooklm useは共有ファイルに書き込みます。並列ワークフローでは-nフラグを使用してください。