当前位置:首页>python>NotebookLM 的非官方 Python API,15K Stars 的开源项目

NotebookLM 的非官方 Python API,15K Stars 的开源项目

  • 2026-10-11 07:09:04
NotebookLM 的非官方 Python API,15K Stars 的开源项目

今天分享一个 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,接口可能随时变化。适合个人项目和研究用途。

安装

bash
pip install "notebooklm-py[browser]" playwright install chromium notebooklm login

认证会在浏览器里打开 Google 登录,登录完成后会把 token 存到本地。之后不需要再重复登录。

如果只想当库用(不需要 Playwright 浏览器),可以只装核心包:

bash
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(网页版只有交互式视图)
  • 思维导图 JSON 提取
  • 数据表格 CSV 下载
  • 幻灯片 PPTX 格式(网页版只能 PDF)
  • 单页幻灯片修改:用自然语言描述想怎么改,它自动调整
  • 报告模板自定义:在模板基础上加额外指令
  • 聊天内容保存到笔记
  • 多账号切换

使用示例

命令行——创建笔记本并生成播客

bash
# 创建笔记本并添加素材 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——构建工作流

python
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

最新文章

随机文章