
NotebookLM-py
github.com/teng-lin/notebooklm-py- Category
- AI Tools
- Rank
- No. 748Tools index
Previous survey · No. 730 ·
- Type
- APP
- Builder
- teng-lin
- GitHub
- 19.3k stars
- Latest release
- v0.8.2
- Date
About
An unofficial Python API and agentic skill for programmatic control of Google NotebookLM.
What it does
It turns collections of documents and media into cited answers, research results, generated study materials, and downloadable artifacts. Users can drive the same workflow through Python, shell commands, agent tools, or a local HTTP service.
Why it's ranked here
The case is strong because the project covers ingestion, grounded chat, research, generation, sharing, and bulk export behind several practical interfaces. Its value is tempered by total dependence on undocumented Google endpoints and account rate limits.
What's good
The breadth is unusually concrete. It accepts web pages, files, YouTube, pasted text, and Google Drive sources, then exports audio, video, documents, images, tables, quizzes, flashcards, and mind maps. Typed exceptions and transport-neutral business logic support serious automation.
Tradeoffs
Google can change the internal endpoints without notice, and heavy use may be throttled. Authentication and remote deployment add operational work. The HTTP service is experimental, while remote agent access requires careful binding, authentication, and tunnel configuration.
How to use it well
Use it for prototypes, personal research, source-grounded agent memory, scheduled briefings, and repeatable content pipelines. Let the hosted service analyze sources, then pull cited answers or structured artifacts into your own workflow. Do not choose it when you require an official, stable Google integration contract.
Technical notes+
pyproject.toml defines a Hatchling-built Python 3.10+ package with base dependencies on httpx, Click, Rich, and filelock, plus optional browser, headless-auth, MCP, and REST extras. src/notebooklm/__init__.py exposes the async client, public dataclasses, enums, observability helpers, and a detailed exception hierarchy. src/notebooklm/_app/__init__.py centralizes transport-neutral business logic shared by adapters. src/notebooklm/mcp/server.py builds one long-lived FastMCP client per process and registers notebook, source, chat, note, studio, research, sharing, and metadata tools. src/notebooklm/server/app.py builds a bearer-protected FastAPI surface with explicit request-size limits and a public minimal health route. src/notebooklm/mcp/__main__.py defaults to stdio, restricts HTTP binding, and requires authentication for non-loopback exposure.
Observed
- License
- MIT
- Primary language
- Python
- Python support
- Python 3.10 through 3.14
- Packaging
- PyPI package built with Hatchling; base and optional dependency extras are defined
- Interfaces
- Async Python library, Click CLI, MCP server, and optional REST server
- MCP transports
- stdio and streamable HTTP
- Testing structure
- Pytest is configured for unit, integration, end-to-end, characterization, and repository guardrail markers
Read from README.md, pyproject.toml, src/notebooklm/__init__.py, src/notebooklm/__main__.py, src/notebooklm/mcp/server.py, src/notebooklm/server/app.py, src/notebooklm/cli/__init__.py, src/notebooklm/mcp/__init__.py, src/notebooklm/mcp/__main__.py, src/notebooklm/rpc/__init__.py, src/notebooklm/_app/__init__.py, src/notebooklm/_auth/__init__.py, src/notebooklm/_chat/__init__.py, src/notebooklm/_label/__init__.py, src/notebooklm/_types/__init__.py.
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.