Skip to content

claude-world/notebooklm-skill

Repository files navigation

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 (9 downloadable 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| ⚠️ no download    |
|                               | 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 (9 types, infographic excluded)
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.

About

NotebookLM does the research, Claude writes the content. Research → Synthesis → Content Creation → Publishing. Claude Code Skill + MCP Server.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors