← 返回部落格

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 裡。

用 Python 操控 NotebookLM

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嵌入應用、非同步流水線、自訂腳本
CLIShell 腳本、快速任務、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


總結

notebooklm-py 把 NotebookLM 從「只能手點的網頁工具」變成了「可腳本化、可接 Agent 的知識引擎」。14.6k Star 說明需求是真實的:研究者要批量導 quiz,創作者要 pipeline 裡自動生成播客,開發者要在 Claude Code 裡一句話完成匯入和下載。

Web UI 負責日常輕度使用;當你需要自動化和 Web 端沒有的資料匯出時,Python + CLI + Agent 才是完整拼圖。

專案地址:github.com/teng-lin/notebooklm-py