/ Directory / Playground / NotebookLM-py
● Community teng-lin ⚡ Instant

NotebookLM-py

by teng-lin · teng-lin/notebooklm-py

Drive Google NotebookLM from Claude — create notebooks, ingest sources, generate audio overviews, including features the web UI hides.

notebooklm-py is an unofficial Python API + Claude skill for NotebookLM. It exposes notebook CRUD, source ingestion (PDFs, URLs, YouTube), and the audio-overview / mind-map / FAQ features. Includes a CLI and an agent skill so you can say 'load these PDFs into a notebook and give me the audio overview' without ever opening notebooklm.google.com.

Why use it

Key features

Live Demo

What it looks like in practice

ready

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "notebooklm-py-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/teng-lin/notebooklm-py",
        "~/.claude/skills/notebooklm-py"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "notebooklm-py-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/teng-lin/notebooklm-py",
        "~/.claude/skills/notebooklm-py"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "notebooklm-py-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/teng-lin/notebooklm-py",
        "~/.claude/skills/notebooklm-py"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "notebooklm-py-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/teng-lin/notebooklm-py",
        "~/.claude/skills/notebooklm-py"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "notebooklm-py-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/teng-lin/notebooklm-py",
        "~/.claude/skills/notebooklm-py"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "notebooklm-py-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/teng-lin/notebooklm-py",
          "~/.claude/skills/notebooklm-py"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add notebooklm-py-skill -- git clone https://github.com/teng-lin/notebooklm-py ~/.claude/skills/notebooklm-py

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use NotebookLM-py

Build a research digest from a paper batch

👤 Researchers / analysts ⏱ ~20 min beginner

When to use: 10 papers landed in your inbox; you want a synthesis fast.

Prerequisites
  • Google account with NotebookLM access — Sign in once via the Python auth flow
Flow
  1. Ingest
    Use notebooklm-py. Create a notebook 'Q2 Reading'. Add the 10 PDFs in /papers/.✓ Copied
    → Notebook created; sources loaded
  2. Synthesize
    Generate a topic-clustered summary across all sources.✓ Copied
    → Cross-source synthesis
  3. Audio
    Generate an audio overview. Save the MP3.✓ Copied
    → MP3 file

Outcome: 10 papers digested into something you can read in 20 minutes or listen to on a walk.

Pitfalls
  • Source quality varies — Ask for per-source attribution in the synthesis
Combine with: filesystem

Auto-generate an FAQ from product docs

👤 Product / DevRel ⏱ ~25 min beginner

When to use: You have docs and need a FAQ for users.

Flow
  1. Load
    Create a notebook from /docs (recursive). Generate FAQ.✓ Copied
    → FAQ output
  2. Refine
    Drop FAQ items that aren't actually frequently asked. Add citations to source sections.✓ Copied
    → Cited, relevance-filtered FAQ

Outcome: FAQ ready to publish.

Pitfalls
  • Generic questions — Provide examples of real user questions if you have them

Combinations

Pair with other MCPs for X10 leverage

notebooklm-py-skill + filesystem

Save audio overviews + summaries locally

Save MP3 to /research/audio/.✓ Copied
notebooklm-py-skill + aris-research-skill

ARIS for autonomous research, NotebookLM for synthesis

ARIS finds papers; NotebookLM digests them into an audio overview.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
create_notebook title New project 1 NotebookLM op
add_source notebook_id, source: pdf|url|youtube Build the source set 1 op + ingestion time
generate_audio notebook_id, style? Audio overview 1 op + render
generate_mind_map notebook_id Visualize source structure 1 op
ask notebook_id, question Q&A grounded in sources 1 op

Cost & Limits

What this costs to run

API quota
Bound by NotebookLM's plan limits
Tokens per call
Tokens minimal — most cost is the NotebookLM API
Monetary
Free at NotebookLM's free tier; paid for higher limits
Tip
Reuse notebooks; don't create-and-discard

Security

Permissions, secrets, blast radius

Minimum scopes: Google auth for NotebookLM
Credential storage: Local OAuth token cache
Data egress: Google NotebookLM
Never grant: OAuth scopes you don't need

Troubleshooting

Common errors and fixes

Auth flow stuck

Clear local token cache and re-auth

Source ingestion fails for big PDFs

Split into smaller chunks; NotebookLM has per-source size limits

Audio generation queued forever

NotebookLM's audio queue can be slow; retry later

Alternatives

NotebookLM-py vs others

AlternativeWhen to use it insteadTradeoff
NotebookLM web UIManual, one-off useNo automation; misses programmatic features
Custom RAG pipelineYou need full control over modelsLots of engineering vs free NotebookLM features

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills