notebooklm-py 是什么?

notebooklm-py 是一个面向 Google NotebookLM 的非官方 Python SDK、命令行工具和 AI Agent 技能包。它通过逆向 NotebookLM 的内部 RPC 接口,把网页端的能力(创建笔记本、导入资料、对话问答、生成播客/视频/测验/思维导图等)暴露成可编程的 Python API 和 CLI 命令,并打包成可被 Claude Code、Codex 等 Agent 直接调用的技能。需要明确:项目自身在 README 顶部就用醒目警告标注「非官方库,风险自负」——它依赖 Google 未公开的内部接口,与 Google 无任何关联,接口可能随时变动或被限流,作者建议仅用于原型、研究和个人项目。使用前应自行评估是否符合 Google 服务条款。

⭐ 15,273 Stars 🍴 2,095 Forks Python 作者: teng-lin
来源:README.md(顶部 Unofficial 警告框、What You Can Build 段落) 查看 GitHub 仓库 →

为什么值得关注

NotebookLM 是 Google 近期热度很高的研究/学习工具,但网页端没有开放 API,无法批量化、脚本化或接入 Agent。notebooklm-py 填补了这一空缺:它不仅复刻了网页端的全部功能,还提供了网页端没有的能力(批量下载、测验/闪卡导出为 JSON/Markdown、思维导图 JSON 提取、幻灯片导出为 PPTX)。同时它顺应了 2026 年「AI Agent 技能化」的趋势——通过 SKILL.md 和 npx skills add / notebooklm skill install 可被 Claude Code、Codex 等直接装载。截至数据采集,仓库约 14,845 stars。

来源:README.md(Beyond the Web UI、Agent Setup 段落);GitHub 仓库元数据(stars=14845)

核心功能

三种使用方式

同一套能力以 Python 异步 API、CLI 命令行、以及 AI Agent 技能三种形态提供,分别面向应用集成、Shell/CI 脚本和自然语言自动化。

来源:README.md(Three Ways to Use 表格)
完整的 NotebookLM 功能覆盖

笔记本增删改查、多类型资料源导入(URL、YouTube、PDF/文本/Markdown/Word/EPUB/音视频/图片、Google Drive、粘贴文本)、对话问答与历史、Web/Drive 研究 Agent(快速/深度模式)、分享与权限管理。

来源:README.md(Features → Complete NotebookLM Coverage 表格)
全类型内容生成

音频概览(4 种格式、3 种长度、50+ 语言)、视频概览、幻灯片、信息图、测验、闪卡、报告、数据表、思维导图,均可配置格式/风格/长度并下载为对应文件。

来源:README.md(Content Generation 表格)
网页端没有的能力

批量下载同类生成物、测验/闪卡导出为结构化 JSON/Markdown/HTML、思维导图导出层级 JSON、数据表导出 CSV、幻灯片导出可编辑 PPTX、单页幻灯片改写、多账号配置切换、复用浏览器现有 Cookie 等。

来源:README.md(Beyond the Web UI 段落)
Agent 技能集成

仓库根目录提供 SKILL.md,可通过 notebooklm skill install 装入 ~/.claude/skills 与 ~/.agents/skills,或用 npx skills add teng-lin/notebooklm-py 拉取;另提供 AGENTS.md 作为 Codex 指引。

来源:README.md(Agent Setup 段落);git tree(SKILL.md、AGENTS.md)

技术架构

核心是一个分层的异步客户端。源码集中在 src/notebooklm/ 下,按职责拆分为多个私有模块:认证与 Cookie 生命周期(_auth/ 目录,含 cookies、refresh、keepalive、session 等)、RPC 执行(_rpc_executor、_authed_transport)、以及一组中间件(_middleware_chain 串联 retry、semaphore、metrics、tracing、auth_refresh 等)。功能域各自独立成模块:笔记本(_notebooks)、资料源(_sources 相关)、对话(_chat、_chat_notes)、研究(_research)、各类生成物(_artifacts、_artifact_generation、_artifact_polling、_artifact_downloads)、思维导图(_mind_map)等。公开 API 通过 NotebookLMClient 暴露,按 client.notebooks / client.sources / client.chat / client.artifacts 等命名空间组织。项目带有 13 篇架构决策记录(docs/adr/),说明其在分层、能力协议、认证写穿、幂等性等方面有明确的设计约束。

