The missing API for Google NotebookLM. Automate research workflows, generate podcasts from your documents, and integrate NotebookLM into AI agents—all from Python or the command line.
Source & Development: https://github.com/teng-lin/notebooklm-py
⚠️ Unofficial Library - Use at Your Own RiskThis 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.
🤖 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 research queries, and extract insights programmatically. Build repeatable research pipelines.
🎙️ Content Generation - Generate Audio Overviews (podcasts), videos, quizzes, flashcards, and study guides. Turn your sources into polished content with a single command.
| 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 |
# Basic installation
pip install notebooklm-py
# With browser login support (required for first-time setup)
pip install "notebooklm-py[browser]"
playwright install chromiumFor contributors or testing unreleased features:
pip install git+https://github.com/teng-lin/notebooklm-py@main
16-minute session compressed to 30 seconds
# 1. Authenticate (opens browser)
notebooklm login
# 2. Create a notebook
notebooklm create "My Research"
notebooklm use <notebook_id>
# 3. Add sources
notebooklm source add "https://en.wikipedia.org/wiki/Artificial_intelligence"
notebooklm source add "./paper.pdf"
# 4. Chat
notebooklm ask "What are the key themes?"
# 5. Generate a podcast
notebooklm generate audio --wait
notebooklm download audio ./podcast.mp3import asyncio
from notebooklm import NotebookLMClient
async def main():
async with await NotebookLMClient.from_storage() as client:
# List notebooks
notebooks = await client.notebooks.list()
# Create notebook and add source
nb = await client.notebooks.create("Research")
await client.sources.add_url(nb.id, "https://example.com")
# Chat
result = await client.chat.ask(nb.id, "Summarize this")
print(result.answer)
# Generate podcast
status = await client.artifacts.generate_audio(nb.id)
await client.artifacts.wait_for_completion(nb.id, status.task_id)
asyncio.run(main())# 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"| Category | Capabilities |
|---|---|
| Notebooks | Create, list, rename, delete, share |
| Sources | URLs, YouTube, files (PDF/TXT/MD/DOCX), Google Drive, pasted text |
| Chat | Questions, conversation history, custom personas |
| Generation | Audio podcasts, video, slides, quizzes, flashcards, reports, infographics, mind maps |
| Research | Web and Drive research agents with auto-import |
| Downloads | Audio, video, slides, infographics, reports, mind maps, data tables, quizzes, flashcards |
| Agent Skills | Claude Code skill for LLM-driven automation |
- CLI Reference - Complete command documentation
- Python API - Full API reference
- Configuration - Storage and settings
- Troubleshooting - Common issues and solutions
- API Stability - Versioning policy and stability guarantees
- 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 | Status | Notes |
|---|---|---|
| macOS | ✅ Tested | Primary development platform |
| Linux | ✅ Tested | Fully supported |
| Windows | ✅ Tested | Tested in CI |
MIT License. See LICENSE for details.
