关于 notebooklm
通过浏览器自动化操作 NotebookLM 的技能,可读取笔记本、添加来源、创建笔记本并生成 Studio 内容。适用于需要在 NotebookLM 网页界面中管理资料和启动输出生成的用户;非浏览器自动化环境下无法运行。
主要功能
- 01读取并提取笔记本内容
- 02添加网址、文本、文件或 Google Doc
- 03创建笔记本并添加初始来源
- 04生成 Studio 报告及多媒体内容
- 05按界面状态确认操作与异步任务
适用场景
- 01向现有笔记本添加研究资料
- 02向笔记本提问并整理回答
- 03创建含初始来源的新笔记本
- 04启动音频概览或幻灯片生成
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill notebooklm安装后在 Claude Code 中输入/notebooklm确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/async_action_discipline.mdbrowser_automation_canon.mdstudio_output_custom_prompts.mdscripts/action_router.pyasync_action_classifier.pycustom_prompt_template_generator.py详细介绍
NotebookLM — 浏览器自动化
**要求:**需要浏览器自动化环境(带 computer-use 的 Claude Code CLI、Claude Chrome Extension 或同等环境)。在非自动化环境中,此技能会优雅地失败,并显示清晰的“不支持”消息。
**重要:**此技能是 v2 集合中唯一的浏览器自动化技能。它不遵循 research-pack Agent Integrity Rules 约定。此处适用不同的限制(UI 动态变化、异步生成、登录墙)。
第 0 步:浏览器上下文设置(必需)
在执行任何其他操作之前,确认浏览器自动化可用:
- 检查运行环境中是否已加载浏览器控制工具(screenshot、click、find-element、navigate)
- 如果不可用 → 停止并显示清晰的消息:“此技能需要浏览器自动化。当前环境为 {context}。无法继续。请使用带 computer-use 的 Claude Code CLI、Claude Chrome Extension 或同等环境。”
- 如果可用 → 截取初始屏幕截图,并导航至 https://notebooklm.google.com
- **通过屏幕截图检测登录墙。**如果检测到登录页面,则停止并显示:“请先在浏览器中登录 NotebookLM,然后重新调用此技能。”切勿尝试自动处理登录。
阶段 0:引导式问询(操作路由)
最多提出 4 个强制性问题,每次一个,并按依赖关系排序。大多数调用会在 Q3 结束。
Q1(根问题)— 操作
你想让我做什么?请选择一项:
- 阅读 / 提取 — 向现有笔记本提问
- 添加来源 — 将内容(URL、文本、文件、Google Doc 或综合生成的内容)添加到笔记本
- 生成 Studio 输出 — 音频 / 视频概览、思维导图、报告(简报文档、学习指南、常见问题、时间线)、抽认卡、测验、信息图或幻灯片 — 具体选项以 Studio 面板当前显示为准
- 创建新笔记本 — 创建笔记本并设置标题 + 初始来源
*为什么要问:*每项操作在 UI 中的流程都不同,需要的参数也不同。提前确定操作可以避免不必要的屏幕截图,并让我只询问相关的后续问题。
**必须选择。**如果用户只说“打开 NotebookLM”,但没有指定操作,则拒绝开始并重新询问 Q1。
Q2(取决于 Q1)— 笔记本身份
要使用哪个笔记本?(适用于操作 1、2、3;“创建新笔记本”除外)
*为什么要问:*如果你提供名称,我会在主页上搜索;如果你提供 URL,我会直接导航过去。对于有歧义的名称,我会通过屏幕截图提示你进行消歧。
对于操作 4(创建新笔记本):将问题替换为“新笔记本的标题是什么?”
Q3(取决于 Q1)— 操作专属参数
操作 1(阅读 / 提取):
“你想向笔记本提什么问题?请用自然的措辞——笔记本的聊天功能最擅长处理这类问题。”
操作 2(添加来源):
“来源类型是什么?请选择一项:
- URL / 网站 / YouTube 链接
- 复制的文本(粘贴到这里,或指明内容位置)
- 上传文件(提供绝对路径)
- Google Doc(链接)
- 综合生成的内容(我会预处理内容,并以‘复制的文本’形式添加)
*为什么要问:*每种来源类型在“添加来源”对话框中都有不同的子流程。提前选择可以省去一个步骤。”
操作 3(Studio 输出):
“你想要哪种 Studio 输出?截至 2026-06,Studio 面板提供音频概览、视频概览、思维导图、报告(简报文档 / 学习指南 / 常见问题 / 时间线 / 自定义)、抽认卡、测验、信息图和幻灯片——我会先截取实时面板的屏幕截图,确认你的账号实际显示哪些选项,然后再点击。另外:是否有自定义提示词方向?**默认提示词生成的结果质量一般——我总会打开自定义菜单并编写详细的提示词。**请告诉我想要的角度或受众。
*为什么要问:*输出类型决定需要查找哪个 UI 按钮。自定义提示词是确保质量的必要条件。”
操作 4(创建新笔记本):
“初始来源是什么?请提供 URL、文件路径,或回复‘稍后添加’。”
Q4(依赖于 Q1 = 操作 3)— Studio 自定义提示词详情
请告诉我 Studio 输出的角度、受众和长度。示例:
- Audio Overview:“面向非技术背景高管的双主持人对话,时长 8–10 分钟,重点关注业务影响,不深入探讨技术细节”
- Infographic:“决策树风格,以行动为导向,最多 6 个面板,单色海军蓝”
- Study Guide:“本科生水平,每个概念提供定义 + 3 道练习题”
询问原因: 这些内容会成为自定义提示词。Studio 默认提示词生成的效果平平无奇,明确具体的指示才能带来出色效果。
仅在生成 Studio 输出时询问(Q1=3)。其他情况跳过。
**停止条件:**完成 Q4 后(或因依赖关系跳过 Q4 后),提交并开始执行操作序列。
规范请参阅 references/studio_output_custom_prompts.md。
Notebook 发现
对于操作 1–3(需要已有 notebook):
- 前往主页 → 截图
- 如果用户提供了 URL → 直接前往
- 如果用户提供了名称:
- 使用语义 find(),根据可见标题文本查找 notebook 卡片
- 如果有多个匹配项 → 截取主页,列出选项并请用户指定
- 如果没有匹配项 → 请用户提供 URL 或确认拼写
对于操作 4(新建):
- 在主页找到“New notebook”按钮
- 点击 → 根据 Q2 设置标题
- 根据 Q3 添加初始来源
操作 1:阅读 / 提取
- 打开 notebook(见上文的 notebook 发现)
- 定位聊天输入框(使用语义 find 或截图坐标)
- 输入问题(使用 Q3 中用户自然表达的措辞)
- 提交(按 Enter 或点击发送按钮)
- 等待 3–5 秒
- 截取回复区域
- 以清晰易读的格式提取并呈现(不要直接复制原始聊天记录)
操作 2:添加来源
不同来源类型的子流程:
| 类型 | UI 流程 |
|---|---|
| URL / 网站 / YouTube | Add Source → Link → 粘贴 URL |
| 复制的文本 | Add Source → Copied text → 粘贴内容 |
| 文件上传 | 使用文件上传工具,并提供绝对路径 + 输入引用(绝不点击原生文件选择器) |
| Google Doc | Add Source → Google Docs → 云端硬盘选择器 |
| 综合整理的内容 | 在其他位置预处理内容,然后以 Copied text 形式添加 |
**每次添加后:**等待摄取加载指示器结束,并截图确认成功。
**综合整理内容的模式(效果显著):**不要让 NotebookLM 直接摄取可能包含大量噪声内容的原始 URL,而应先预处理内容(提取正文,移除导航栏、广告和评论),然后以“复制的文本”形式添加。这样生成的摘要质量会大幅提升。
操作 3:Studio 输出
**先查看,不要想当然。**NotebookLM 的 Studio 清单会随着版本推出和账号级别变化而改变。截至上次验证(2026-06),面板提供:Audio Overview、Video Overview、Mind Map、Reports(Briefing Doc、Study Guide、FAQ、Timeline、自定义报告格式)、Flashcards、Quiz、Infographic、Slides。请将此列表视为参考,而非最终依据——实时 Studio 面板的截图才是权威信息。NotebookLM 的 UI 更新很快;请以当前产品为准进行核实,并在此部分内容有变化时更新(Studio 清单上次核实于 2026-06)。
必须遵循的工作流:
- 找到 Studio 面板(位于右侧;可能需要切换显示),并截屏——你看到的磁贴才是此账号实际可用的输出类型
- 找到请求类型对应的输出按钮(如果不可见,请先检查“Discover more”或溢出菜单,再判断该输出不可用)
- 打开自定义菜单(按钮旁的箭头)——不要点击主按钮
- 编写详细的自定义提示词(根据 Q4)
- 确认并提交
- 不要等待生成完成——确认生成已开始,通知用户,然后返回
自定义提示词示例(4 种输出类型)
音频概览:
"由一位研究人员和一位经验丰富的从业者进行双人对话。受众:正在做预算决策的非技术高管。时长:8-10 分钟。重点关注业务影响,而非技术细节。每个主要观点都配一个具体示例。简要回应反方观点。"
信息图:
"采用决策树风格。以行动为导向(每个面板结尾都要给出决策或行动)。最多 6 个面板。单色海军蓝 + 琥珀色强调。每个面板包含:标题(4-6 个词)、1-2 句正文、决策/行动行。不要添加填充面板。"
学习指南:
"本科生水平(定义每个技术术语)。结构:6 个概念 × 每个概念 4 个要素(定义 / 重要性 / 一个完整示例 / 3 道练习题)。练习题应属于布鲁姆分类法中的高阶认知题(应用/分析),而非记忆题。"
幻灯片(幻灯片组):
"最多 12 张幻灯片。每张幻灯片的正文为 1-2 句。每张幻灯片都附上演讲者备注,包含:一个具体示例 + 一个可能的听众异议 + 如何回应。幻灯片正文中不要使用项目符号——只写散文。最后以一张号召行动的幻灯片收尾。"
更多内容请参阅 references/studio_output_custom_prompts.md。
操作 4:创建新笔记本
- 前往首页
- 点击 "New notebook"
- 使用 Q2 设置标题
- 添加 Q3 中的初始来源(针对每种来源类型使用操作 2 的子流程)
- 等待自动摘要生成(这一步确实是同步的——通常会在 30 秒内完成)
- 截取最终状态的屏幕截图
关键异步行为
异步输出规则: 对于 Studio 生成内容(尤其是音频概览——需要 5-10 分钟),请勿等待完成。用户的会话会超时。
工作流:点击 Generate → 通过屏幕截图确认生成已开始 → 告诉用户“正在生成——NotebookLM 准备就绪后会通知你” → 结束任务。
这就是触发并通知模式。它不同于添加来源和自动摘要(这些操作足够快,可以等待)。
使用 scripts/async_action_classifier.py 判断每项操作应等待还是通知:
| 操作 | 等待? |
|---|---|
| 添加来源(URL/文本/文件) | 是——等待导入进度指示器(约 5-30 秒) |
| 阅读/提取(聊天) | 是——等待 3-5 秒以获取回复 |
| Studio:音频概览 | 否——触发并通知(5-10 分钟) |
| Studio:视频概览 | 否——触发并通知(5-15 分钟) |
| Studio:信息图 / 幻灯片 / 思维导图 | 否——触发并通知(2-5 分钟) |
| Studio:学习指南 / 简报文档 / 常见问题 / 闪卡 / 测验 | 是——等待约 30-60 秒 |
| 创建新笔记本 | 是——等待自动摘要(<30 秒) |
# Verdict + paste-ready notify message for any action
python3 scripts/async_action_classifier.py --action "video overview"
# -> Verdict: FIRE_AND_NOTIFY, estimated 5-15 minutes, with the exact
# "NOT waiting in this session" message to relay to the user
规范请参阅 references/async_action_discipline.md。
截图优先规范
NotebookLM 是一个动态 SPA,界面会因以下情况而异:
- 账号套餐(免费版、Plus 版或 Enterprise 版)
- 功能发布进度(部分 Studio 类型尚未向所有用户开放)
- 最近的界面变更(Google 经常迭代产品)
**每次 UI 操作前都必须先截图。**原因:
- 操作前确认 UI 符合预期
- 尽早发现登录墙
- 检测意外的布局变化
- 为调试保留审计记录
每次进行有意义的 UI 交互前,都要使用 screenshot()(或浏览器自动化工具中的等效功能)。
规范请参阅 references/browser_automation_canon.md。
点击前先 find()
只要可行,优先使用语义元素查找器,而非像素坐标:
- ✅
find(text="Audio Overview")→ 无论元素位置如何都能返回该元素 - ❌
click(x=420, y=380)→ UI 重新排列时就会失效
语义查找器能够适应轻微的 UI 变化,像素坐标则不行。
仅在以下情况下才使用坐标:
- 语义 find() 未返回任何结果
- 元素没有稳定的文本/aria-label/data-attribute
- 视觉位置是唯一可靠的信号
将输出保存到工作区
对于能产生有用信息的读取/提取操作:
- 清理提取的聊天回复(去除 UI 界面元素)
- 整理格式,便于阅读(酌情使用段落、列表、代码块)
- 如果用户提出了请求 → 保存到文件(
${WORKSPACE}/notebooklm/<notebook-slug>-<action>-<date>.md) - 否则 → 在聊天中以最终摘要的形式返回
对于 Studio 输出:
- NotebookLM 会托管输出(Audio Overview 在应用内查看,信息图可下载,等等)
- 告知用户输出的位置(URL 或应用内导航路径)
- 不要尝试将 Studio 输出下载/保存到本地工作区——这由 NotebookLM 负责
报告格式
完成任何操作后:
- 如果在视觉上有相关性,截取最终屏幕截图
- 提供简洁的摘要(而非原始聊天内容):
- 使用的笔记本(名称)
- 执行的操作(具体内容)
- 结果(1-2 句话)
- 对于生成的输出:创建了什么 + 所在位置 + 何时就绪
- 对于触发后通知的操作:明确说明“NotebookLM 会在就绪时通知你”
错误处理
| 失败情况 | 行为 |
|---|---|
| 浏览器自动化不可用 | 立即失败,并显示“此技能需要浏览器自动化”消息(在步骤 0 停止) |
| 检测到登录墙 | 停止。告知用户登录。不要尝试自动登录。 |
| 有多个笔记本与名称匹配 | 截取首页屏幕截图,列出选项,并请用户指定 |
| 来源导入的加载动画卡住超过 60 秒 | 说明超时,并询问用户是否要重试 |
| 面板中找不到 Studio 按钮 | 向下滚动或查找“Discover more”;如果仍未找到,说明该功能可能尚未对这个账户启用 |
| 10 秒内未显示聊天回复 | 截取屏幕截图,检查是否处于错误状态,然后重试一次 |
| 页面布局意外改变 | 截取屏幕截图,描述当前可见内容,并请用户提供指示 |
工具
| 脚本 | 作用 |
|---|---|
scripts/action_router.py | 将 Q1-Q4 的回答转换为操作计划 + UI 流程 + 所需参数 |
scripts/custom_prompt_template_generator.py | 将 Studio 输出类型 + 受众 + 长度转换为自定义提示词初稿 |
scripts/async_action_classifier.py | 将操作名称转换为等待或通知模式(对于耗时生成,采用触发后通知) |
参考资料
references/browser_automation_canon.md— 截图优先 + 点击前查找 + 工具无关模式(7+ 个来源)references/studio_output_custom_prompts.md— 默认设置为何效果平平 + 按输出类型分类的模板(7+ 个来源)references/async_action_discipline.md— 面向耗时 UI 操作的触发后通知模式(7+ 个来源)
应拒绝的反模式
- 使用缺乏抽象的特定工具名称(例如,硬编码“Claude Chrome Extension”)
- 同步等待 Studio 生成内容(尤其是 Audio Overview)
- 在各项操作之间跳过屏幕截图
- 有语义化
find()可用时仍使用像素坐标 - 尝试自动处理登录流程
- 未打开自定义菜单就生成 Studio 输出
- 使用默认 Studio 提示词(始终编写自定义提示词)
版本: 1.0.0
来源规范: megaprompts/03-notebooklm-megaprompt.md(维护者本地草稿规范——已被 gitignore 忽略,不存在于公开仓库中)
构建模式: 路径 B(直接转换)。浏览器自动化形式——有别于 research-pack 约定。