前言

在 AI 辅助编程的日常工作中,我们经常会遇到这样的场景:需要将项目文档、技术规范、API 手册等资料上传到 NotebookLM 进行分析和查询,但同时又希望在 Claude Code 中直接调用这些知识库,避免在不同工具间频繁切换。notebooklm-skill 项目正是为解决这一痛点而生。它作为一个 Claude Code Skill,能够让你在 Claude Code 环境中直接与 Google NotebookLM 的笔记本进行交互,获取基于私有知识库的、带有引用来源的精准答案。


项目背景与技术架构

NotebookLM 的能力与局限

Google NotebookLM 是谷歌推出的一款基于 Gemini 的学术研究助手,它允许用户上传文档、网页、YouTube 视频等内容,然后基于这些材料进行智能问答。其核心优势在于:

  1. 源头可追溯:所有回答都基于用户上传的文档,并附带引用来源
  2. 多格式支持:支持 PDF、网页、视频、音频等多种素材类型
  3. 深度学习:能够理解复杂的学术和技术文档

然而,NotebookLM 存在一个明显的局限性:缺乏官方 API。用户只能通过 Web 界面进行操作,无法与其他工具(如 Claude Code、Cursor 等 AI 编程助手)进行集成。

notebooklm-py:非官方 Python API

为了解决 API 缺失的问题,teng-lin 开发了 notebooklm-py 项目(GitHub 16.5k Stars),这是一个非官方的 Python API 客户端,通过逆向工程实现了 NotebookLM 的完整功能。

核心特性

  • 笔记本管理:创建、查询、重命名、删除笔记本
  • 素材管理:支持添加 URL、YouTube 链接、本地文件(PDF/文本/Markdown/Word/EPUB/音视频/图片)、Google Drive 文件
  • 对话交互:支持提问、查看对话历史、自定义对话人设
  • 内容生成:支持生成音频概览(播客)、视频概览、幻灯片、信息图、测验题、闪卡、报告、数据表、思维导图等
  • 分享管理:支持生成公开/私有分享链接,管理用户权限

技术实现

项目使用 Playwright 进行浏览器自动化,通过复用本地浏览器 Cookie 实现免登录认证。同时支持多种使用方式:

# CLI 使用
uv tool install "notebooklm-py[browser]"
notebooklm create "My Research"
notebooklm use <notebook_id>
notebooklm ask "What are the key themes?"

# Python API 使用
from notebooklm import NotebookLMClient
import asyncio

async def main():
    async with NotebookLMClient.from_storage() as client:
        nb = await client.notebooks.create("Research")
        result = await client.chat.ask(nb.id, "Summarize this")
        print(result.answer)

asyncio.run(main())

notebooklm-skill:Claude Code 集成方案

notebooklm-skill 是基于 notebooklm-py 开发的 Claude Code Skill,它将 NotebookLM 的研究能力与 Claude 的内容生成能力桥接起来。

项目数据

  • GitHub Stars:2621
  • Fork 数:247
  • 最后更新:2025-11-21
  • 类型:MCP Server 类 Claude Skill

核心价值

  1. 无缝集成:在 Claude Code 中直接查询 NotebookLM 笔记本,无需切换工具
  2. 引用可信:所有答案都基于上传的私有文档,并附带引用来源,大幅减少幻觉
  3. 持久化认证:一次登录后可维持会话,适合重复查询场景
  4. 浏览器自动化:通过自动化操作完成和 NotebookLM 的交互流程

配图说明:文章架构图展示了 notebooklm-skill 的三层设计(Claude Code 层、MCP Server 层、NotebookLM 服务层),清晰呈现了数据流动和交互流程。


技术实现解析

架构设计

notebooklm-skill 采用三层架构设计:

  1. Claude Code / AI Agent 层:用户输入查询、获取格式化答案
  2. notebooklm-skill (MCP Server) 层:接收 Claude 的请求,调用 notebooklm-py API,格式化返回结果
  3. Google NotebookLM Web Service 层:处理文档上传和分析,基于 Gemini 生成答案并返回引用来源

关键技术点

MCP (Model Context Protocol) 集成:notebooklm-skill 实现了 MCP Server,这是 Anthropic 推出的标准化协议,用于 AI 模型与外部工具/数据源的通信。

浏览器自动化与认证:由于 NotebookLM 没有官方 API,项目使用 Playwright 模拟浏览器操作,并支持从本地浏览器导入 Cookie,避免每次都进行 Google 账号登录验证。

会话管理:为了在多次查询间保持上下文,项目实现了会话管理,包括笔记本选择、对话历史保留、素材缓存等功能。


安装与配置指南

环境要求

  • Python 3.10+
  • 本地安装的 Claude Code(不支持网页版,因为需要浏览器自动化权限)
  • Google 账号(用于访问 NotebookLM)

安装步骤

1. 克隆项目仓库
git clone https://github.com/PleasePrompto/notebooklm-skill notebooklm
cd notebooklm
2. 安装依赖
# 使用 uv(推荐)
uv pip install -r requirements.txt

# 或使用 pip
pip install -r requirements.txt
3. 安装 notebooklm-py
# 安装完整版本(包含浏览器自动化支持)
uv tool install "notebooklm-py[browser]"

# 验证安装
notebooklm --version
4. 认证配置
# 登录 NotebookLM(会打开浏览器进行 Google 账号授权)
notebooklm login

# 验证认证状态
notebooklm auth check --test --json

预期输出:

{
  "status": "ok",
  "user": "your-email@gmail.com"
}
5. 配置 Claude Code

