← ブログに戻る

14.6k Star!Python で Google NotebookLM を操作し、Claude Code に直接接続 — Web UI ではできないことを実現する OSS

  • notebooklm ai
  • notebooklm tutorial
  • notebooklm
  • notebooklm 公式

Google NotebookLM の Web アプリは気軽な利用には十分ですが、研究パイプライン、シェルスクリプト、AI エージェント連携が必要になると壁にぶつかります。多くの操作は UI のクリックが前提で、バッチ処理は非効率です。

GitHub の notebooklm-py(2026 年 5 月時点で 14.6k+ Star)はそのギャップを埋めます — NotebookLM 上の Python レイヤーで、Claude Code などのエージェントにも接続できます。

Python で NotebookLM を操作

NotebookLM Web UI の限界

NotebookLM では PDF、URL、YouTube リンクをアップロードし、チャットやポッドキャスト、スライド、クイズなどを生成できます。notebooklm tutorial を検索すれば入門記事は豊富ですが、公式 UI には明確な制約があります:

  • バッチインポート・ダウンロードは 1 件ずつクリック
  • クイズとフラッシュカードはブラウザ内のみ — JSON / Markdown エクスポート不可
  • マインドマップやデータ表はブラウザで構造化データを取得できない
  • Claude Code、Codex などのコーディングエージェントとのネイティブ連携なし

たまにメモする程度なら Web で十分です。パイプライン、CI ジョブ、「20 本の論文を読んでクイズ生成」にはプログラム API が必要です。

notebooklm-py とは

notebooklm-py はコミュニティが保守する非公式 Python SDK + CLI(MIT ライセンス)です。Google 内部 RPC のリバースエンジニアリングにより、NotebookLM のほぼ全機能と Web にない追加機能を公開します。

注意:Google 非公式。未公開 API に依存し、更新で動かなくなる可能性があります。個人研究・プロトタイプ向け。

3 つの使い方

方式向いている用途
Python APIアプリ組み込み、非同期パイプライン、カスタムスクリプト
CLIシェルスクリプト、クイックタスク、CI/CD
エージェント連携Claude Code、Codex、OpenClaw、自然言語自動化

Web UI にない機能

機能得られるもの
バッチダウンロード同一タイプの成果物を一括取得(MP3、MP4、PDF、PNG など)
Quiz / フラッシュカード exportJSON、Markdown、HTML — インタラクティブ表示だけでない
マインドマップ JSOND3、ECharts 等向けの階層データ
データ表 CSV表計算向けエクスポート
スライド PPTX編集可能な PowerPoint、PDF のみではない
単一スライド修正自然言語プロンプトで 1 枚を変更
チャットをノートに保存Q&A や会話全体を Notebook に永続化
ソース全文インデックス済み原文へのプログラムアクセス
マルチアカウント再ログインなしで Google アカウント切替
ブラウザ Cookie インポート既存ログインセッションの再利用

生成カバレッジも広い:オーディオ概要(4 形式、50+ 言語)、動画(cinematic 含む)、インフォグラフィック、レポート、クイズ、フラッシュカード、マインドマップ、データ表 — Web より細かい制御が多い場合もあります。

クイックインストール

CLI ユーザー(エージェント含む)

pip install "notebooklm-py[browser]"
playwright install chromium
notebooklm login
notebooklm auth check --test --json

ライブラリのみ(事前取得した storage_state.json あり、Chromium 不要):

pip install notebooklm-py

詳細はプロジェクトの installation.md を参照。

CLI ウォークスルー:ノートブック作成からポッドキャスト DL まで

notebooklm create "AI Research"
notebooklm use <notebook_id>
notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence"
notebooklm source add "./paper.pdf"
notebooklm ask "What are the key themes?"
notebooklm generate audio "make it engaging" --wait
notebooklm download audio ./podcast.mp3
notebooklm generate quiz --difficulty hard
notebooklm download quiz --format markdown ./quiz.md

シェル長制限を超える長いプロンプトは --prompt-file を使用。

Python API 例

import asyncio
from notebooklm import NotebookLMClient

async def main():
    async with await NotebookLMClient.from_storage() as client:
        nb = await client.notebooks.create("Research")
        await client.sources.add_url(nb.id, "https://example.com", wait=True)
        result = await client.chat.ask(nb.id, "Summarize this")
        print(result.answer)
        status = await client.artifacts.generate_quiz(nb.id)
        await client.artifacts.wait_for_completion(nb.id, status.task_id)
        await client.artifacts.download_quiz(nb.id, "quiz.json", output_format="json")

asyncio.run(main())

非同期設計は大きな asyncio ワークフローに組み込みやすいです。

Claude Code 連携

リポジトリに Agent Skill 同梱。2 つのインストール方法:

# 方法 1:CLI で Claude Code / .agents にインストール
notebooklm skill install

# 方法 2:skills エコシステム
npx skills add teng-lin/notebooklm-py

セットアップ後、Claude Code に「この PDF を NotebookLM に追加し、hard 難易度の quiz を生成して Markdown で export」と指示できます — エージェントが notebooklm CLI を実行し、ブラウザ操作は不要です。

notebooklm ai ワークフローを組みながら notebooklm 公式 の生成機能をすべて使いたい開発者にとって、現時点で最もスムーズな経路です。

ローカル環境を組みたくない?

Playwright、Cookie、API 変更の管理は全員向けではありません。インストールなしで「アップロード → 質問 → 生成」に集中したい場合は、オンライン NotebookLM をご利用ください:

NotebookLM を使い始める


まとめ

notebooklm-py は NotebookLM を「クリック専用 Web ツール」から「スクリプト化・エージェント対応の知識エンジン」へ変えます。14.6k Star は需要の証拠 — 研究者の quiz 一括 export、クリエイターのパイプライン内ポッドキャスト生成、開発者の Claude Code から一言での import / download。

日常の軽い利用は Web UI;自動化とブラウザでは得られない export が必要なときは Python + CLI + エージェントが完成形です。

プロジェクト:github.com/teng-lin/notebooklm-py