notebooklm-py is published on PyPI asDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/teng-lin/notebooklm-py/llms.txt
Use this file to discover all available pages before exploring further.
notebooklm-py. A minimal install gives you the Python API and CLI for all operations except browser-based login. To authenticate for the first time, install the browser extra, which pulls in Playwright and a Chromium browser. After login, the browser is no longer needed—all subsequent operations use standard HTTP requests via httpx.
Playwright is only required to run
notebooklm login. Every other command—listing notebooks, adding sources, generating content, downloading artifacts—uses httpx and works in headless environments, Docker containers, and CI/CD pipelines without Playwright installed.Install
Follow these steps to get from zero to a working installation.Install the package
Choose the install that matches your needs.Install
notebooklm-py[browser] if you are setting up for the first time and need to run notebooklm login. You can skip this if you already have a storage_state.json from another machine.Install Chromium (browser extra only)
If you installed the On Linux, you may also need to install system dependencies:
browser extra, download the Chromium binary that Playwright manages:Platform notes
| Platform | Status | Notes |
|---|---|---|
| macOS | Supported | Works out of the box. Chromium downloads automatically. |
| Linux | Supported | Run playwright install-deps chromium before playwright install chromium. |
| Windows | Supported | Use PowerShell or CMD. Works in CI. |
Linux: TypeError: onExit workaround
Ifplaywright install chromium fails with TypeError: onExit is not a function, pin Playwright to a known-working version inside a virtual environment:
Headless servers and containers
Because Playwright is only required fornotebooklm login, you can run notebooklm-py on headless servers without a browser. Copy a valid storage_state.json from your local machine, or pass auth inline via the NOTEBOOKLM_AUTH_JSON environment variable: