这里的 NotebookLM Skill 来自 teng-lin/notebooklm-py。它让 Agent 通过 CLI 管理笔记本和资料,围绕指定来源问答,并生成、下载音频或其他产物。
安装与准备
在终端安装 CLI、登录并安装 Skill:
uv tool install "notebooklm-py[browser]"
notebooklm login
notebooklm auth check --test --json
notebooklm skill install
需要 Python 3.10+、可使用 NotebookLM 的 Google 账号和可显示登录窗口的环境。下面使用 uv 的独立工具安装方式;安装 uv 后在终端运行。完成登录后再次检查认证,不要把仅能读取本地状态当成登录成功。
第一次使用
以下内容发到 Agent 对话中,替换成自己的文件和目标:
请使用 notebooklm Skill,把 notes/course-outline.md 和 notes/student-questions.md 加入一个新的“课程设计”笔记本。等两个来源都处理完成后,列出学员最关心的5个问题并带出处。先做问答,不生成音频。
明确笔记本和资料范围
新建或选定笔记本后,保留返回的完整 ID。添加每个文件也要保存来源 ID,再等待对应资料处理完成。多个任务同时进行时,明确指定笔记本,避免依赖“当前选中项”把资料加错位置。
先用问答检查资料是否合适
先问几个能从原文件确认的问题,检查答案引用是否对应正确材料。学员问题可能来自不同课程版本,让 Agent 区分来源而不是把冲突合并成确定事实。彭涛的教程展示了先创建笔记本再加入中文文档的起点,可以沿用这种渐进方式。
生成后等待指定产物
问答确认后,再要求把指定来源整理成讲解音频、幻灯片等。异步生成返回任务标识不代表已经完成;应等待对应任务,再用同一个产物 ID 下载。Trae 社区教程展示过从本地文章到幻灯片 PDF 的流程,关键同样是等待并取回结果。
用 CLI 核对实际资料范围
如果想在让 Agent 继续前自行核对,可在终端运行以下只读命令;把占位 ID 换成新建笔记本返回的真实 ID:
notebooklm list --json
notebooklm source list -n <notebook-id> --json
notebooklm ask "课程纲要第三部分有哪些目标?" -n <notebook-id> --json
第一条确认笔记本是否存在,第二条核对本次加入的来源,第三条用一个能从原文确认的问题测试问答。若来源尚未处理完,先等它就绪;若答案引用了别的资料,核对笔记本 ID 和来源列表。不要把 notebooklm status 当成登录校验,真实认证仍用前面的 auth check --test --json。
用它整理资料时的实际边界
这个项目是社区维护的非官方客户端,依赖 NotebookLM 网页服务,接口变化、配额和登录失效都可能影响执行。将包含私人或商业机密的资料上传前,先确认可以交给 Google 服务处理。认证文件相当于账号凭据,不能贴在对话、日志或仓库里。最终交付不只说“已生成”,还要打开下载的文件,确认内容来自指定来源、语言和版式符合用途;社区教程里的产物可作为路径参考,不能保证你这次得到同样结果。
交付前检查
打开下载文件,核对内容、语言、引用和版式。确认使用的是本次指定来源与产物,而不是笔记本里先前生成的“最新文件”。认证文件应保留在本机私有配置中。
常见问题
装了 Skill 还是不能调用? Skill 与 notebooklm-py CLI 是两部分,先检查 CLI 安装与 Agent 的发现目录。
添加资料后马上问答失败? 等来源处理就绪,再开始查询或生成。
这个接口是 Google 官方的吗? 它是社区维护的非官方客户端,服务改动、配额或认证变化都可能影响使用。
资料在本机处理吗? 笔记本资料会交给 Google 服务处理。