NotebookLM Skills 对比分析

📚 概述

在 Obsidian 知识库中,有三个与 NotebookLM 相关的 Skills:

  1. notebooklm-py - Python API 封装
  2. notebooklm-skill - 浏览器自动化查询
  3. anything-to-notebooklm - 多源内容处理器

本文档详细对比这三个 Skills 的实现原理、功能特性和使用场景,帮助你选择合适的工具。


🔍 三个 Skills 基本信息

1. notebooklm-py

2. notebooklm-skill

3. anything-to-notebooklm

  • 路径: .claude/skills/anything-to-notebooklm/
  • 来源: 本地创建
  • 实现方式: CLI 编排器(调用 notebooklm-py)
  • 主要功能: 多源内容处理和生成

📊 详细对比表

特性notebooklm-pynotebooklm-skillanything-to-notebooklm
技术实现Python API浏览器自动化CLI 编排器
底层依赖Google NotebookLM APIPlaywrightnotebooklm-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 调用
 
工作流程:
用户命令 → CLIAPI 调用 → 返回结果

核心特性

功能完整度

  • ✅ 笔记本管理(创建、列表、删除、重命名)
  • ✅ 源文件管理(添加、列表、删除、等待)
  • ✅ 对话功能(提问、继续对话)
  • ✅ 内容生成(播客、视频、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"
done

notebooklm-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-browser

anything-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.txt

2️⃣ 网页链接

输入: 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.txt

5️⃣ 图片(OCR)

输入: /path/to/image.jpg

OCR: markitdown --ocr /path/to/image.jpg

提取: 文字内容

上传: notebooklm source add /tmp/ocr_xxx.txt

6️⃣ 音频文件

输入: /path/to/audio.mp3

转录: markitdown --transcribe /path/to/audio.mp3

提取: 转录文本

上传: notebooklm source add /tmp/transcript_xxx.txt

7️⃣ 搜索关键词

输入: "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

🔄 实际案例:私教沟通文稿知识点提取

任务需求

  1. 上传两个腾讯会议文稿到 NotebookLM
  2. 对每个文稿单独提问
  3. 对话要保存在 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>

📝 总结

核心区别

  1. notebooklm-py = 基础 API 工具

    • 提供所有底层能力
    • 对话不会保存在网页
  2. notebooklm-skill = 网页自动化查询工具

    • 使用浏览器模拟真人操作
    • 对话会保存在网页 ← 关键特性!
  3. anything-to-notebooklm = 内容处理流水线

    • 调用 notebooklm-py
    • 专注于内容上传和生成
    • 不关心对话是否保存

选择建议

你的需求推荐工具理由
对话要保存在网页notebooklm-skill浏览器自动化
批量生成播客/PPTnotebooklm-py快速 API 调用
处理微信/YouTubeanything-to-notebooklm多源支持
知识库查询notebooklm-skill减少幻觉
自动化脚本notebooklm-pyCLI 友手

组合使用

这三个 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 工具对比