Skip to main content

NotebookLM research automation — CLI, MCP server, and Claude Code Skill

Project description

notebooklm-skill

NotebookLM does the research, Claude writes the content.

The only tool that connects trending topic discovery → NotebookLM deep research → AI content creation → multi-platform publishing. Works as a Claude Code Skill or standalone MCP Server.

License: MIT

繁體中文版 README


Demo

Language YouTube Slides
English Watch 6 pages, auto-generated
繁體中文 Watch 5 pages, auto-generated

All slides, podcasts, and videos were generated by NotebookLM using this tool.


What is this?

notebooklm-skill bridges NotebookLM's research capabilities with Claude's content generation. Feed it URLs, PDFs, or trending topics — it creates a NotebookLM notebook, runs deep research queries, and hands structured findings to Claude for polished output: articles, social posts, newsletters, podcasts, or any format you need.

Built on notebooklm-py v0.3.4 — pure async Python, no OAuth setup needed.

Sources (URLs, PDFs)          NotebookLM                Claude               Artifacts & Platforms
+-----------------+    +------------------+    +-----------------+    +----------------------+
| Web articles    |--->| Create notebook  |--->| Draft article   |--->| Blog / CMS           |
| Research papers |    | Add sources      |    | Social posts    |    | Threads / X          |
| YouTube videos  |    | Ask questions    |    | Newsletter      |    | Newsletter           |
| Trending topics |    | Extract insights |    | Any format      |    | Any platform         |
+-----------------+    +------------------+    +-----------------+    +----------------------+
     Phase 1                Phase 2                Phase 3                  Phase 4
                                |
                                v
                       +------------------+
                       | Generate artifacts|
                       | Audio (podcast)   |
                       | Video             |
                       | Slides            |
                       | Report            |
                       | Quiz              |
                       | Flashcards        |
                       | Mind map          |
                       | Infographic       |
                       | Data table        |
                       | Study guide       |
                       +------------------+
                            Phase 2b

Quick Start

# Option A: uvx (recommended — zero install)
uvx notebooklm-skill --help
uvx --from notebooklm-skill notebooklm-mcp   # Start MCP server

# Option B: pip install from PyPI
pip install notebooklm-skill

# Option C: Install from source
git clone https://github.com/claude-world/notebooklm-skill.git
cd notebooklm-skill && pip install .

# Option D: One-line install (pip + Playwright + Claude Code Skill)
git clone https://github.com/claude-world/notebooklm-skill.git
cd notebooklm-skill && ./install.sh

# Authenticate with Google (one-time, opens browser)
uvx notebooklm login              # if using uvx
# or: python3 -m notebooklm login  # if using pip install

# Use commands (uvx or direct — both work the same)
notebooklm-skill create --title "My Research" --sources https://example.com/article
notebooklm-skill ask --notebook "My Research" --query "What are the key findings?"
notebooklm-skill podcast --notebook "My Research" --lang en --output podcast.m4a
notebooklm-pipeline research-to-article --sources https://example.com --title "Topic"
notebooklm-mcp                   # Start MCP server (stdio mode)

Or use scripts directly: python scripts/notebooklm_client.py create ...

See docs/SETUP.md for the full setup guide.

Authentication

notebooklm-py uses browser-based Google login. No API keys, no OAuth Client ID, no Google Cloud project needed.

# One-time login (opens Chromium, sign in with Google)
uvx notebooklm login              # if using uvx
python3 -m notebooklm login       # if using pip install
Step Command What happens
Login uvx notebooklm login Opens Chromium, user logs into Google
Session storage Automatic Saved to ~/.notebooklm/storage_state.json
Subsequent use All CLI / MCP commands Reads saved session, pure HTTP calls
Verify uvx notebooklm-skill list Lists notebooks to confirm auth works
Clear rm -rf ~/.notebooklm Removes stored session

Session typically lasts weeks. Re-run login if you get authentication errors.

Two Ways to Use

Claude Code Skill MCP Server
Best for Claude Code users who want NotebookLM in their workflow Any MCP-compatible client (Cursor, Gemini CLI, etc.)
Setup Copy skill to .claude/skills/ Add server to MCP config
Invocation Claude auto-detects when relevant Tools appear in client tool list
Config SKILL.md + .env .mcp.json + .env
Requirements Python 3.10+, notebooklm-py Python 3.10+, notebooklm-py

Features

