摘要:notebooklm-py 是 Google NotebookLM 的非官方 Python API,4 个月收获 14K Star。支持 Python、CLI、Agent Skill 三种接入方式,可批量下载 artifact、导出 Quiz JSON、生成可编辑 PPTX 等 Web UI 没有的功能,还能直接接入 Claude Code 实现自然语言驱动。
说实话,Google NotebookLM 出来之后我用了挺长时间——上传 PDF、问问题、生成播客,体验确实不错。但每次想把它嵌进自己的工作流,就卡住了:没有官方 API,所有操作都只能靠鼠标点。
然后我发现了 notebooklm-py 这个项目。
4 个月,14,561 Star,30 位贡献者。这个速度说明开发者群体等这个东西等了很久了。
▌ 它到底是什么
一句话总结就是:Google NotebookLM 的非官方 Python API + CLI + AI Agent Skill,让你可以用代码完整操控 NotebookLM 的所有功能——包括 Web UI 根本没有暴露的那些。
项目地址:github.com/teng-lin/notebooklm-py
先说清楚风险:它用的是 Google 未公开的内部 API,Google 随时可以改掉。项目本身和 Google 没有任何关系,是社区驱动的开源项目。用于原型、研究、个人项目没问题,别拿去跑生产环境的核心业务。
风险说完了,来聊聊为什么值得关注。
▌ 三种用法,按需取用
notebooklm-py 支持三种接入方式,不同场景用不同的:
| |
|---|
| |
| |
| 直接给 Claude Code / Codex 用,自然语言驱动 |
我最感兴趣的是第三种——后面细说。
▌ Web UI 里没有的功能,这里都有
这才是这个项目真正的价值所在。NotebookLM 的 Web 界面藏了很多功能没有开放,notebooklm-py 通过 API 把它们全挖出来了:
批量下载:Web UI 每次只能手动下载一个 artifact,这里可以一次性把所有音频、视频、幻灯片批量下载到本地。
Quiz 和 Flashcard 导出:Web UI 里 Quiz 和闪卡只有交互视图,你没法拿到结构化数据。这里可以直接导出 JSON、Markdown 或 HTML——对做学习类应用的人来说这个太有用了。
思维导图 JSON 提取:思维导图的层级数据可以导出为 JSON,然后接进任何可视化工具。
幻灯片导出 PPTX:Web UI 只能导出 PDF,这里支持导出可编辑的 PowerPoint 文件。
单页幻灯片修改:用自然语言 prompt 修改某一页幻灯片的内容,不用重新生成整套。
多账号 Profile:可以在多个 Google 账号之间切换,不用重复登录。
编程方式管理分享权限:批量设置笔记本的查看/编辑权限,对要管理很多 notebook 的场景很有用。
这些不是小功能,是对 NotebookLM 使用方式的根本性扩展。
▌ 内容生成能力一览
除了导出功能,内容生成这块覆盖得相当全:
🎙️ 音频播客:4 种格式(深度探讨 / 简短版 / 评论 / 辩论),3 种时长,支持 50+ 语言输出。想批量生成不同语言的播客?写个循环就行。
🎬 视频:3 种格式,9 种视觉风格,还有专门的 cinematic-video 模式。
📊 幻灯片:详细版和演讲者版,可以导 PDF 或 PPTX。
🧩 信息图表:3 种方向(横/竖/方形),3 种细节程度,导出 PNG。
📝 报告:简报、学习指南、博客文章,或者自定义 prompt 让它按你要求写。
📋 数据表格:用自然语言描述你要的表格结构,导出 CSV。
这些组合起来,基本上可以实现"丢进一批文档,自动产出一套学习资料包"的流水线。
▌ 接 Claude Code 用是什么体验
这是我觉得最有意思的用法。
装好 skill 之后,你可以直接在 Claude Code 里说"帮我在 NotebookLM 里创建一个关于 XX 的笔记本,添加这几个 URL,然后生成一个播客"——Claude Code 会调用 notebooklm-py 的 skill 完成整个流程,不用你手写一行代码。
安装 skill 只需要一行:
notebooklm skill install# 或者通过 npxnpx skills add teng-lin/notebooklm-py
或者让Claude Code 自己进行安装,命令如下:
帮我安装这个Github开源Skill,开源地址:https://github.com/teng-lin/notebooklm-py
Claude Code 就会自行思考,你只需要点YES即可,简直不要太爽!
两种方式都会直接把 skill 安装到 ~/.claude/skills/notebooklm,Claude Code 下次启动就能识别。
如果你想要在当前项目中安装,那么只需要指定路径就行。
▌ 快速上手
CLI 用户 / Agent 用法,带浏览器登录:
# 安装(包含 Playwright)pip install "notebooklm-py[browser]"playwright install chromium # 约 170MB,耐心等 30-90 秒# 登录(会打开浏览器)notebooklm loginnotebooklm auth check --test --json # 验证是否成功
登录成功后,日常操作长这样:
# 创建笔记本,添加来源notebooklm create "我的研究项目"notebooklm use <notebook_id>notebooklm source add "https://example.com/paper"notebooklm source add "./local-doc.pdf"# 和资料聊天notebooklm ask "这份资料的核心观点是什么?"# 生成内容notebooklm generate audio "做成辩论风格" --waitnotebooklm generate quiz --difficulty hardnotebooklm generate slide-deck# 下载notebooklm download audio ./podcast.mp3notebooklm download quiz --format json ./quiz.json
Python API 用法(异步):
import asynciofrom notebooklm import NotebookLMClientasyncdefmain():asyncwithawait NotebookLMClient.from_storage() as client: nb = await client.notebooks.create("研究笔记本")await client.sources.add_url(nb.id, "https://example.com", wait=True) result = await client.chat.ask(nb.id, "总结一下主要内容") print(result.answer)# 生成播客并下载 status = await client.artifacts.generate_audio(nb.id, instructions="轻松有趣的风格")await client.artifacts.wait_for_completion(nb.id, status.task_id)await client.artifacts.download_audio(nb.id, "podcast.mp3")asyncio.run(main())
纯库模式(不需要浏览器,适合嵌进服务器应用):
pip install notebooklm-py # 只有约 10MB# 需要提前准备好 storage_state.json(认证状态文件)
▌ 我的看法
4 个月 14K Star 不是靠营销来的,是因为填了一个真实的空缺:NotebookLM 的产品体验很好,但它的封闭性让想做二次开发的开发者无从下手。
notebooklm-py 把这个限制打开了。
如果你有以下需求之一,这个项目值得认真看一看:
- 想把 NotebookLM 接进自己的工具链或 AI Agent
- 想导出 Web UI 里看不到的结构化数据(Quiz JSON、思维导图等)
- 想用 Claude Code 自然语言驱动 NotebookLM 的全部功能
唯一需要心里有数的是:这是非官方 API,Google 随时可以改接口。用于正式产品之前做好降级方案,或者至少别把核心流程完全押在上面。
项目目前在活跃维护中(最近一次更新是 2026-05-21),有 issue 也响应得快,社区氛围不错。
如果你试了,欢迎在评论区聊聊你的用法——特别是 Agent 集成那块,我相信有很多有意思的玩法我还没想到。
GitHub:github.com/teng-lin/notebooklm-py
我是顾北,关注我,获取更多好玩有趣的开源仓库!
谢谢你阅读我的文章~
我们下期再见!
PS:本文部分内容由AI辅助创作