Skip to main content

Documentation 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 is published on PyPI as 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.
1

Check your Python version

notebooklm-py requires Python 3.10 or later.
python --version
2

Install the package

Choose the install that matches your needs.
pip install notebooklm-py
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.
The main branch may contain unstable changes. Use a PyPI release for production workloads.
3

Install Chromium (browser extra only)

If you installed the browser extra, download the Chromium binary that Playwright manages:
playwright install chromium
On Linux, you may also need to install system dependencies:
playwright install-deps chromium
playwright install chromium
4

Verify the install

Confirm the CLI is available:
notebooklm --version

Platform notes

PlatformStatusNotes
macOSSupportedWorks out of the box. Chromium downloads automatically.
LinuxSupportedRun playwright install-deps chromium before playwright install chromium.
WindowsSupportedUse PowerShell or CMD. Works in CI.

Linux: TypeError: onExit workaround

If playwright install chromium fails with TypeError: onExit is not a function, pin Playwright to a known-working version inside a virtual environment:
python -m venv .venv
source .venv/bin/activate
pip install "notebooklm-py[browser]" playwright==1.57.0
playwright install chromium

Headless servers and containers

Because Playwright is only required for notebooklm 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:
# On a headless server — no Playwright needed
pip install notebooklm-py

# Pass auth inline
export NOTEBOOKLM_AUTH_JSON='{"cookies": [...]}'
notebooklm list
See Authenticate with notebooklm-py for details on CI/CD auth.

Next steps

Once installed, authenticate with your Google account to start using notebooklm-py.
notebooklm login
Follow the quickstart to create your first notebook and generate content.

Build docs developers (and LLMs) love