Claude Skill MartBrowse skillsQuick linesLearn by videoTerminal guideWhat is a Skill?
Back to list

NotebookLM Automation (notebooklm-py)

Operate Gemini Notebook (NotebookLM) end to end via the notebooklm-py CLI or typed async Python API — auth, sources, grounded chat, research, and artifact generation.

AutomationAdvanced19,4372,600AI score 9/10Last updated: Sep 23, 2026

What it does

  • Drives the notebooklm CLI (or the typed async Python client) to create notebooks, add sources, wait for readiness, run grounded chat, and generate/download audio, video, slide decks, infographics, reports, mind maps, data tables, quizzes, and flashcards.
  • Establishes reliable authentication: verify with notebooklm auth check --test --json, prefer durable profile-backed master tokens over cookie snapshots for headless/CI use, and treat both auth files as bearer credentials.
  • Enforces automation invariants: always --json, retain full UUIDs, pass -n <notebook_id> on every scoped command, and isolate concurrent agents with NOTEBOOKLM_PROFILE.
  • Defines authorization boundaries — deletions, share removal, logout, account-global language set, downloads, research wait --import-all, and note-creating commands require explicit user confirmation.
  • Ships a read-only failure-diagnosis routine plus exit-code semantics (0/1/2), timeout handling, and rate-limit guidance.

Who it's for

  • Researchers and content/data teams who want scripted NotebookLM workflows instead of manual clicking.
  • Engineers building document-summary or podcast pipelines on headless servers and CI.
  • Anyone running multiple agents concurrently who must keep credentials and context isolated.

Examples

  1. "Build a notebook from these three URLs and produce a podcast": createsource add ×3 → source waitgenerate audioartifact waitdownload audio ./podcast.m4a.
  2. "Kick off deep research on topic X": source add-research "..." --mode deep --no-wait --json, keep the run ID, then import only when authorized with research wait --import-all.
  3. "Why did that command fail?": read-only triage with auth check --test --passive --json, source list, and artifact list before any state change.

· · · Install guide · · ·

Try it now, no install

Paste this into Claude to use the skill without installing anything.

Read the instructions in this file and follow them to help me:
https://raw.githubusercontent.com/teng-lin/notebooklm-py/HEAD/SKILL.md

What I want: (describe your task here)

If Claude can't open the link, open it yourself and paste the contents instead.

If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.

Install in the Claude app (no terminal)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
Download ZIP
Install in Claude Code

Let Claude do it — paste this into Claude Code

Install the skill I found on Claude Skill Mart.
Copy the SKILL.m folder from the GitHub repo teng-lin/notebooklm-py into my ~/.claude/skills/notebooklm/.
When it's done, tell me in one line what this skill can do.

Install with a command instead

pip install "notebooklm-py[browser]" && notebooklm skill install

This is a third-party skill. Check the source repository before installing.

  1. Confirm Python 3.10+: python3 --version.
  2. Install into your existing environment: pip install "notebooklm-py[browser]". For CLI-only use, uv tool install "notebooklm-py[browser]" or pipx works well. If pip reports externally-managed-environment, avoid --break-system-packages and use uv/pipx or a virtualenv.
  3. Install the skill into your agent: notebooklm skill install (in sandboxed environments, build an archive with notebooklm skill package).
  4. Verify installation: notebooklm skill status --json.
  5. Authenticate: with a display, run notebooklm login. For unattended use, pip install "notebooklm-py[headless]", run notebooklm login --master-token --account <email> on a trusted workstation, and deploy only master_token.json to the target profile with mode 0600.
  6. Validate: notebooklm auth check --test --json must return status == "ok" and checks.token_fetch == true.
  7. Restart Claude Code and try a prompt like "list my NotebookLM notebooks" to confirm the skill triggers.