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 才是完整拼图。