ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

为什么notebooklm-py能调用Web界面没有的NotebookLM功能?逆向未公开API的完整解析

为什么notebooklm-py能调用Web界面没有的NotebookLM功能?逆向未公开API的完整解析 为什么notebooklm-py能调用Web界面没有的NotebookLM功能逆向未公开API的完整解析【免费下载链接】notebooklm-pyUnofficial Python API and agentic skill for Google Gemini Notebook. Full programmatic access to NotebookLMs features—including capabilities the web UI doesnt expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw.项目地址: https://gitcode.com/GitHub_Trending/no/notebooklm-pynotebooklm-py 是一个非官方 Python 库它通过逆向 Google NotebookLM 未公开的batchexecute内部 API让 Python、命令行和 AI 智能体Claude Code、Codex 等获得 Web 界面没有的能力批量下载所有生成物、导出测验/闪卡 JSON、提取思维导图数据、程序化分享管理等。本文将带你完整解析它是如何做到的。NotebookLM 的 Web 界面背后藏着什么很多人以为 NotebookLM 的网页版只是一个聊天界面但实际上每次你在页面上点击生成播客、添加来源浏览器都会向后端发送一类特殊的 RPC 请求。Google 内部把这种协议叫做batchexecute它有三个核心特征术语说明batchexecuteGoogle 内部 RPC 端点NotebookLM 所有操作都走这里RPC ID6 位字符的方法标识符如wXbhsf列出笔记本、R7cb6c生成生成物f.reqURL 编码的 JSON 载荷携带真正的业务参数CSRF 令牌请求头中的at参数SNlM0e值用于身份校验换句话说Web 界面能做的事底层 API 全能做而底层 API 能做的事Web 界面未必暴露——比如批量导出、数据表 CSV 下载、单张幻灯片修改、把整个对话历史存成笔记。这就是 notebooklm-py 能力的来源。完整的方法 ID 清单见 docs/rpc-reference.md协议开发细节见 docs/rpc-development.md。逆向四步法从抓包到可用客户端整个逆向过程可以拆成四个阶段理解它们你就明白了这类未公开 API项目的通用方法论。第一步捕获流量找到隐藏端点开发者打开 Chrome DevTools 的 Network 面板过滤batchexecute然后在页面上只做一次操作比如创建一个笔记本就能捕获到对应的 RPC 调用从请求的rpcids参数里读出方法 ID如CCqFvf 创建笔记本从f.req参数解码出 JSON 载荷结构观察响应——它以一个)]}前缀开头这是 Google 的防 XSSI 注入措施去掉前缀后是分行分块的 JSON这一套完整的抓包、解码、调试流程都写在 docs/rpc-development.md 中包括如何用 Playwright 自动化批量捕获。第二步破解位置敏感的载荷结构这是逆向中最烧脑的部分。batchexecute 的参数不是按字段名传递而是按数组位置传递而且嵌套深度不固定某些方法里 source ID 只需单层嵌套[id]有的要双层[[id]]生成物方法要三层[[[id]]]获取来源摘要甚至要四层[[[[id]]]]少一个None占位、少一层括号服务端就静默返回空结果。notebooklm-py 的做法是把每种方法的载荷结构固化成 Python 构造函数并用黄金测试golden tests逐字节锁定防止回归。方法 ID 的唯一事实来源在 src/notebooklm/rpc/types.py载荷构建器则分布在各功能模块中如 src/notebooklm/_artifacts.py、src/notebooklm/_source/add.py。第三步处理认证——CSRF 令牌与 Cookie 生命周期未公开 API 没有 API Key 可拿认证完全依赖你浏览器里的登录态。notebooklm-py 提供了三种方式交互式登录notebooklm login自动下载 Chromium用 Playwright 打开 Google 登录页复用已有浏览器 Cookienotebooklm login --browser-cookies chrome无需额外浏览器主令牌Master Token按需换取新的 Web Cookie适合服务器、CI 等无人值守场景登录后还需持续维护 CSRF 令牌和 Cookie 有效性notebooklm auth refresh --quiet可挂到 cron 里保活。第四步解码响应封装成干净的 Python API响应解析要去掉)]}前缀、逐行解析分块 JSON、按 RPC ID 提取wrb.fr块。这些脏活被封装在 RPC 层src/notebooklm/rpc/上层用户拿到的是类型化的对象Notebook、Source、Artifact、AskResult……最终的分层架构三种入口共用同一个核心可以在 docs/architecture.md 看到CLIcli/ MCPmcp/ RESTserver/ ← 三个薄适配器 \ | / Application Layer_app/传输无关的业务逻辑 Client LayerNotebookLMClient 各功能 API Runtime LayerRpcExecutor、生命周期管理 RPC Layertypes / encoder / decoderWeb 界面没有notebooklm-py 能做的事逆向带来的直接红利就是 README.md 里Beyond the Web UI一节列出的能力批量下载download type --all一次拉取某类全部生成物测验/闪卡导出JSON、Markdown、HTML 三种格式可直接进 Anki️思维导图数据提取拿到层级 JSON接入任何可视化工具数据表 CSV 导出生成物变成结构化电子表格幻灯片单张修改用自然语言 prompt 重画某一张 slide对话历史存为笔记保存整个 QA 会话而不只是单条回答来源全文获取直接拿到任何来源被索引后的干净文本安装一行搞定推荐uv tool隔离安装uv tool install notebooklm-py[browser] notebooklm login # 首次运行自动下载 Chromium然后 Google 登录 notebooklm create My Research notebooklm source add https://example.com/article notebooklm ask 核心主题是什么 notebooklm generate audio make it engaging --wait notebooklm download audio ./podcast.m4a使用未公开 API 的风险与稳定性策略这类项目必须正视一个问题Google 随时可能改动内部端点。docs/stability.md 明确说明了这一点并给出了一套务实的版本策略Google 改了 RPC 方法 ID→ 发PATCH版本修复例如 0.1.0 → 0.1.1用户只需升级新功能向后兼容→MINOR版本公共 API 破坏性变更→MAJOR版本配合NOTEBOOKLM_DEBUG_RPC1环境变量可以随时观察服务端返回的 RPC ID 是否变化测试库里大量 VCR 录制的流量基线tests/cassettes/则保证协议细节有回归防线。⚠️ 官方提醒这是非官方库未与 Google 关联接口随时可能失效且存在速率限制。最适合原型、研究和个人项目。写在最后notebooklm-py 展示了逆向未公开 API 项目的完整范式抓包定位端点 → 破解载荷结构 → 解决认证与令牌维护 → 解码响应并封装 → 用测试基线对抗协议漂移。如果你好奇网页按钮背后的真实 API 长什么样docs/rpc-reference.md 里 40 个 RPC 方法及其载荷结构就是最好的教材想动手复现docs/rpc-development.md 的协议总览和调试章节值得逐段阅读。【免费下载链接】notebooklm-pyUnofficial Python API and agentic skill for Google Gemini Notebook. Full programmatic access to NotebookLMs features—including capabilities the web UI doesnt expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw.项目地址: https://gitcode.com/GitHub_Trending/no/notebooklm-py创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表