Co-Pilot / 辅助式
更新于 a month ago

notebooklm-py

Tteng-lin
1.5k
teng-lin/notebooklm-py
82
Agent 评分

💡 摘要

一个用于Google NotebookLM的Python API,支持高级研究自动化和内容生成。

🎯 适合人群

寻找自动化工具的研究人员需要多种输出格式的内容创作者将AI能力集成到应用程序中的开发者创建互动学习材料的教育工作者寻求高效数据处理的数据分析师

🤖 AI 吐槽:看起来很能打,但别让配置把人劝退。

安全分析中风险

风险:Medium。建议检查:是否执行 shell/命令行指令;是否发起外网请求(SSRF/数据外发);依赖锁定与供应链风险。以最小权限运行,并在生产环境启用前审计代码与依赖。

notebooklm-py

Comprehensive Python API for Google NotebookLM. Full programmatic access to NotebookLM's features—including capabilities the web UI doesn't expose—from Python or the command line.

PyPI version Python Version License: MIT Tests

Source & Development: https://github.com/teng-lin/notebooklm-py

⚠️ Unofficial Library - Use at Your Own Risk

This library uses undocumented Google APIs that can change without notice.

  • Not affiliated with Google - This is a community project
  • APIs may break - Google can change internal endpoints anytime
  • Rate limits apply - Heavy usage may be throttled

Best for prototypes, research, and personal projects. See Troubleshooting for debugging tips.

What You Can Build

🤖 AI Agent Tools - Integrate NotebookLM into Claude Code or other LLM agents. Ships with Claude Code skills for natural language automation (notebooklm skill install), or build your own integrations with the async Python API.

📚 Research Automation - Bulk-import sources (URLs, PDFs, YouTube, Google Drive), run web/Drive research queries with auto-import, and extract insights programmatically. Build repeatable research pipelines.

🎙️ Content Generation - Generate Audio Overviews (podcasts), videos, slide decks, quizzes, flashcards, infographics, data tables, mind maps, and study guides. Full control over formats, styles, and output.

📥 Downloads & Export - Download all generated artifacts locally (MP3, MP4, PDF, PNG, CSV, JSON, Markdown). Export to Google Docs/Sheets. Features the web UI doesn't offer: batch downloads, quiz/flashcard export in multiple formats, mind map JSON extraction.

Three Ways to Use

| Method | Best For | |--------|----------| | Python API | Application integration, async workflows, custom pipelines | | CLI | Shell scripts, quick tasks, CI/CD automation | | Agent Skills | Claude Code, LLM agents, natural language automation |

Features

Complete NotebookLM Coverage

| Category | Capabilities | |----------|--------------| | Notebooks | Create, list, rename, delete | | Sources | URLs, YouTube, files (PDF, text, Markdown, Word, audio, video, images), Google Drive, pasted text; refresh, get guide/fulltext | | Chat | Questions, conversation history, custom personas | | Research | Web and Drive research agents (fast/deep modes) with auto-import | | Sharing | Public/private links, user permissions (viewer/editor), view level control |

Content Generation (All NotebookLM Studio Types)

| Type | Options | Download Format | |------|---------|-----------------| | Audio Overview | 4 formats (deep-dive, brief, critique, debate), 3 lengths, 50+ languages | MP3/MP4 | | Video Overview | 2 formats, 9 visual styles (classic, whiteboard, kawaii, anime, etc.) | MP4 | | Slide Deck | Detailed or presenter format, adjustable length | PDF | | Infographic | 3 orientations, 3 detail levels | PNG | | Quiz | Configurable quantity and difficulty | JSON, Markdown, HTML | | Flashcards | Configurable quantity and difficulty | JSON, Markdown, HTML | | Report | Briefing doc, study guide, blog post, or custom prompt | Markdown | | Data Table | Custom structure via natural language | CSV | | Mind Map | Interactive hierarchical visualization | JSON |

Beyond the Web UI

