mcpField
N
notebooklm

notebooklm

github.com/julianobarbosa生産性1468 回インストール3 日前に更新
リポジトリ

notebooklm について

notebooklm は、Google NotebookLM を自動化する非公式の Python コマンドラインツールと API です。ノートブックやソースの管理、質問応答、コンテンツ生成、成果物のダウンロードをプログラムから行えます。

主な機能

  1. 01ノートブックとソースの管理
  2. 02ソースへの質問と要約
  3. 03音声、動画、スライド、レポートの生成
  4. 04クイズ、フラッシュカード、ビジュアルの生成
  5. 05成果物のダウンロードと共有管理

活用シーン

  1. 01研究資料から音声概要を作成
  2. 02文書から学習教材を作成
  3. 03文献レビューを生成してダウンロード
  4. 04Python で NotebookLM のタスクを自動化

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/julianobarbosa/claude-code-skills --skill notebooklm

インストール後、Claude Code で/notebooklmを入力して読み込まれたか確認します。

詳細

NotebookLM 自動化

Google NotebookLM 用の非公式 Python CLI および API(notebooklm-py)です。ウェブ UI では利用できない機能を含め、プログラムから全面的にアクセスできます。

前提条件

  • Python 3.10+
  • NotebookLM を利用できる Google アカウント
  • Playwright を使った初回のブラウザーログイン

インストール

# Install with browser login support
pip install "notebooklm-py[browser]"
playwright install chromium

# Linux only: also run
playwright install-deps chromium

認証

初回のセットアップでは、ブラウザーでのログインが必要です。

notebooklm login
# Opens Chromium → sign into Google → press Enter when done
# Session saved to ~/.notebooklm/storage_state.json

認証状態を確認します:notebooklm auth check --test

ヘッドレス環境や CI 環境では、ローカルマシンから storage_state.json をコピーするか、環境変数 NOTEBOOKLM_AUTH_JSON を設定してください。

環境変数

変数説明デフォルト
NOTEBOOKLM_HOME設定ディレクトリ~/.notebooklm
NOTEBOOKLM_AUTH_JSONインライン認証 JSON(CI/CD)—
NOTEBOOKLM_LOG_LEVELDEBUG/INFO/WARNING/ERRORWARNING
NOTEBOOKLM_DEBUG_RPCRPC デバッグを有効化(1)false

基本的なワークフロー

一般的なワークフローは、ノートブックを作成 → ソースを追加 → コンテンツを生成 → ダウンロードです。

1. ノートブック管理
notebooklm create "My Research"       # Create notebook
notebooklm list                        # List all notebooks
notebooklm use <id>                    # Set active notebook (supports partial ID)
notebooklm summary                     # AI summary of current notebook
notebooklm rename "New Title"          # Rename
notebooklm delete <id>                 # Delete
2. ソースの追加

ソースの種類は自動的に判別されます。

notebooklm source add "https://example.com/article"          # URL
notebooklm source add "https://youtube.com/watch?v=..."       # YouTube
notebooklm source add ./document.pdf                           # File (PDF, MD, DOCX, TXT, audio, video, images)
notebooklm source add-drive <drive-file-id> "Title"           # Google Drive
notebooklm source add-research "climate policy" --mode deep --import-all  # Research agent

その他のソース関連コマンド:

notebooklm source list                # List sources
notebooklm source fulltext <id>       # Get source full text
notebooklm source guide <id>          # AI-generated source guide
notebooklm source rename <id> "New"   # Rename
notebooklm source refresh <id>        # Re-fetch URL source
notebooklm source delete <id>         # Delete
3. チャット/Q&A
notebooklm ask "What are the key findings?" -s <source_id>
notebooklm ask "Compare sources" --json --save-as-note --note-title "Comparison"
notebooklm history                     # View chat history
notebooklm history --save              # Save history as note
4. コンテンツの生成

すべての生成コマンドで、次のオプションを使用できます:-s/--source(繰り返し指定可能。特定のソースに限定)、--json、--language、--retry N。

ほとんどのコマンドは非同期です。完了するまで待機するには、--wait を使用してください。

音声概要(ポッドキャスト)
notebooklm generate audio "Focus on practical applications" \
  --format deep-dive \    # deep-dive | brief | critique | debate
  --length long \         # short | default | long
  --wait
動画概要
notebooklm generate video "Explain the architecture" \
  --format explainer \    # explainer | brief
  --style whiteboard \    # auto | classic | whiteboard | kawaii | anime | watercolor | retro-print | heritage | paper-craft
  --wait
スライドデッキ
notebooklm generate slide-deck "Executive summary" \
  --format detailed \     # detailed | presenter
  --length default \      # default | short
  --wait

# Revise a specific slide
notebooklm generate revise-slide "Add more data points" \
  -a <artifact_id> --slide 2 --wait    # slide is zero-based
学習教材
# Quizzes
notebooklm generate quiz --difficulty hard --quantity more --wait

