NotebookLM Skills 对比分析
📚 概述
在 Obsidian 知识库中,有三个与 NotebookLM 相关的 Skills:
- notebooklm-py - Python API 封装
- notebooklm-skill - 浏览器自动化查询
- anything-to-notebooklm - 多源内容处理器
本文档详细对比这三个 Skills 的实现原理、功能特性和使用场景,帮助你选择合适的工具。
🔍 三个 Skills 基本信息
1. notebooklm-py
- 路径:
.claude/skills/notebooklm-py/ - 来源: https://github.com/teng-lin/notebooklm-py
- 版本: v0.3.2
- 实现方式: Python API(直接调用 Google API)
- 主要功能: 完整的 NotebookLM API 封装
2. notebooklm-skill
- 路径:
.claude/skills/notebooklm-skill/ - 来源: https://github.com/PleasePrompto/notebooklm-skill
- 实现方式: 浏览器自动化(Playwright/Patchright)
- 主要功能: 问答查询、文档检索
3. anything-to-notebooklm
- 路径:
.claude/skills/anything-to-notebooklm/ - 来源: 本地创建
- 实现方式: CLI 编排器(调用 notebooklm-py)
- 主要功能: 多源内容处理和生成
📊 详细对比表
| 特性 | notebooklm-py | notebooklm-skill | anything-to-notebooklm |
|---|---|---|---|
| 技术实现 | Python API | 浏览器自动化 | CLI 编排器 |
| 底层依赖 | Google NotebookLM API | Playwright | notebooklm-py CLI |
| 对话保存在网页 | ❌ 不会 | ✅ 会 | ❌ 不涉及对话 |
| 主要用途 | API 操作 | 问答查询 | 内容生成 |
| 上传文件 | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| 支持格式 | URL, 文件, YouTube | 仅查询 | URL, 文件, 微信, YouTube, PDF, EPUB等 |
| 生成播客 | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| 生成PPT | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| 生成思维导图 | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| 生成Quiz | ✅ 支持 | ❌ 不支持 | ✅ 支持 |
| 提问功能 | ✅ 支持 | ✅ 支持 | ❌ 主要不是提问 |
| 提问方式 | API 调用 | 浏览器输入框 | API 调用 |
| 执行速度 | 快 | 慢(需打开浏览器) | 快 |
| 可靠性 | 依赖 API 稳定性 | 依赖页面结构 | 依赖 API 稳定性 |
| 网页可见对话 | ❌ | ✅ | ❌ |
🔬 深度分析
notebooklm-py:基础 API 工具
实现原理
核心技术:
1. Python Async API
2. Google NotebookLM undocumented API
3. 认证:storage_state.json (cookies)
4. 通信:HTTP RPC 调用
工作流程:
用户命令 → CLI → API 调用 → 返回结果核心特性
功能完整度:
- ✅ 笔记本管理(创建、列表、删除、重命名)
- ✅ 源文件管理(添加、列表、删除、等待)
- ✅ 对话功能(提问、继续对话)
- ✅ 内容生成(播客、视频、PPT、Quiz、思维导图等)
- ✅ 下载功能(支持多种格式)
优势:
- 功能最全面
- 速度快(直接 API)
- 适合自动化脚本
- 支持批量操作
局限:
- 对话不会显示在 NotebookLM 网页界面
- 依赖未文档化的 Google API
- 可能受速率限制影响
典型使用场景
# 创建笔记本
notebooklm create "研究项目"
# 上传文件
notebooklm source add ./paper.pdf
notebooklm source add https://example.com/article
# 提问
notebooklm ask "总结核心观点"
notebooklm ask --new "新的问题"
# 生成播客
notebooklm generate audio "制作一个有趣的讨论"
notebooklm artifact wait <task_id>
notebooklm download audio ./podcast.mp3
# 批量操作
for file in *.pdf; do
notebooklm source add "$file"
donenotebooklm-skill:浏览器自动化查询工具
实现原理
核心技术:
1. Playwright(Patchright)- 浏览器自动化
2. 持久化浏览器配置(user_data_dir)
3. Cookie 注入(绕过 Playwright bug)
4. CSS 选择器定位元素
工作流程:
用户提问 → 打开浏览器 → 加载配置 → 导航到 NotebookLM
→ 定位输入框 → 模拟人类输入 → 提交 → 等待响应
→ 提取答案 → 关闭浏览器核心代码逻辑
浏览器启动:
# 使用持久化配置(保留登录状态)
context = BrowserFactory.launch_persistent_context(
playwright,
user_data_dir="./data/browser_state/browser_profile",
headless=False # 可视化模式
)页面导航:
page.goto(notebook_url)
page.wait_for_url("https://notebooklm.google.com/")模拟人类输入:
# 逐字输入,带随机延迟
StealthUtils.human_type(page, input_selector, question)等待响应:
# 检查"thinking"状态
thinking_element = page.query_selector('div.thinking-message')
if thinking_element.is_visible():
# 还在思考,继续等待
pass
# 轮询检查答案文本稳定性
stable_count = 0
if text == last_text:
stable_count += 1
if stable_count >= 3: # 连续3次相同 = 稳定
answer = text提取答案:
RESPONSE_SELECTORS = [
"div.markdown-content", # Markdown内容
"div.response-text", # 纯文本
]
answer = latest.inner_text()核心特性
优势:
- ✅ 对话会保存在 NotebookLM 网页界面
- ✅ 模拟真人操作,不易被检测
- ✅ 可以看到完整对话上下文
- ✅ 支持所有 NotebookLM 网页功能
局限:
- 速度较慢(每次都要打开浏览器)
- 依赖页面结构(NotebookLM 改版可能失效)
- 需要图形界面(不能在无头服务器运行)
- 不支持内容生成(播客、PPT等)
典型使用场景
# 查询文档
python scripts/run.py ask_question.py \
--question "什么是递归提问法?" \
--notebook-id 121e56c0-05ae-4135-9a51-f2b3d8b453a6
# 使用 URL 直接查询
python scripts/run.py ask_question.py \
--question "总结核心观点" \
--notebook-url "https://notebooklm.google.com/notebook/..."
# 显示浏览器(调试用)
python scripts/run.py ask_question.py \
--question "测试问题" \
--show-browseranything-to-notebooklm:内容处理流水线
实现原理
核心架构:
输入(多源内容)→ 类型识别 → 内容获取 → 格式转换
→ 上传到 NotebookLM → 生成内容 → 下载到本地
依赖工具:
1. notebooklm-py (CLI) - 核心 API 调用
2. markitdown - 文档格式转换
3. WebSearch - 搜索关键词
4. wexin-read-mcp (MCP) - 微信公众号抓取内容处理流程
1️⃣ 微信公众号文章:
输入: https://mp.weixin.qq.com/s/abc123
↓
MCP 工具: read_weixin_article
↓
提取: title, author, publish_time, content
↓
保存: /tmp/weixin_xxx.txt
↓
上传: notebooklm source add /tmp/weixin_xxx.txt2️⃣ 网页链接:
输入: https://example.com/article
↓
直接: notebooklm source add https://example.com/article
↓
NotebookLM 自动抓取网页内容3️⃣ YouTube 视频:
输入: https://youtube.com/watch?v=xxx
↓
直接: notebooklm source add https://youtube.com/watch?v=xxx
↓
NotebookLM 自动提取字幕4️⃣ 本地文件(PDF/EPUB/DOCX等):
输入: /path/to/file.pdf
↓
转换: markitdown /path/to/file.pdf -o /tmp/converted.md
↓
保存: /tmp/file_converted_{timestamp}.txt
↓
上传: notebooklm source add /tmp/file_converted_xxx.txt5️⃣ 图片(OCR):
输入: /path/to/image.jpg
↓
OCR: markitdown --ocr /path/to/image.jpg
↓
提取: 文字内容
↓
上传: notebooklm source add /tmp/ocr_xxx.txt6️⃣ 音频文件:
输入: /path/to/audio.mp3
↓
转录: markitdown --transcribe /path/to/audio.mp3
↓
提取: 转录文本
↓
上传: notebooklm source add /tmp/transcript_xxx.txt7️⃣ 搜索关键词:
输入: "AI发展趋势 2026"
↓
搜索: WebSearch 工具
↓
汇总: 前 3-5 条结果
↓
保存: /tmp/search_AI发展趋势2026_xxx.txt
↓
上传: notebooklm source add /tmp/search_xxx.txt生成内容的流程
上传完成后 → 生成播客/视频/PPT等
↓
发起: notebooklm generate audio "instructions"
↓
等待: notebooklm artifact wait <task_id> --timeout 600
↓
下载: notebooklm download audio ./podcast.mp3核心特性
支持的内容源(10+ 种):
- ✅ 微信公众号文章
- ✅ 任意网页链接
- ✅ YouTube 视频
- ✅ Office 文档(Word、PowerPoint、Excel)
- ✅ 电子书(PDF、EPUB)
- ✅ Markdown 文件
- ✅ 图片(OCR识别)
- ✅ 音频文件(语音转文字)
- ✅ 搜索关键词
支持的内容生成:
- ✅ 播客(Audio Overview)
- ✅ 视频(Video Overview)
- ✅ PPT(Slide Deck)
- ✅ 思维导图(Mind Map)
- ✅ Quiz(测验)
- ✅ Flashcards(记忆卡片)
- ✅ 报告(Report)
- ✅ 信息图(Infographic)
- ✅ 数据表(Data Table)
典型使用场景
# 微信文章 → 播客
把这篇文章生成播客 https://mp.weixin.qq.com/s/abc123
# YouTube 视频 → 思维导图
这个视频帮我画个思维导图 https://www.youtube.com/watch?v=abc123
# PDF → PPT
这个 PDF 帮我做成 PPT /path/to/file.pdf
# 搜索关键词 → 报告
搜索 'AI发展趋势 2026' 并生成报告🎯 选择指南
场景 1:需要在网页查看对话
需求:
- ✅ 对话要保存在 NotebookLM 网页界面
- ✅ 可以手动查看对话历史
- ✅ 不需要批量自动化
选择:notebooklm-skill
场景 2:批量自动化操作
需求:
- ✅ 批量上传文件
- ✅ 批量生成播客/PPT
- ✅ 自动化脚本集成
- ❌ 不需要在网页查看对话
选择:notebooklm-py
场景 3:多源内容处理
需求:
- ✅ 处理微信公众号文章
- ✅ 处理 YouTube 视频
- ✅ 处理各种格式文档
- ✅ 自动转换格式
- ✅ 生成播客/PPT/思维导图
选择:anything-to-notebooklm
场景 4:查询知识库
需求:
- ✅ 向已有笔记提问
- ✅ 获取基于源文件的答案
- ✅ 减少幻觉(只基于文档回答)
选择:
- 如果要在网页看对话 → notebooklm-skill
- 如果自动化查询 → notebooklm-py
场景 5:内容创作
需求:
- ✅ 将文档转换为播客
- ✅ 生成 PPT 演示文稿
- ✅ 生成思维导图
- ✅ 生成 Quiz/Flashcards
选择:
- 单个笔记本 → notebooklm-py
- 多源处理 → anything-to-notebooklm
🔄 实际案例:私教沟通文稿知识点提取
任务需求
- 上传两个腾讯会议文稿到 NotebookLM
- 对每个文稿单独提问
- 对话要保存在 NotebookLM 网页界面
最佳方案
使用 notebooklm-skill
原因:
- ✅ 对话会保存在网页界面(满足需求3)
- ✅ 支持单独对每个源提问(满足需求2)
- ✅ 虽然上传文件慢,但只需要上传2个文件
操作流程:
# 1. 使用 notebooklm-py 创建笔记本并上传文件(快速)
notebooklm create "2026.01.28-私教沟通-宋盼儿"
notebooklm source add 文稿1.md
notebooklm source add 文稿2.md
# 2. 使用 notebooklm-skill 单独提问(对话保存到网页)
python scripts/run.py ask_question.py \
--question "提示词" \
--notebook-id <ID> \
--source <文稿1源ID>
python scripts/run.py ask_question.py \
--question "提示词" \
--notebook-id <ID> \
--source <文稿2源ID>📝 总结
核心区别
-
notebooklm-py = 基础 API 工具
- 提供所有底层能力
- 对话不会保存在网页
-
notebooklm-skill = 网页自动化查询工具
- 使用浏览器模拟真人操作
- 对话会保存在网页 ← 关键特性!
-
anything-to-notebooklm = 内容处理流水线
- 调用 notebooklm-py
- 专注于内容上传和生成
- 不关心对话是否保存
选择建议
| 你的需求 | 推荐工具 | 理由 |
|---|---|---|
| 对话要保存在网页 | notebooklm-skill | 浏览器自动化 |
| 批量生成播客/PPT | notebooklm-py | 快速 API 调用 |
| 处理微信/YouTube | anything-to-notebooklm | 多源支持 |
| 知识库查询 | notebooklm-skill | 减少幻觉 |
| 自动化脚本 | notebooklm-py | CLI 友手 |
组合使用
这三个 Skills 可以互相配合:
# 步骤1: 使用 notebooklm-py 快速创建笔记本并上传文件
notebooklm create "项目研究"
notebooklm source add *.pdf
# 步骤2: 使用 notebooklm-skill 查询文档(对话保存在网页)
python scripts/run.py ask_question.py \
--question "总结所有PDF的核心观点" \
--notebook-id <ID>
# 步骤3: 使用 notebooklm-py 生成播客(可以自己听)
notebooklm generate audio "制作10分钟精华版"
notebooklm download audio ./summary.mp3创建时间:2026-01-29
最后更新:2026-01-29
作者:苏苏
标签:#NotebookLM Skills Claude-Code 工具对比
