@seclink: 有个哥们把 notebooklm 逆向做成了 api ,可以被 agent调用,最近这个开源项目, 在 github上涨粉挺凶的 ... 有人在闲鱼买 6块钱 一次,多文件生成notbooklm可视图,生成 AI PPT ,背后应该就是调…
摘要
一个开发者逆向工程了Google NotebookLM,并将其封装为非官方Python API和CLI工具,支持AI代理调用,可用于自动化研究、内容生成等,在GitHub上迅速走红。
查看缓存全文
缓存时间: 2026/05/19 06:46
有个哥们把 notebooklm 逆向做成了 api ,可以被 agent调用,最近这个开源项目, 在 github上涨粉挺凶的 …
有人在闲鱼买 6块钱 一次,多文件生成notbooklm可视图,生成 AI PPT ,背后应该就是调用了这个产品 …
https://t.co/H0mXeSdEr6
teng-lin/notebooklm-py
Source: https://github.com/teng-lin/notebooklm-py
notebooklm-py
A Comprehensive NotebookLM Skill & Unofficial Python API. 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.
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, Codex, and other LLM agents. Ships with a root NotebookLM skill for GitHub and npx skills add discovery, local notebooklm skill install support for Claude Code and .agents skill directories, and repo-level Codex guidance in AGENTS.md.
📚 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 Integration | Claude Code, Codex, LLM agents, natural language automation |
Features
Complete NotebookLM Coverage
| Category | Capabilities |
|---|---|
| Notebooks | Create, list, rename, delete |
| Sources | URLs, YouTube, files (PDF, text, Markdown, Word, EPUB, 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 Artifact Types)
| Type | Options | Download Format |
|---|---|---|
| Audio Overview | 4 formats (deep-dive, brief, critique, debate), 3 lengths, 50+ languages | MP3/MP4 |
| Video Overview | 3 formats (explainer, brief, cinematic), 9 visual styles, plus a dedicated cinematic-video CLI alias | MP4 |
| Slide Deck | Detailed or presenter format, adjustable length; individual slide revision | PDF, PPTX |
| 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
- Slide deck as PPTX - Download editable PowerPoint files (web UI only offers PDF)
- Slide revision - Modify individual slides with natural-language prompts
- Report template customization - Append extra instructions to built-in format templates
- Save chat to notes - Save Q&A answers or conversation history as notebook notes
- Source fulltext access - Retrieve the indexed text content of any source
- Programmatic sharing - Manage permissions without the UI
- Multi-account profiles - Switch between Google accounts without re-authenticating
- Browser cookie import - Reuse cookies from your existing browser session instead of driving Playwright
Installation
The full install guide — six personas (agent, end-user, library, headless, contributor, power-user), optional extras matrix, platform notes — lives in docs/installation.md.
Quickest start (CLI users and AI agents):
pip install "notebooklm-py[browser]" # core + Playwright
playwright install chromium # ~170 MB; no progress bar — be patient (30–90 s)
notebooklm login # opens browser for Google sign-in
notebooklm auth check --test --json # verify: expect "status": "ok"
As a library (embedded in your app — no Playwright, no Chromium):
pip install notebooklm-py # ~10 MB; ship a pre-acquired storage_state.json
If playwright install chromium fails on Linux with TypeError: onExit is not a function, see the Linux workaround. Contributors: see CONTRIBUTING.md.
Quick Start
16-minute session compressed to 30 seconds
CLI
# 1. Authenticate (opens browser)
notebooklm login
# Or use Microsoft Edge (for orgs that require Edge for SSO)
# notebooklm login --browser msedge
# Or reuse cookies from an already-logged-in browser session
# notebooklm login --browser-cookies chrome
# notebooklm login --browser-cookies 'chrome::Profile 1' # one Chromium profile
# (combine with --profile to populate a specific profile;
# use --account / --all-accounts after auth inspect when several
# Google accounts are signed in)
# 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?"
notebooklm ask --prompt-file ./long_question.txt # Read question from file
# 4. Generate content (use --prompt-file for long prompts)
notebooklm generate audio "make it engaging" --wait
notebooklm generate video --style whiteboard --wait
notebooklm generate cinematic-video "documentary-style summary" --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 cinematic-video ./documentary.mp4
notebooklm download quiz --format markdown ./quiz.md
notebooklm download flashcards --format json ./cards.json
notebooklm download slide-deck ./slides.pdf
notebooklm download infographic ./infographic.png
notebooklm download mind-map ./mindmap.json
notebooklm download data-table ./data.csv
Other useful CLI commands:
notebooklm auth check --test # Diagnose auth/cookie issues
notebooklm auth refresh --quiet # One-shot cookie keepalive (for cron / launchd / systemd)
notebooklm auth refresh --browser-cookies chrome # Re-extract and repair account routing
notebooklm auth inspect --browser 'chrome::Profile 1' # Preview one Chromium profile
notebooklm agent show codex # Print bundled Codex instructions
notebooklm agent show claude # Print bundled Claude Code skill template
notebooklm language list # List supported output languages
notebooklm metadata --json # Export notebook metadata and sources
notebooklm share status # Inspect sharing state
notebooklm source add-research "AI" # Start web research and import sources
notebooklm skill status # Check local agent skill installation
notebooklm profile list # List all Google account profiles
notebooklm profile switch work # Switch active account profile
Use --prompt-file PATH with ask, prompt-based generate commands, and source add-research when the text is too long for the shell command line. This reads prompt/query text from a file and is separate from source add ./file.pdf, which still uploads that file as a NotebookLM source.
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 Setup
Option 1 — CLI install:
notebooklm skill install
Installs the skill into ~/.claude/skills/notebooklm and ~/.agents/skills/notebooklm.
Option 2 — npx install (via the open skills ecosystem):
npx skills add teng-lin/notebooklm-py
Fetches the canonical SKILL.md directly from GitHub.
Documentation
- CLI Reference - Complete command documentation
- Python API - Full API reference
- Configuration - Storage and settings
- Release Guide - Release checklist and packaging verification
- Troubleshooting - Common issues and solutions
- API Stability - Versioning policy and stability guarantees
For Contributors
- Development Guide - Architecture, testing, and releasing
- RPC Development - Protocol capture and debugging
- RPC Reference - Payload structures
- Changelog - Version history and release notes
- Security - Security policy and credential handling
Platform Support
| Platform | Status | Notes |
|---|---|---|
| macOS | ✅ Tested | Primary development platform |
| Linux | ✅ Tested | Fully supported |
| Windows | ✅ Tested | Tested in CI |
Star History
License
MIT License. See LICENSE for details.
相似文章
@NFTCPS: 我今天真被一个开源项目狠狠干醒了。14.5k stars,直接把NotebookLM从“能用”拉到“能打”,而且是流水线级别。网页版那套我早就烦透了:传PDF等、生成音频等、下载还等,时间全喂给进度条了。你要是想批量做内容,基本等于自虐。…
notebooklm-py 是一个开源项目,提供 NotebookLM 的 Python API 和 CLI,支持批量处理、多格式导出和 AI 代理集成,大幅提升内容创作效率。
@wsl8297: 又挖到一个能打的 Google NotebookLM 开源替代:Open Notebook。私有化部署,数据全程握在自己手里,隐私更安心。 它兼容 16+ 主流 AI 模型提供商,支持上传 PDF、网页、视频、音频等素材,直接一键生成结构…
介绍了一个名为Open Notebook的开源工具,作为Google NotebookLM的隐私保护替代方案,支持私有化部署和多模型集成,可处理多种格式内容并生成播客。
teng-lin/notebooklm-py
一个全面的非官方Python API和CLI,为Google NotebookLM提供编程访问,涵盖源管理、内容生成和代理集成等功能。
lfnovo/open-notebook
Google NotebookLM 的开源实现,具备更高的灵活性和更多功能,允许用户自行托管和定制笔记本 AI 体验。
@seclink: 最近这个开源工具挺火的。 看起来像是 钉钉悟空 、 字节 aily的开源版本。 你可以基于它来实现自己的agent 并且接入到上述的 即时通讯平台之中。 有的哥们基于这个改吧改吧,就能给投资人演示,拿到了不小规模的估值 。 让投资人记忆深…
CowAgent 是一个基于大模型的开源 AI 助理框架,支持自主任务规划、长期记忆、知识库、多模型切换和多渠道接入(微信、飞书、钉钉等),可快速构建和部署个性化 AI agent。