Feature Description Status
Notebook CRUD Create, list, delete notebooks Available
Source ingestion Add URLs, PDFs, YouTube links, plain text Available
Research queries Ask questions against notebook sources with citations Available
Structured extraction Get key facts, arguments, timelines Available
Content generation Use research output as context for Claude Available
Batch operations Process multiple sources or queries at once Available
trend-pulse integration Auto-discover trending topics to research Available
threads-viral-agent integration Publish research-backed social posts Available

Artifact Generation (10 types)

Artifact Format Description
Audio M4A AI-generated podcast discussion
Video MP4 Video summary with visuals
Slides PDF / PPTX Presentation deck
Report Markdown Comprehensive written report
Quiz JSON / Markdown / HTML Multiple-choice assessment questions
Flashcards JSON / Markdown / HTML Study flashcard deck
Mind map JSON Visual concept map
Infographic PNG Visual data summary
Data table CSV Structured data extraction
Study guide Markdown Structured learning material

Most artifacts support language selection (e.g., --lang zh-TW). Exceptions: quiz, flashcards, mind-map.

Note: NotebookLM returns audio in MPEG-4 (M4A) format, not MP3.

Architecture

+---------------------------------------------------------------+
|                      notebooklm-skill                          |
|                                                                |
|  +---------+  +--------------+  +----------+  +------------+  |
|  | Phase 1 |  |   Phase 2    |  |  Phase 3 |  |  Phase 4   |  |
|  | Collect  |->|  Research    |->| Generate  |->|  Publish   |  |
|  +---------+  +--------------+  +----------+  +------------+  |
|      |              |                |               |         |
|  +--------+  +-------------+  +-----------+  +-----------+    |
|  | URLs   |  | NotebookLM  |  |  Claude    |  | Threads   |    |
|  | PDFs   |  | (via        |  |  Content   |  | Blog      |    |
|  | RSS    |  |  notebooklm |  |  Engine    |  | Email     |    |
|  | Trends |  |  -py 0.3.4) |  |            |  | CMS       |    |
|  +--------+  | - notebooks |  +-----------+  +-----------+    |
|              | - sources   |        |                          |
|              | - chat/ask  |  +-----------+                    |
|              | - artifacts |  | Artifacts |                    |
|              +-------------+  | audio     |                    |
|                               | video     |                    |
|                               | slides    |                    |
|                               | report    |                    |
|                               | quiz      |                    |
|                               | flashcards|                    |
|                               | mind-map  |                    |
|                               | infographic|                   |
|                               | data-table|                    |
|                               | study-guide|                   |
|                               +-----------+                    |
|                                                                |
|  +-----------------------------------------------------------+ |
|  |  Interfaces                                                | |
|  |  +-- scripts/          CLI tools (notebooklm-py direct)   | |
|  |  +-- mcp_server/       MCP protocol server                 | |
|  |  +-- SKILL.md          Claude Code skill definition        | |
|  +-----------------------------------------------------------+ |
+---------------------------------------------------------------+
         ^                                          ^
         |                                          |
   +-----------+                             +-----------+
   |trend-pulse|                             |threads-   |
   |(optional) |                             |viral-agent|
   +-----------+                             |(optional) |
                                             +-----------+

Usage Examples

1. Research to Article

python scripts/pipeline.py research-to-article \
  --sources "https://arxiv.org/abs/2401.00001" \
            "https://blog.example.com/ai-agents" \
  --title "AI Agent Survey"

2. Research to Social Posts

python scripts/pipeline.py research-to-social \
  --sources "https://example.com/ai-news" \
  --platform threads \
  --title "AI News This Week"

3. Trending Topics to Content

python scripts/pipeline.py trend-to-content \
  --geo TW \
  --count 5 \
  --platform threads

4. RSS Batch Digest

python scripts/pipeline.py batch-digest \
  --rss "https://example.com/feed.xml" \
  --title "Weekly AI Digest"

5. Generate All Artifacts

python scripts/pipeline.py generate-all \
  --sources "https://example.com/article" \
  --title "Research" \
  --output-dir ./output \
  --language zh-TW

6. Slides + Podcast → YouTube Video

Combine NotebookLM-generated slides and podcast into a YouTube-ready video:

# Generate slides and podcast
python scripts/notebooklm_client.py generate --notebook "Research" --type slides
python scripts/notebooklm_client.py podcast --notebook "Research" --lang en --output podcast.m4a
python scripts/notebooklm_client.py download --notebook "Research" --type slides --output slides.pdf