在 Claude Code 的配置文件中添加 MCP Server:

macOS/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "notebooklm": {
      "command": "python",
      "args": ["/absolute/path/to/notebooklm-skill/main.py"],
      "env": {
        "PYTHONPATH": "/path/to/notebooklm-skill"
      }
    }
  }
}

重启 Claude Code 后,notebooklm-skill 将自动加载。


实际应用场景

场景 1:技术文档查询

需求:在开发过程中,需要频繁查询公司内部的 API 文档、技术规范等资料。

解决方案

  1. 将技术文档上传到 NotebookLM 笔记本
  2. 在 Claude Code 中直接提问,获取基于文档的精准答案,并附带引用来源

场景 2:代码库知识管理

需求:团队有大量的设计文档、架构图、历史决策记录,希望 AI 助手能够基于这些资料给出建议。

解决方案

  1. 将团队的 Confluence 文档、Notion 页面导出为 Markdown
  2. 上传到 NotebookLM
  3. 在 Claude Code 中咨询架构问题,AI 会基于上传的文档给出建议,并注明来源

高级功能

批量文档处理

支持通过命令行批量上传文档:

# 上传整个目录的 PDF 文件
for file in ./papers/*.pdf; do
  notebooklm source add "$file" --wait
done

生成多样化内容

notebooklm-py 支持生成多种格式的内容:

# 生成播客风格的音频概览
notebooklm generate audio --format engaging --length medium

# 生成幻灯片(可编辑的 PPTX 格式)
notebooklm generate slides --format presenter --output presentation.pptx

# 生成测验题(JSON 格式)
notebooklm generate quiz --difficulty hard --count 20 --format json

与其他 AI 工具集成

除了 Claude Code,还支持与 Cursor、Codex、OpenClaw 等工具集成。

配图说明:本文包含以下配图(需转换为PNG格式后上传CSDN)

  1. 封面图:notebooklm-skill-cover.png (960×540px) - 展示项目核心价值和集成关系
  2. 架构图:architecture-diagram.png - 展示三层架构设计
  3. 使用流程图:workflow-diagram.png - 展示从安装到获取答案的完整流程

项目优势与局限性

优势

  1. 开源免费:MIT 协议,可自由使用和修改
  2. 功能完整:覆盖了 NotebookLM 的所有功能,甚至包括网页端未暴露的能力(如批量下载、PPTX 导出)
  3. 多平台支持:CLI、Python API、MCP Server、REST API 四种使用方式
  4. 活跃维护:notebooklm-py 项目持续更新,目前最新版本 v0.7.1(2026年6月)

局限性

  1. 非官方 API:使用 Google 未公开的接口,可能随时失效
  2. 浏览器自动化依赖:需要安装 Playwright 和 Chromium(约 170MB)
  3. 认证复杂:需要处理 Google 账号登录,可能会遇到 CAPTCHA 验证
  4. 速率限制:受 NotebookLM 的使用限制,大量请求可能被限流

社区与生态

相关项目

  1. notebooklm-pyGitHub - teng-lin/notebooklm-py: Unofficial Python API and agentic skill for Google NotebookLM. Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw. · GitHub

    • 核心 Python API 库
    • 16.5k Stars, 2.3k Forks
  2. notebooklm-skillGitHub - PleasePrompto/notebooklm-skill: Use this skill to enable Claude Code to communicate directly with your Google NotebookLM notebooks. Query your uploaded documents and get source-grounded, citation-backed answers from Gemini. Features browser automation, library management, persistent authentication, and answers exclusively from your own knowledge base. · GitHub

    • Claude Code 集成方案
    • 2621 Stars, 247 Forks
  3. NotebookLM API Wrapper (NPM)

    • Node.js 版本的封装
    • 适用于 JavaScript/TypeScript 生态

使用建议

  1. 个人项目/原型开发:非常适合
  2. 生产环境:需要谨慎,建议添加降级方案
  3. 研究/学习:强烈推荐

总结

notebooklm-skill 项目通过桥接 Google NotebookLM 和 Claude Code,为开发者提供了一个强大的知识管理能力。它让我们能够在编程助手中直接调用私有知识库,获取带有引用来源的精准答案,而不再需要繁琐的复制粘贴。

虽然该项目使用非官方 API 存在一定的风险,但其开源特性、完整的功能覆盖、以及活跃的社区维护,使其成为 AI 辅助开发工作流中的一个有价值的工具。

对于需要频繁查询技术文档、管理团队知识库、或进行学术研究的开发者来说,notebooklm-skill 无疑是一个值得尝试的解决方案。


参考资料

  1. notebooklm-py GitHub: GitHub - teng-lin/notebooklm-py: Unofficial Python API and agentic skill for Google NotebookLM. Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—via Python, CLI, and AI agents like Claude Code, Codex, and OpenClaw. · GitHub
  2. notebooklm-skill GitHub: GitHub - PleasePrompto/notebooklm-skill: Use this skill to enable Claude Code to communicate directly with your Google NotebookLM notebooks. Query your uploaded documents and get source-grounded, citation-backed answers from Gemini. Features browser automation, library management, persistent authentication, and answers exclusively from your own knowledge base. · GitHub
  3. Google NotebookLM 官方文档: https://notebooklm.google.com
  4. Model Context Protocol (MCP): What is the Model Context Protocol (MCP)? - Model Context Protocol
  5. Playwright 官方文档: Fast and reliable end-to-end testing for modern web apps | Playwright
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