These features are available via API/CLI but not exposed in NotebookLM's web interface:

  • Batch downloads - Download all artifacts of a type at once
  • Quiz/Flashcard export - Get structured JSON, Markdown, or HTML (web UI only shows interactive view)
  • Mind map data extraction - Export hierarchical JSON for visualization tools
  • Data table CSV export - Download structured tables as spreadsheets
  • Source fulltext access - Retrieve the indexed text content of any source
  • Programmatic sharing - Manage permissions without the UI

Installation

# Basic installation pip install notebooklm-py # With browser login support (required for first-time setup) pip install "notebooklm-py[browser]" playwright install chromium

Development Installation

For contributors or testing unreleased features:

pip install git+https://github.com/teng-lin/notebooklm-py@main

⚠️ The main branch may contain unstable changes. Use PyPI releases for production.

Quick Start

CLI

# 1. Authenticate (opens browser) notebooklm login # 2. Create a notebook and add sources notebooklm create "My Research" notebooklm use <notebook_id> notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence" notebooklm source add "./paper.pdf" # 3. Chat with your sources notebooklm ask "What are the key themes?" # 4. Generate content notebooklm generate audio "make it engaging" --wait notebooklm generate video --style whiteboard --wait notebooklm generate quiz --difficulty hard notebooklm generate flashcards --quantity more notebooklm generate slide-deck notebooklm generate infographic --orientation portrait notebooklm generate mind-map notebooklm generate data-table "compare key concepts" # 5. Download artifacts notebooklm download audio ./podcast.mp3 notebooklm download video ./overview.mp4 notebooklm download quiz --format markdown ./quiz.md notebooklm download flashcards --format json ./cards.json notebooklm download slide-deck ./slides.pdf notebooklm download mind-map ./mindmap.json notebooklm download data-table ./data.csv

Python API

import asyncio from notebooklm import NotebookLMClient async def main(): async with await NotebookLMClient.from_storage() as client: # Create notebook and add sources nb = await client.notebooks.create("Research") await client.sources.add_url(nb.id, "https://example.com", wait=True) # Chat with your sources result = await client.chat.ask(nb.id, "Summarize this") print(result.answer) # Generate content (podcast, video, quiz, etc.) status = await client.artifacts.generate_audio(nb.id, instructions="make it fun") await client.artifacts.wait_for_completion(nb.id, status.task_id) await client.artifacts.download_audio(nb.id, "podcast.mp3") # Generate quiz and download as JSON status = await client.artifacts.generate_quiz(nb.id) await client.artifacts.wait_for_completion(nb.id, status.task_id) await client.artifacts.download_quiz(nb.id, "quiz.json", output_format="json") # Generate mind map and export result = await client.artifacts.generate_mind_map(nb.id) await client.artifacts.download_mind_map(nb.id, "mindmap.json") asyncio.run(main())

Agent Skills (Claude Code)

# Install via CLI or ask Claude Code to do it notebooklm skill install # Then use natural language: # "Create a podcast about quantum computing" # "Download the quiz as markdown" # "/notebooklm generate video"

Documentation

For Contributors

Platform Support

| Platform | Status | Notes | |----------|--------|-------| | macOS | ✅ Tested | Primary development platform | | Linux | ✅ Tested | Fully supported | | Windows | ✅ Tested | Tested in CI |

License

MIT License. See LICENSE for details.

五维分析
清晰度9/10
创新性7/10
实用性9/10
完整性8/10
可维护性8/10
优缺点分析

优点

  • 全面访问NotebookLM功能
  • 支持多种内容生成格式
  • 通过API、CLI和代理技能灵活使用

缺点

  • 非官方库,可能存在API不稳定性
  • 高频使用可能受到速率限制
  • 首次设置需要浏览器登录

相关技能

pytorch

S
toolCode Lib / 代码库
92/ 100

“它是深度学习的瑞士军刀,但祝你好运能从47种安装方法里找到那个不会搞崩你系统的那一个。”

agno

S
toolCode Lib / 代码库
90/ 100

“它承诺成为智能体领域的Kubernetes,但得看开发者有没有耐心学习又一个编排层。”

nuxt-skills

S
toolCo-Pilot / 辅助式
90/ 100

“这本质上是一份组织良好的小抄,能把你的 AI 助手变成一只 Nuxt 框架的复读机。”

免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。

版权归原作者所有 teng-lin.