来源:git tree(src/notebooklm/ 模块列表、docs/adr/ 目录);README.md(Python API 示例);docs/architecture.md(引用)

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) httpx(HTTP/RPC 传输)httpx(HTTP/RP… Playwright(浏览器登录与 Cookie 获取,可选 [browser] extra)Playwright(浏… Chromium 三种使用方式 完整的 NotebookLM 功能覆盖完整的 NotebookLM 功… 全类型内容生成 网页端没有的能力 Agent 技能集成 notebooklm-py 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言Python(支持 3.10–3.14)框架异步客户端(asyncio),CLI 基于 Click
httpx(HTTP/RPC 传输)Playwright(浏览器登录与 Cookie 获取,可选 [brow…Chromium
PyPI 发布(notebooklm-py),GitHub Actions 做测试/发布/夜间 RPC 健康检查/依赖审计/CodeQL
来源:README.md(Installation、CLI 段落提到 Click 风格命令);pyproject.toml、.github/workflows/(git tree);release notes(Python 版本徽章)

快速上手

CLI 最快上手:pip install "notebooklm-py[browser]" 安装核心与 Playwright,再 playwright install chromium 下载浏览器(约 170MB,无进度条需耐心等 30–90 秒),然后 notebooklm login 在浏览器完成 Google 登录,notebooklm auth check --test --json 验证应返回 status: ok。之后即可 notebooklm create 创建笔记本、source add 加资料、ask 提问、generate 生成内容、download 下载产物。作为库嵌入应用时可只装 pip install notebooklm-py(约 10MB,不含 Playwright/Chromium),自行提供预先获取的 storage_state.json。注意:登录依赖用户自己的 Google 账号会话,认证 Cookie 可能因长期使用而失效,项目专门提供了 auth refresh 保活机制。
来源:README.md(Installation、Quick Start → CLI 段落)

使用场景

适合需要把 NotebookLM 纳入自动化流程的场景:研究自动化(批量导入 URL/PDF/YouTube/Drive 资料,跑研究查询并自动入库,构建可重复的研究流水线);内容批量生产(程序化生成播客、视频、幻灯片、测验、闪卡等并按需导出多种格式);接入 AI Agent(让 Claude Code、Codex 等通过自然语言驱动 NotebookLM);以及 CI/CD 或定时任务里的脚本化调用。鉴于其非官方性质和接口不稳定风险,更适合原型、研究和个人项目,不建议直接用于对稳定性要求高的生产关键路径。

来源:README.md(What You Can Build、Unofficial 警告框)

优势与局限

优势

  • 功能覆盖完整,并提供了一批网页端没有的导出/批量能力
  • API、CLI、Agent 技能三种形态统一,集成路径清晰
  • 工程化程度高:分层架构 + 中间件链 + 13 篇 ADR + 完善的 CI(测试、夜间 RPC 健康检查、依赖审计、CodeQL)
  • 认证稳定性投入大,针对 Cookie 失效/轮转有保活、并发去抖、跨进程加锁等多层处理

局限

  • 非官方实现,依赖 Google 未公开的内部接口,Google 可随时变更导致失效
  • 重度使用可能被限流;作者明确建议仅用于原型/研究/个人项目
  • 需自行评估是否符合 Google 服务条款;与 Google 无任何官方关联
  • 依赖用户自己的 Google 会话 Cookie,认证链路较复杂,长期无人值守运行需配置保活/刷新
来源:README.md(Unofficial 警告框、Beyond the Web UI);release notes v0.4.1(认证稳定性修复条目);docs/adr/(架构约束)

最新版本

最新发布为 v0.4.1(2026-05-11)。该版本以补丁形式发布,但主体工作是认证/Cookie 稳定性的系统性修复——核心问题是持续使用下 Cookie 可能悄悄失效。修复方案是在请求 notebooklm.google.com 之前先向 accounts.google.com/RotateCookies 发起轮转,驱动 __Secure-1PSIDTS/3PSIDTS 刷新,并针对并发场景加了按事件循环/存储路径的异步锁、跨进程文件锁等多层去抖。新增能力包括 notebooklm auth refresh 一次性保活命令(可由 launchd/systemd/cron 调度)、客户端可选的后台周期性保活任务(keepalive= 参数)、以及认证过期时通过 NOTEBOOKLM_REFRESH_CMD 自动刷新重试。这些新增项均向后兼容。

来源:GitHub releases/latest(v0.4.1 release notes,Added/Fixed 段落)

总结评价

notebooklm-py 是目前对 Google NotebookLM 做编程化封装中较为完整、工程化也较扎实的一个开源项目,对想把 NotebookLM 接入研究流水线或 AI Agent 的开发者很有参考价值。但它的根本约束在于「非官方」——能力建立在 Google 未公开接口之上,稳定性不由作者掌控,且存在服务条款与限流方面的不确定性。把它定位为研究和原型工具是恰当的;若要用于较正式的场景,需要对接口变动、认证失效和合规风险做好预案。

来源:综合 README.md 警告框、release notes 稳定性修复记录、git tree 工程结构
透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-05-24 11:54. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件