NotebookLM-py 测评:将Google AI工具转为可编程API的实战指南
摘要
notebooklm-py是一个开源Python库,通过逆向工程封装了GoogleNotebookLM的未公开API,使其支持程序
引言
如果你正寻求将Google NotebookLM从浏览器中解放出来,将其深度集成到自动化流程中,那么notebooklm-py这个开源项目值得你重点关注。它解决了NotebookLM缺乏官方API的核心痛点。

Google NotebookLM在个人知识库与AI问答领域表现出色,其基于文档的总结、提炼及多格式内容生成能力,配合精准的来源引用,确实强大。然而,其网页界面的封闭性限制了程序化调用与系统集成。
notebooklm-py通过逆向工程,完整封装了NotebookLM的未公开API,使你能够通过Python代码或命令行直接操控其全部功能,甚至解锁了一些网页端未开放的能力。其提供的Claude Code Skill,更能让Claude在对话中实时查询你的NotebookLM知识库,实现了Gemini的知识检索与Claude推理能力的协同。
该项目在GitHub上已获得超过9500颗星,采用MIT协议开源。
你将学到什么
- 掌握notebooklm-py的三种核心应用模式:Python API、CLI工具及Claude Code Skill。
- 了解它能实现哪些超越NotebookLM网页界面的自动化操作。
- 解析Claude Code Skill如何实现跨厂商AI(Claude + NotebookLM)的协作机制。
- 理解“带来源引用的回答”为何是应对AI幻觉最有效的工程化手段之一。
- 评估基于未公开API进行逆向工程的优势与潜在风险。
前置知识
- 具备Python基础语法知识及pip包管理经验。
- 对Google NotebookLM的核心功能有基本认知。
- 若关注Claude Code Skill部分,建议具备一定的Claude Code使用经验。
项目背景
项目简介
notebooklm-py是开发者Teng Lin构建的非官方Python客户端。其核心并非网页爬虫,而是直接调用NotebookLM客户端与Google服务器通信时使用的原生HTTP接口,从而实现了对NotebookLM功能的程序化访问。
项目包含两个核心组件:一是作为基础的Python库和命令行工具,提供了完整的NotebookLM API封装;二是Claude Code Skill,它使Claude能在会话中实时查询你的NotebookLM知识库。前者解决了“自动化操作NotebookLM”的问题,后者则解决了“让AI回答基于你的真实文档而非其训练数据”这一更深层的需求。
作者介绍
- 主要作者:Teng Lin(GitHub: @teng-lin)
- 项目性质:社区驱动的非官方项目,与Google无官方关联。
- 发布平台:GitHub及PyPI(可通过
pip install notebooklm-py安装)。 - 当前版本:v0.5.0(处于Beta阶段)。
项目数据
- GitHub Stars: 9,500+
- PyPI包名: notebooklm-py
- 开源协议: MIT
- Python版本要求: ≥ 3.10
- 支持平台: macOS, Linux, Windows
- 项目状态: Beta(基于未公开API,可能随Google变更而失效)
- 代码仓库: teng-lin/notebooklm-py
主要功能
核心作用
notebooklm-py完整覆盖了NotebookLM的功能图谱,主要包括:
Notebook管理:支持创建、列出、重命名、删除和分享Notebook。
来源导入:支持多种格式,包括URL网页、YouTube视频、PDF文件、Google Drive文档及纯文本粘贴。
知识查询:支持基于对话历史的问答,回答附带引用来源;同时支持引用固定功能。
内容生成(Studio功能):可生成音频播客、视频概述、PPTX幻灯片、测验、闪卡、JSON格式脑图、报告及信息图。
研究代理:能够自动进行网络研究并导入搜索结果,或自动导入云盘中的文档。
三种使用方式
方式 1:Python API(异步,适合自动化流水线)
Python API为开发者提供了最大的灵活性。通过异步编程,你可以将NotebookLM操作无缝集成到自动化流水线中。
import asyncio
from notebooklm import NotebookLM
async def main():
async with NotebookLM() as nlm:
# 创建 Notebook
notebook = await nlm.create_notebook("我的研究项目")
# 导入多种来源
await notebook.add_source("https://arxiv.org/abs/2310.06825")
await notebook.add_source("research.pdf")
await notebook.add_source("https://youtu.be/dQw4w9WgXcQ")
# 查询知识库(返回带引用的回答)
response = await notebook.query("这篇论文的核心创新点是什么?", include_citations=True)
print(response.answer)
print(response.citations) # 每条引用都指向具体来源段落
# 生成音频播客
podcast = await notebook.generate_audio_overview()
podcast.sa ve("summary.mp3")
# 生成幻灯片
slides = await notebook.generate_slides()
slides.sa ve("presentation.pptx")
asyncio.run(main())
方式 2:CLI(Shell 脚本和 CI/CD)
对于命令行爱好者或需要在Shell脚本及CI/CD流程中集成的场景,CLI工具提供了脚本化的操作方式。
# 安装
pip install notebooklm-py
# 基础操作
notebooklm notebook create "产品文档知识库"
notebooklm source add --notebook "产品文档知识库" https://docs.example.com
notebooklm source add --notebook "产品文档知识库" ./spec-v2.pdf
# 查询
notebooklm query --notebook "产品文档知识库" "新版 API 的认证方式有哪些变化?"
# 生成内容
notebooklm generate audio --notebook "产品文档知识库"
notebooklm generate slides --notebook "产品文档知识库" --output slides.pptx
# 批量导入(在 CI/CD 中自动更新知识库)
notebooklm source sync --notebook "产品文档知识库" ./docs/
方式 3:Claude Code Skill(让 Claude 实时查询 NotebookLM)
这是项目最具创新性的部分,它实现了AI工作流的“最后一公里”——让Claude直接访问你的私有知识库。
# 安装 Skill(方法 1:通过插件市场)
/plugin marketplace add teng-lin/notebooklm-py
# 安装 Skill(方法 2:直接安装到 Skills 目录)
notebooklm skill install
# 首次认证(浏览器登录 Google 账号,之后自动维持)
notebooklm auth login
安装完成后,在Claude Code对话中的体验将彻底改变:
你:解释一下我们系统的认证架构,我记得在架构文档里有详细说明
Claude:[内部调用 NotebookLM Skill,查询你的“系统架构”知识库]
Claude:根据你的架构文档(来源:architecture-v3.md,第 4 页),系统使用 JWT + Refresh Token 双令牌机制...
[每条信息都有来源引用,不是训练数据中的泛化回答]
项目详细剖析
Claude Code Skill 的技术原理
理解这个Skill的工作原理,需要把握其两层架构。
第一层:浏览器自动化(Browser Automation)
由于NotebookLM没有公开API,所有操作都需要Google账号认证。notebooklm-py使用浏览器自动化工具来维持认证状态,捕获认证令牌后直接发起HTTP请求。这确保了功能的完整性,且所有数据保留在本地。但需注意,这要求本地运行Claude Code,云端或沙箱环境无法使用浏览器功能。
第二层:Skill 集成层
这一层构建了流畅的交互管道:当Claude Code对话判断需要知识库支持时,会触发Skill;Skill构造NotebookLM查询,通过Python库向Google服务器发起HTTP请求;NotebookLM(基于Gemini 1.5 Pro)返回带引用的回答;Skill解析响应后,将结果注入Claude的上下文,最终由Claude给出基于真实来源、带有引用的回答。
为什么“有来源引用的回答”是反幻觉的工程解法
这背后体现了一种关键的设计哲学。AI幻觉的核心问题,往往不在于“AI回答了错误内容”,而在于“AI回答了它不确定是否正确的内容,却表现得非常确定”。
业界主要有两种对抗策略:策略A依赖更好的训练数据和RLHF,这能缓解但无法根治问题,因为模型无法确切知道自己不知道什么。策略B则强制要求每一条断言都必须来自可验证的来源,若来源不存在,则无法生成该断言。这是一种根本性的解决思路。
notebooklm-py的Claude Code Skill遵循策略B。它将回答从依赖泛化的训练数据,转变为锚定在你上传的具体文档上。对于代码库文档、API规范、内部流程手册等只存在于组织内部、模型训练数据中根本没有的知识,这种基于检索的生成模式(RAG)显得尤为关键和可靠。
超越网页界面的能力
得益于程序化访问,notebooklm-py能实现一些网页界面难以或无法完成的操作:
- 批量操作:例如,批量创建多个Notebook,无需手动逐个点击。
- 程序化引用固定:可直接通过API调用网页界面的隐藏功能。
- 研究代理自动化:自动进行网络搜索并将结果导入知识库,超越了网页界面的能力范围。
- 定时更新与同步:可在CI/CD流水线中设置定时任务,自动同步最新文档,确保知识库的时效性。
使用风险与权衡
使用基于逆向工程的项目,需要正视其技术限制与潜在风险。
| 风险 | 影响 | 缓解方式 |
|---|---|---|
| 基于未公开 API | Google 随时可能改变接口,导致工具失效 | 关注项目更新,准备备用方案 |
| 浏览器自动化 | 需要本地环境,无法在 CI/CD 中使用完整功能 | CLI 模式部分功能可在无头环境运行 |
| 非官方客户端 | 存在违反 Google 服务条款的风险 | 作者标注为“个人使用和原型验证” |
| Beta 状态 | API 接口可能在版本间变化 | 锁定版本号,生产环境谨慎使用 |
作者在项目文档中明确说明,此工具更适合用于原型验证和个人项目,不建议用于关键的生产系统。
总结与展望
核心要点回顾
- 完整 API 封装:覆盖了Notebook管理、多类型来源导入、RAG查询及Studio内容生成等全套功能。
- 三种使用方式:提供Python异步API、命令行工具和Claude Code Skill,适应不同场景需求。
- 跨厂商 AI 协作:巧妙结合了Claude的推理能力与NotebookLM/Gemini的知识检索能力,形成优势互补。
- 反幻觉工程实践:通过强制要求回答基于可追溯的来源,为应对AI幻觉提供了一种工程化的解决思路。
- 超越网页界面:实现了批量操作、程序化引用固定、研究代理自动导入等仅能通过API实现的高级能力。
适用人群
- 研究人员:可构建自动化文献综述工作流,批量导入论文并查询知识库。
- 开发团队:能将API规范、架构文档注入Claude Code,从而获得有来源依据的代码建议。
- 内容创作者:可批量从文档生成播客、幻灯片、思维导图等多种形式的内容。
- AI 工具构建者:可借此研究跨厂商AI能力的组合与集成模式。
notebooklm-py是一个极具巧思的工具。它通过逆向工程,为强大的NotebookLM打开了程序化访问的大门,并在此基础上,探索了跨AI模型协作与反幻觉的新路径。虽然存在一定的使用风险,但对于追求自动化、集成化工作流的开发者和研究者而言,它提供了一个极具价值的探索方向。
来源:互联网
本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。