# Flashcards
notebooklm generate flashcards --difficulty medium --wait
ビジュアルとデータ
# Infographic
notebooklm generate infographic \
  --orientation landscape \   # landscape | portrait | square
  --detail detailed \         # concise | standard | detailed
  --wait

# Mind map (synchronous, no --wait needed)
notebooklm generate mind-map

# Data table
notebooklm generate data-table "Compare metrics across studies" --wait
レポート
notebooklm generate report "Security analysis" \
  --format briefing-doc \     # briefing-doc | study-guide | blog-post | custom
  --append "Include threat modeling" \
  --wait
5. コンテンツのダウンロード

すべてのダウンロードコマンドで、次のオプションを使用できます:-a/--artifact、--all、--latest、--earliest、--name、--force、--no-clobber、--dry-run、--json。

notebooklm download audio ./podcast.mp3
notebooklm download video ./overview.mp4
notebooklm download slide-deck ./slides.pptx --format pptx   # or pdf (default)
notebooklm download infographic ./info.png
notebooklm download report ./report.md
notebooklm download mind-map ./map.json
notebooklm download data-table ./data.csv
notebooklm download quiz --format json ./quiz.json       # json | markdown | html
notebooklm download flashcards --format markdown ./cards.md
6. 共有
notebooklm share status
notebooklm share public --enable           # Create public link
notebooklm share view-level full           # full | chat
notebooklm share add [email protected] --permission editor -m "Check this out"
notebooklm share remove [email protected]
7. 言語
notebooklm language list                   # 80+ languages
notebooklm language get
notebooklm language set ja                 # Set to Japanese

Python API

プログラムによるワークフローに対応した、完全非同期の API です。

import asyncio
from notebooklm import NotebookLMClient

async def main():
    async with await NotebookLMClient.from_storage() as client:
        # Create notebook and add sources
        nb = await client.notebooks.create("Research")
        await client.sources.add_url(nb.id, "https://example.com")

        # Generate audio overview
        artifact = await client.artifacts.generate_audio(
            nb.id, description="Deep dive on findings",
            format=AudioFormat.DEEP_DIVE, length=AudioLength.LONG
        )

        # Wait and download
        await client.artifacts.wait(nb.id, artifact.id)
        await client.artifacts.download_audio(nb.id, artifact.id, "output.mp3")

        # Chat with sources
        result = await client.chat.ask(nb.id, "Summarize key points")
        print(result.answer)

asyncio.run(main())

API モジュール: client.notebooks、client.sources、client.artifacts、client.chat、client.research、client.notes、client.settings、client.sharing

よくあるレシピ

リサーチからポッドキャストを作成するパイプライン
notebooklm create "Climate Research"
notebooklm use <id>
notebooklm source add "https://en.wikipedia.org/wiki/Climate_change"
notebooklm source add-research "climate change solutions 2025" --mode deep --import-all
notebooklm generate audio "Focus on actionable solutions" --format debate --length long --wait
notebooklm download audio ./climate-debate.mp3
ドキュメント分析から学習教材を作成
notebooklm create "Exam Prep"
notebooklm use <id>
notebooklm source add ./textbook.pdf
notebooklm generate quiz --difficulty hard --quantity more --wait
notebooklm generate flashcards --wait
notebooklm download quiz --format markdown ./quiz.md
notebooklm download flashcards --format json ./cards.json
一括インポートと完全なレポートの作成
notebooklm create "Literature Review"
notebooklm use <id>
for f in ./papers/*.pdf; do notebooklm source add "$f"; done
notebooklm generate report "Systematic review" --format briefing-doc --wait
notebooklm download report ./review.md

トラブルシューティング

問題解決方法
認証の期限切れnotebooklm login をもう一度実行します
playwright が見つからないpip install "notebooklm-py[browser]" の後に playwright install chromium を実行します
生成が停止した保留中のソースには notebooklm source wait <id> を使用し、--retry フラグを確認します
部分 ID が一致しないノートブック ID の文字数を増やして指定します
API 呼び出しをデバッグするNOTEBOOKLM_LOG_LEVEL=DEBUG または NOTEBOOKLM_DEBUG_RPC=1 を設定します

注意点

  • 200MB を超えるソースのアップロードは、リクエストが 200 を返した後に何も通知されず失敗します — 後続の処理では、いつまでも「processing」と表示されます。アップロード前にファイルサイズを確認してください。
  • プロジェクトごとの音声/動画の同時生成にはレート制限があります — 2 つ目の同時生成は、一般的な「try again later」エラーで失敗します。生成ジョブは順番に実行してください。
  • gcloud の認証と notebooklm-account の認証は異なります — gcloud にログインしているユーザーが notebooklm を利用できるとは限りません。認証アカウントが異なる場合は、--account を明示的に指定してください。
  • アップロード時のソースの順序は、生成コンテンツの引用の優先順位に影響します — 順序を修正するために再アップロードすると、出力のスタイルが変わります。
  • Studio の種類によってタイムアウト時間が異なります — 音声は約 5 分、動画は約 15 分、スライドは約 3 分です。CLI のデフォルトである 60 秒では、時間のかかる種類の生成途中で処理が打ち切られます。

コメント