14.6k Star!用 Python 操控 Google NotebookLM,還能直接接 Claude Code,這個開源專案做到了 Web UI 做不到的事!
- notebooklm ai
- notebooklm 教學
- notebooklm 中文
- notebooklm 官網
Google NotebookLM 的網頁版用起來順手,但一旦認真做研究、寫腳本、接 AI Agent,很快就會撞牆:很多操作只能點介面,沒法自動化,更沒法批量跑。
GitHub 上的 notebooklm-py(截至 2026 年 5 月已獲 14.6k+ Star)就是衝著這個缺口來的——用 Python 把 NotebookLM 的能力「端」出來,還能直接掛到 Claude Code 等 Agent 裡。

NotebookLM 網頁版卡在哪?
NotebookLM 是 Google 推出的 AI 知識工具,上傳 PDF、網頁、YouTube 連結後,可以基於資料問答、生成播客、簡報、測驗等。搜 notebooklm 教學 或 notebooklm 中文,入門內容不少,但官方 Web UI 有明顯邊界:
- 批量匯入、批量下載,得一篇篇點
- Quiz、閃卡只能線上看,不好匯出成 JSON / Markdown
- 思維導圖、資料表的結構化資料,網頁端拿不出來
- 和 Claude Code、Codex 這類編程 Agent 沒法直接對話式聯動
如果你只是偶爾整理資料,網頁版夠用;要做流水線、接 CI/CD、讓 AI 幫你「讀完 20 篇論文再出題」,就需要程式化介面。
notebooklm-py 是什麼?
notebooklm-py 是社群維護的非官方 Python SDK + CLI,MIT 協議。它透過逆向 Google 內部 RPC,把 NotebookLM 幾乎全部能力暴露出來,並額外提供 Web UI 沒有的功能。
注意:非 Google 官方專案,依賴未公開 API,可能隨 Google 更新而變動;適合個人研究、原型開發,生產環境請自行評估風險。
三種使用方式
| 方式 | 適合場景 |
|---|---|
| Python API | 嵌入應用、非同步流水線、自訂腳本 |
| CLI | Shell 腳本、快速任務、CI/CD |
| Agent 整合 | Claude Code、Codex、OpenClaw 等 AI 編程助手 |
Web UI 做不到、它能做的事
| 能力 | 說明 |
|---|---|
| 批量下載 | 一次拉取某類全部生成物(MP3、MP4、PDF、PNG 等) |
| Quiz / 閃卡匯出 | JSON、Markdown、HTML,而不只是網頁互動視圖 |
| 思維導圖 JSON | 匯出層級結構,接 D3、ECharts 等視覺化 |
| 資料表 CSV | 結構化表格下載 |
| 簡報 PPTX | 網頁端通常只有 PDF,這裡可下可編輯的 PPT |
| 單頁簡報修訂 | 用自然語言改某一頁 |
| 保存對話為筆記 | 把問答或整段聊天寫入 Notebook |
| 來源全文讀取 | 程式化取得已索引的原文 |
| 多帳號配置 | 切換 Google 帳號,無需反覆登入 |
| 瀏覽器 Cookie 匯入 | 複用已有登入態,跳過 Playwright 掃碼 |
內容生成方面同樣齊全:音訊概覽(4 種格式、50+ 語言)、視訊(含 cinematic 風格)、資訊圖、報告、測驗、閃卡、思維導圖、資料表等,參數比網頁端更細。
快速安裝
CLI 使用者(含 Agent):
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 實戰:從建庫到下載播客
notebooklm create "AI 研究筆記"
notebooklm use <notebook_id>
notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence"
notebooklm source add "./paper.pdf"
notebooklm ask "核心觀點有哪些?"
notebooklm generate audio "講得生動一點" --wait
notebooklm download audio ./podcast.mp3
notebooklm generate quiz --difficulty hard
notebooklm download quiz --format markdown ./quiz.md
長 prompt 可用 --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,兩種裝法:
# 方式一:CLI 安裝到 Claude Code / .agents 目錄
notebooklm skill install
# 方式二:透過 skills 生態
npx skills add teng-lin/notebooklm-py
裝好後,在 Claude Code 裡可以直接說:「把這個 PDF 加進 NotebookLM,生成一份 hard 難度的 quiz 並匯出 Markdown」——Agent 會走 notebooklm CLI,而不是讓你手動開瀏覽器。
對習慣 notebooklm ai 工作流、又想保留 notebooklm 官網 全部生成能力的開發者,這是目前最順的一條路。
不想配環境?直接在瀏覽器裡用
本地裝 Playwright、管 Cookie、跟 API 變更搏鬥,並不是每個人都願意。如果你更想專注「上傳資料 → 提問 → 生成內容」,可以直接在我們的線上站點體驗 NotebookLM 核心能力,免安裝、多語言介面:
總結
notebooklm-py 把 NotebookLM 從「只能手點的網頁工具」變成了「可腳本化、可接 Agent 的知識引擎」。14.6k Star 說明需求是真實的:研究者要批量導 quiz,創作者要 pipeline 裡自動生成播客,開發者要在 Claude Code 裡一句話完成匯入和下載。
Web UI 負責日常輕度使用;當你需要自動化和 Web 端沒有的資料匯出時,Python + CLI + Agent 才是完整拼圖。