# Convert PDF to PNG + compose video
./scripts/make_video.sh slides.pdf podcast.m4a output.mp4

Pipeline Workflows

Workflow Input Output Steps
research-to-article URLs, text Article draft JSON Create notebook → 5 research questions → article draft
research-to-social URLs, text Social post draft Create notebook → summarize → platform-specific post
trend-to-content Geo, count Content per trend Fetch trends → create notebooks → research → draft
batch-digest RSS URL Newsletter digest Fetch RSS → create notebook → digest + Q&A
generate-all URLs, text Audio, video, PDF, etc. Create notebook → generate all artifacts → download

MCP Server Setup

Add to your project's .mcp.json:

{
  "mcpServers": {
    "notebooklm": {
      "command": "uvx",
      "args": ["--from", "notebooklm-skill", "notebooklm-mcp"]
    }
  }
}

Or if you installed via pip install notebooklm-skill:

{
  "mcpServers": {
    "notebooklm": {
      "command": "notebooklm-mcp"
    }
  }
}

Works with Claude Code, Cursor, Gemini CLI, and any MCP-compatible client.

Claude Code Skill Setup

# Option A: Symlink (auto-updates with git pull)
./install.sh

# Option B: Manual copy
mkdir -p .claude/skills/notebooklm
cp /path/to/notebooklm-skill/SKILL.md .claude/skills/notebooklm/
cp /path/to/notebooklm-skill/scripts/*.py .claude/skills/notebooklm/scripts/
cp /path/to/notebooklm-skill/requirements.txt .claude/skills/notebooklm/

# Authenticate (one-time)
python3 -m notebooklm login

Claude will automatically detect the skill when you ask about research, NotebookLM, or content creation.

API Reference

CLI Commands (11)

Command Description
create Create a notebook with URL/text sources
list List all notebooks
delete Delete a notebook
add-source Add a source (URL, text, or file) to existing notebook
ask Ask a research question (returns answer + citations)
summarize Get notebook summary
generate Generate an artifact (audio, video, slides, etc.)
download Download a generated artifact
research Run deep web research
podcast Shortcut for generate --type audio (auto-downloads)
qa Shortcut for generate --type quiz

MCP Tools (13)

Tool Description
nlm_create_notebook Create notebook with sources
nlm_list List all notebooks
nlm_delete Delete a notebook
nlm_add_source Add source to existing notebook
nlm_ask Ask question (returns answer + citations)
nlm_summarize Get notebook summary
nlm_generate Generate artifact (10 types)
nlm_download Download generated artifact
nlm_list_sources List sources in notebook
nlm_list_artifacts List generated artifacts
nlm_research Deep web research
nlm_research_pipeline Full research pipeline
nlm_trend_research Trend → research pipeline

Integrations

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes
  4. Push and open a Pull Request
# Development setup
git clone https://github.com/claude-world/notebooklm-skill.git
cd notebooklm-skill
pip install -e .
python3 -m notebooklm login
python -m pytest tests/

License

MIT License. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

notebooklm_skill-1.2.1.tar.gz (39.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

notebooklm_skill-1.2.1-py3-none-any.whl (35.7 kB view details)

Uploaded Python 3

File details

Details for the file notebooklm_skill-1.2.1.tar.gz.

File metadata

  • Download URL: notebooklm_skill-1.2.1.tar.gz
  • Upload date:
  • Size: 39.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for notebooklm_skill-1.2.1.tar.gz
Algorithm Hash digest
SHA256 4c5b4484c73f65d8d51a447ed973275922a520ba3d61e4e9ed38087a22cddacb
MD5 8820a8f0a02f74f694c3c01c1048628b
BLAKE2b-256 64094975ea080a85f42da6897cd07403adb29e3a21bc940055fc035026689e06

See more details on using hashes here.

Provenance

The following attestation bundles were made for notebooklm_skill-1.2.1.tar.gz:

Publisher: release.yml on claude-world/notebooklm-skill

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file notebooklm_skill-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for notebooklm_skill-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5b6fb7f3fab77947b0755eeecfa4a6583f426aa4a4c8bdbb417513dd55bf0edf
MD5 97d47e08c495e36fdef83208dfa08a22
BLAKE2b-256 e31e1d8daf554f625916ec729c32b9b1dc5ba294c37f4e0033dd6a666749a083

See more details on using hashes here.

Provenance

The following attestation bundles were made for notebooklm_skill-1.2.1-py3-none-any.whl:

Publisher: release.yml on claude-world/notebooklm-skill

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page