Google NotebookLM 官方仅提供了网页交互界面,缺乏程序化调用入口,这限制了其在自动化工作流和 AI Agent 生态中的集成能力。teng-lin/notebooklm-py 项目填补了这一空白,通过逆向工程实现了完整的非官方 Python API,不仅覆盖了现有功能,更解锁了 Web UI 未暴露的底层能力。
核心突破:从手动操作到代码控制
该项目核心价值在于将 NotebookLM 从“封闭的 SaaS 工具”转变为“可调用的后端服务”。开发者不再需要模拟浏览器点击或依赖不稳定的 RPA 方案,而是直接通过 Python 代码管理知识库、生成内容并触发音频概览。
关键特性包括:
•全功能覆盖:支持源文件上传(PDF、TXT、Markdown 等)、笔记创建、引用查询及音频概览(Audio Overview)生成。•隐藏能力解锁:访问 Web 界面未提供的底层接口,例如更细粒度的引用溯源数据和批量处理逻辑。•多端适配:提供 Python 库、命令行工具(CLI)以及针对 Claude Code、Codex 等 AI 编程助手的 Skill 集成。notebooklm-py architecture★ NotebookLM 的真正潜力不在于聊天窗口,而在于将其作为结构化知识引擎嵌入自动化管线。
”
技术实现与快速上手
该库基于 HTTP 请求封装,模拟了 NotebookLM 内部的 API 调用逻辑。使用前需获取 Google 账户的认证 Cookie(SIDCC 和 SSID),这是通过非官方途径访问服务的必要凭证。
环境配置
安装依赖包:
1pip install notebooklm-py
基础用法示例
初始化客户端并加载文档:
23456789101112131415from notebooklm importNotebookLM# 填入你的 Google 账户 Cookieclient =NotebookLM(sidcc="your_sidcc", ssid="your_ssid")# 创建或连接已有笔记本notebook = client.create_notebook("Project Alpha")# 上传本地文件作为知识源source_id = notebook.upload_source("research_paper.pdf")# 基于文档内容进行问答response = notebook.chat("总结这篇论文的核心方法论", source_ids=[source_id])print(response)
生成音频概览
调用官方隐藏接口生成双人对话风格的音频摘要:
161718192021# 触发音频生成任务audio_job = notebook.generate_audio_overview()# 等待完成并下载audio_url = audio_job.wait_for_completion()notebook.download_audio(audio_url,"summary.mp3")
CLI 与 Agent 集成
对于习惯终端操作的开发者,可直接使用命令行:
22notebooklm --sidcc "xxx"--ssid "yyy" chat "提取所有关于量子计算的引用"
在 Claude Code 等智能体环境中,只需将该仓库注册为 Skill,即可让 AI 助手直接读取你的本地文档库并执行复杂检索任务,无需人工复制粘贴上下文。
应用场景与局限
此工具适用于构建垂直领域的自动研报系统、法律文档审查流水线或个人知识管理机器人。通过将 NotebookLM 强大的 RAG(检索增强生成)能力后端化,企业可将其集成至内部 Slack 机器人或 CI/CD 流程中。
需注意,由于是非官方接口,其稳定性依赖于 Google 前端协议的变动。建议在生产环境中增加异常重试机制,并定期更新库版本以适配 API 变更。此外,使用时务必遵守 Google 服务条款,避免高频请求导致账号受限。
项目地址:teng-lin/notebooklm-py[1]
本文内链接
[1] teng-lin/notebooklm-py: https://github.com/teng-lin/notebooklm-py