今天分享一个 15K+ Stars 的开源项目——notebooklm-py。它是 Google NotebookLM 的非官方 Python API,让你用代码来调用 NotebookLM 的全部功能。
notebooklm-py GitHub 页面
它是什么
Google NotebookLM 是谷歌推出的一款 AI 笔记和研究工具,支持导入文档、网页、视频作为素材,然后基于这些素材生成播客、视频、幻灯片、测验等各种内容。但 NotebookLM 只有网页界面,没有公开 API,无法程序化调用。
notebooklm-py 填补了这个空白。它通过逆向工程 NotebookLM 的前端接口,封装了一套完整的 Python API 和 CLI,能做的事情甚至超过了网页版。
项目支持三种使用方式:Python API、命令行 CLI、以及 AI Agent 集成(Claude Code、Codex、OpenClaw 都能直接调用)。
⚠️ 非官方库。基于未公开的 Google API,接口可能随时变化。适合个人项目和研究用途。
安装
pip install "notebooklm-py[browser]" playwright install chromium notebooklm login
认证会在浏览器里打开 Google 登录,登录完成后会把 token 存到本地。之后不需要再重复登录。
如果只想当库用(不需要 Playwright 浏览器),可以只装核心包:
pip install notebooklm-py
然后从已有登录过的 Chrome 里导入 cookie。
核心功能
输入:能接入哪些素材
支持 URL、PDF、文本、Markdown、Word、EPUB、音频、视频、图片、Google Drive 文件。甚至内置了 Web 搜索和 Google Drive 搜索 Agent,搜索回来的结果能自动导入为素材。
输出:能生成什么
这是 notebooklm-py 最强大的部分。
音频播客(Audio Overview):4 种风格(深度讨论、简报、评论、辩论),3 种时长,50+ 语言。这个功能就是 NotebookLM 最出名的 AI 播客功能,两个 AI 主播像真人一样讨论你的素材。
视频概述:3 种格式(解说、简报、电影级),9 种视觉风格。还有一个电影级视频的专用 CLI 命令。
幻灯片:详细版或演示者版,支持逐页修改。可以导出为 PDF 或 PPTX——网页版只能导出 PDF,这个库能做 PPTX。
信息图:3 种方向(横、竖、方),3 种详细程度,导出 PNG。
测验和闪卡:可配置题目数量和难度,输出 JSON、Markdown 或 HTML。网页版只提供交互式视图,这个库能把内容导出为结构化数据。
思维导图:导出为 JSON,方便用其他可视化工具处理。
数据表格:用自然语言描述你想要的结构,它会从素材里提取数据生成 CSV。
报告:支持简报、学习指南、博客文章等模板,也可以自定义 prompt。
超越网页版的功能
notebooklm-py 有几个功能是网页版没有的:
- 测验/闪卡导出:JSON/Markdown/HTML(网页版只有交互式视图)
- 单页幻灯片修改:用自然语言描述想怎么改,它自动调整
使用示例
命令行——创建笔记本并生成播客
# 创建笔记本并添加素材 notebooklm create "我的研究" notebooklm use <notebook_id> notebooklm source add "https://example.com/article" notebooklm source add "./paper.pdf"# 基于素材聊天 notebooklm ask "总结这篇文章的主要观点"# 生成播客 notebooklm generate audio "讲得生动一点" --wait # 下载 notebooklm download audio ./podcast.mp3
Python API——构建工作流
import asyncio from notebooklm import NotebookLMClient async def main(): async with NotebookLMClient.from_storage() as client: nb = await client.notebooks.create("我的研究") await client.sources.add_url(nb.id, "https://example.com") result = await client.chat.ask(nb.id, "总结一下") print(result.answer) status = await client.artifacts.generate_audio(nb.id) await client.artifacts.wait_for_completion(nb.id, status.task_id) await client.artifacts.download_audio(nb.id, "output.mp3") asyncio.run(main())
Agent 集成
用 notebooklm skill install 可以将它安装为 AI Agent 的 Skill。之后用自然语言就能操作 NotebookLM:
"帮我创建一个叫'深度研究'的笔记本,导入我刚下载的几篇论文,然后生成一个深度讨论风格的播客"
这条指令装好后在 Claude Code、Codex、OpenClaw 里都能用。
适合人群
- 需要批量内容处理的 AI 内容创作者(批量生成播客、文章摘要、学习材料)
- 做技术调研的人(把论文/文档全导进去,一键生成概述或问答)
- 想把 NotebookLM 接入自己工作流的开发者(自动化管道、CI/CD 集成)
不适合:
- 对 API 稳定性和数据合规有严格要求的生产环境——这个库依赖未公开接口,随时可能断
GitHub:https://github.com/teng-lin/notebooklm-pyStars:15K+语言:Python许可证:MIT