Notebooklm
by @antonia-sz
Google NotebookLM 非官方 Python API 的 OpenClaw Skill。支持内容生成(播客、视频、幻灯片、测验、思维导图等)、文档管理和研究自动化。当用户需要使用 NotebookLM 生成音频概述、视频、学习材料或管理知识库时触发。
clawhub install notebooklm-py📖 About This Skill
name: notebooklm description: Google NotebookLM 非官方 Python API 的 OpenClaw Skill。支持内容生成(播客、视频、幻灯片、测验、思维导图等)、文档管理和研究自动化。当用户需要使用 NotebookLM 生成音频概述、视频、学习材料或管理知识库时触发。 version: 1.0.0
NotebookLM Skill
通过非官方 Python API 访问 Google NotebookLM 的全部功能。
前置要求
pip install notebooklm-py
pip install "notebooklm-py[browser]" # 首次登录需要
playwright install chromium
认证
首次使用需要登录:
notebooklm login
或使用 Edge(某些企业环境需要):
notebooklm login --browser msedge
核心功能
1. 笔记本管理
# 创建笔记本
notebooklm create "我的研究"列出所有笔记本
notebooklm list切换当前笔记本
notebooklm use 删除笔记本
notebooklm delete
2. 添加来源
# 添加网页
notebooklm source add "https://example.com/article"添加本地文件(PDF、Word、Markdown、音频、视频、图片)
notebooklm source add "./paper.pdf"
notebooklm source add "./lecture.mp3"添加 YouTube 视频
notebooklm source add "https://youtube.com/watch?v=xxx"执行网络研究并自动导入
notebooklm source add-research "人工智能发展趋势" --mode deep
3. 内容生成
# 生成音频概述(播客)
notebooklm generate audio "让内容更生动有趣" --wait生成视频概述
notebooklm generate video --style whiteboard --wait生成电影风格视频
notebooklm generate cinematic-video "纪录片风格总结" --wait生成幻灯片
notebooklm generate slide-deck生成信息图
notebooklm generate infographic --orientation landscape生成测验
notebooklm generate quiz --difficulty hard --quantity 10生成记忆卡片
notebooklm generate flashcards --quantity 20生成思维导图
notebooklm generate mind-map生成数据表格
notebooklm generate data-table "对比主要观点"生成报告
notebooklm generate report "研究简报"
音频格式选项:
deep-dive - 深入探讨brief - 简要概述critique - 批判性分析debate - 辩论形式视频风格选项:
whiteboard - 白板风格news - 新闻风格cinematic - 电影风格4. 下载生成的内容
# 下载音频(播客)
notebooklm download audio ./podcast.mp3下载视频
notebooklm download video ./overview.mp4下载幻灯片(支持 PDF 和 PPTX)
notebooklm download slide-deck ./slides.pdf
notebooklm download slide-deck --format pptx ./slides.pptx下载测验(支持 JSON、Markdown、HTML)
notebooklm download quiz --format json ./quiz.json
notebooklm download quiz --format markdown ./quiz.md下载记忆卡片
notebooklm download flashcards --format json ./flashcards.json下载思维导图
notebooklm download mind-map ./mindmap.json下载信息图
notebooklm download infographic ./infographic.png下载数据表格
notebooklm download data-table ./data.csv
5. 聊天问答
# 向笔记本提问
notebooklm ask "总结核心观点"
notebooklm ask "解释这个概念"使用自定义人格
notebooklm ask "用简单的语言解释" --persona "友好导师"
完整工作流示例
学术研究转播客
# 1. 创建笔记本
notebooklm create "论文解读"2. 上传论文 PDF
notebooklm source add "./research-paper.pdf"3. 生成播客(深入探讨风格)
notebooklm generate audio "深入分析研究方法" --format deep-dive --wait4. 下载 MP3
notebooklm download audio ./paper-podcast.mp3
批量视频生成
# 1. 创建笔记本并添加多个来源
notebooklm create "课程笔记"
notebooklm source add "./lecture1.pdf"
notebooklm source add "./lecture2.pdf"
notebooklm source add "https://reference-site.com"2. 生成白板风格教学视频
notebooklm generate video --style whiteboard --wait3. 同时生成测验检验学习效果
notebooklm generate quiz --difficulty medium4. 下载所有材料
notebooklm download video ./lesson.mp4
notebooklm download quiz --format markdown ./quiz.md
研究项目自动化
# 1. 执行深度网络研究
notebooklm create "市场调研"
notebooklm source add-research "2024年电动汽车市场趋势" --mode deep2. 生成综合分析报告
notebooklm generate report "市场分析报告"3. 生成数据对比表格
notebooklm generate data-table "对比主要厂商的市场份额"4. 生成演示幻灯片
notebooklm generate slide-deck5. 批量下载所有材料
notebooklm download report ./report.md
notebooklm download data-table ./data.csv
notebooklm download slide-deck ./presentation.pdf
Python API 使用
当需要更复杂的逻辑时,使用 Python API:
import asyncio
from notebooklm import NotebookLMClientasync def research_workflow():
async with await NotebookLMClient.from_storage() as client:
# 创建笔记本
nb = await client.notebooks.create("自动化研究")
# 批量添加来源
await client.sources.add_url(nb.id, "https://example.com/1", wait=True)
await client.sources.add_file(nb.id, "./doc.pdf", wait=True)
# 生成内容
status = await client.artifacts.generate_audio(
nb.id,
instructions="制作引人入胜的播客",
format="deep-dive"
)
await client.artifacts.wait_for_completion(nb.id, status.task_id)
# 下载
await client.artifacts.download_audio(nb.id, "output.mp3")
return nb.id
运行
nb_id = asyncio.run(research_workflow())
print(f"完成!笔记本ID: {nb_id}")
故障排查
# 检查认证状态
notebooklm auth check --test查看元数据
notebooklm metadata --json查看分享状态
notebooklm share status列出支持的语言
notebooklm language list