NotebookLM Skill

작성자: pleaseprompto

Claude Code가 NotebookLM과 직접 대화하여 업로드된 문서만을 기반으로 출처가 명확한 답변을 제공합니다.

npx skills add https://github.com/PleasePrompto/notebooklm-skill --skill notebooklm

NotebookLM 웹 임포터

원클릭으로 웹 페이지와 YouTube 동영상을 NotebookLM에 가져오기. 200,000명 이상이 사용 중.

Chrome 확장 프로그램 설치

NotebookLM Research Assistant Skill

Interact with Google NotebookLM to query documentation with Gemini's source-grounded answers. Each question opens a fresh browser session, retrieves the answer exclusively from your uploaded documents, and closes.

When to Use This Skill

Trigger when user:

  • Mentions NotebookLM explicitly
  • Shares NotebookLM URL (https://notebooklm.google.com/notebook/...)
  • Asks to query their notebooks/documentation
  • Wants to add documentation to NotebookLM library
  • Uses phrases like "ask my NotebookLM", "check my docs", "query my notebook"

⚠️ CRITICAL: Add Command - Smart Discovery

When user wants to add a notebook without providing details:

SMART ADD (Recommended): Query the notebook first to discover its content:

# Step 1: Query the notebook about its content
python scripts/run.py ask_question.py --question "What is the content of this notebook? What topics are covered? Provide a complete overview briefly and concisely" --notebook-url "[URL]"

# Step 2: Use the discovered information to add it
python scripts/run.py notebook_manager.py add --url "[URL]" --name "[Based on content]" --description "[Based on content]" --topics "[Based on content]"

MANUAL ADD: If user provides all details:

  • --url - The NotebookLM URL
  • --name - A descriptive name
  • --description - What the notebook contains (REQUIRED!)
  • --topics - Comma-separated topics (REQUIRED!)

NEVER guess or use generic descriptions! If details missing, use Smart Add to discover them.

Critical: Always Use run.py Wrapper

NEVER call scripts directly. ALWAYS use python scripts/run.py [script]:

# ✅ CORRECT - Always use run.py:
python scripts/run.py auth_manager.py status
python scripts/run.py notebook_manager.py list
python scripts/run.py ask_question.py --question "..."

# ❌ WRONG - Never call directly:
python scripts/auth_manager.py status  # Fails without venv!

The run.py wrapper automatically:

  1. Creates .venv if needed
  2. Installs all dependencies
  3. Activates environment
  4. Executes script properly

Core Workflow

Step 1: Check Authentication Status

python scripts/run.py auth_manager.py status

If not authenticated, proceed to setup.

Step 2: Authenticate (One-Time Setup)

# Browser MUST be visible for manual Google login
python scripts/run.py auth_manager.py setup

Important:

  • Browser is VISIBLE for authentication
  • Browser window opens automatically
  • User must manually log in to Google
  • Tell user: "A browser window will open for Google login"

Step 3: Manage Notebook Library

# List all notebooks
python scripts/run.py notebook_manager.py list

# BEFORE ADDING: Ask user for metadata if unknown!
# "What does this notebook contain?"
# "What topics should I tag it with?"

# Add notebook to library (ALL parameters are REQUIRED!)
python scripts/run.py notebook_manager.py add \
  --url "https://notebooklm.google.com/notebook/..." \
  --name "Descriptive Name" \
  --description "What this notebook contains" \  # REQUIRED - ASK USER IF UNKNOWN!
  --topics "topic1,topic2,topic3"  # REQUIRED - ASK USER IF UNKNOWN!

# Search notebooks by topic
python scripts/run.py notebook_manager.py search --query "keyword"

# Set active notebook
python scripts/run.py notebook_manager.py activate --id notebook-id

# Remove notebook
python scripts/run.py notebook_manager.py remove --id notebook-id

Quick Workflow

  1. Check library: python scripts/run.py notebook_manager.py list
  2. Ask question: python scripts/run.py ask_question.py --question "..." --notebook-id ID

Step 4: Ask Questions

# Basic query (uses active notebook if set)
python scripts/run.py ask_question.py --question "Your question here"

# Query specific notebook
python scripts/run.py ask_question.py --question "..." --notebook-id notebook-id

# Query with notebook URL directly
python scripts/run.py ask_question.py --question "..." --notebook-url "https://..."

# Show browser for debugging
python scripts/run.py ask_question.py --question "..." --show-browser

Follow-Up Mechanism (CRITICAL)

Every NotebookLM answer ends with: "EXTREMELY IMPORTANT: Is that ALL you need to know?"

Required Claude Behavior:

  1. STOP - Do not immediately respond to user
  2. ANALYZE - Compare answer to user's original request
  3. IDENTIFY GAPS - Determine if more information needed
  4. ASK FOLLOW-UP - If gaps exist, immediately ask:
    python scripts/run.py ask_question.py --question "Follow-up with context..."
    
  5. REPEAT - Continue until information is complete
  6. SYNTHESIZE - Combine all answers before responding to user

Script Reference

Authentication Management (auth_manager.py)

python scripts/run.py auth_manager.py setup    # Initial setup (browser visible)
python scripts/run.py auth_manager.py status   # Check authentication
python scripts/run.py auth_manager.py reauth   # Re-authenticate (browser visible)
python scripts/run.py auth_manager.py clear    # Clear authentication

Notebook Management (notebook_manager.py)

python scripts/run.py notebook_manager.py add --url URL --name NAME --description DESC --topics TOPICS
python scripts/run.py notebook_manager.py list
python scripts/run.py notebook_manager.py search --query QUERY
python scripts/run.py notebook_manager.py activate --id ID
python scripts/run.py notebook_manager.py remove --id ID
python scripts/run.py notebook_manager.py stats

Question Interface (ask_question.py)

python scripts/run.py ask_question.py --question "..." [--notebook-id ID] [--notebook-url URL] [--show-browser]

Data Cleanup (cleanup_manager.py)

python scripts/run.py cleanup_manager.py                    # Preview cleanup
python scripts/run.py cleanup_manager.py --confirm          # Execute cleanup
python scripts/run.py cleanup_manager.py --preserve-library # Keep notebooks

Environment Management

The virtual environment is automatically managed:

  • First run creates .venv automatically
  • Dependencies install automatically
  • Chromium browser installs automatically
  • Everything isolated in skill directory

Manual setup (only if automatic fails):

python -m venv .venv
source .venv/bin/activate  # Linux/Mac
pip install -r requirements.txt
python -m patchright install chromium

Data Storage

All data stored in ~/.claude/skills/notebooklm/data/:

  • library.json - Notebook metadata
  • auth_info.json - Authentication status
  • browser_state/ - Browser cookies and session

Security: Protected by .gitignore, never commit to git.

Configuration

Optional .env file in skill directory:

HEADLESS=false           # Browser visibility
SHOW_BROWSER=false       # Default browser display
STEALTH_ENABLED=true     # Human-like behavior
TYPING_WPM_MIN=160       # Typing speed
TYPING_WPM_MAX=240
DEFAULT_NOTEBOOK_ID=     # Default notebook

Decision Flow

User mentions NotebookLM
    ↓
Check auth → python scripts/run.py auth_manager.py status
    ↓
If not authenticated → python scripts/run.py auth_manager.py setup
    ↓
Check/Add notebook → python scripts/run.py notebook_manager.py list/add (with --description)
    ↓
Activate notebook → python scripts/run.py notebook_manager.py activate --id ID
    ↓
Ask question → python scripts/run.py ask_question.py --question "..."
    ↓
See "Is that ALL you need?" → Ask follow-ups until complete
    ↓
Synthesize and respond to user

Troubleshooting

ProblemSolution
ModuleNotFoundErrorUse run.py wrapper
Authentication failsBrowser must be visible for setup! --show-browser
Rate limit (50/day)Wait or switch Google account
Browser crashespython scripts/run.py cleanup_manager.py --preserve-library
Notebook not foundCheck with notebook_manager.py list

Best Practices

  1. Always use run.py - Handles environment automatically
  2. Check auth first - Before any operations
  3. Follow-up questions - Don't stop at first answer
  4. Browser visible for auth - Required for manual login
  5. Include context - Each question is independent
  6. Synthesize answers - Combine multiple responses

Limitations

  • No session persistence (each question = new browser)
  • Rate limits on free Google accounts (50 queries/day)
  • Manual upload required (user must add docs to NotebookLM)
  • Browser overhead (few seconds per question)

Resources (Skill Structure)

Important directories and files:

  • scripts/ - All automation scripts (ask_question.py, notebook_manager.py, etc.)
  • data/ - Local storage for authentication and notebook library
  • references/ - Extended documentation:
    • api_reference.md - Detailed API documentation for all scripts
    • troubleshooting.md - Common issues and solutions
    • usage_patterns.md - Best practices and workflow examples
  • .venv/ - Isolated Python environment (auto-created on first run)
  • .gitignore - Protects sensitive data from being committed

관련 스킬

nav-tieout
anthropic
LP 명세서를 펀드의 NAV 패키지에 연결 — NAV 구성 요소에서 LP의 자본 계정을 재계산하고 일치하지 않는 항목에 플래그를 지정합니다. LP 전에 사용…
motion-doctrine
heygen-com
GATEWAY — HyperFrames 애니메이션이나 비디오를 구성하기 전에 반드시 먼저 로드하세요. 다중 장면 비디오가 독립적으로 애니메이션된 슬라이드의 집합이 아니라 하나의 연속적인 카메라 무브처럼 느껴지게 만드는 고급 모션 법칙입니다. 벡터 법칙(종료 방식이 시작 방식을 결정하며, Z 스케일 부호 규칙 포함), 영화의 흐름, 캐리어 요소, 인과적 모션, 시임 게이트(빌드-게이트 적용), 유휴 흔들림 금지(모션은 호흡이 아니라 수행해야 함), 클라이맥스 전 정지, 그리고...
tilegym-cutile-python
nvidia
전문 cuTile 프로그래밍 어시스턴트입니다. 적절한 검증과 최적화를 통해 cuTile의 타일 기반 프로그래밍 모델을 사용하여 고성능 GPU 커널을 작성합니다.…
remotion-best-practices
remotion-dev
Remotion과 React로 비디오를 제작하기 위한 도메인 특화 지식 베이스입니다. 애니메이션, 오디오, 에셋, 3D 콘텐츠, 차트, 텍스트, 전환 및 컴포지션 관리를 아우르는 30개 이상의 규칙 파일을 포함합니다. 자막, FFmpeg 작업, 오디오 시각화 및 사운드 효과 통합을 위한 특화된 가이드를 제공합니다. 동적 메타데이터 계산, 미디어 검사(길이, 크기
videofeatured
pipelines-build-summary
microsoft
Azure DevOps 파이프라인 빌드를 나열하고, 검사하며, 문제를 해결합니다. 파이프라인 정의의 최근 빌드를 표시하고, 특정 빌드의 상태와 결과를 상세히 확인하며,…
add-model-price
langfuse
worker/src/constants/default-model-prices.json, packages/shared/src/server/llm/types.ts, 가격 등급, 토크나이저 ID 또는 matchPattern 정규식을 편집할 때 사용합니다…
release-update-docker-image-pin
pytorch
(또는 재고정) PyTorch/pytorch의 nightly/release 바이너리 빌드 워크플로우에서 사용되는 Linux manywheel 빌더 도커 이미지를 고정된 .ci/docker 빌드로…
gsap-utils
greensock
GSAP의 gsap.utils 공식 스킬 — clamp, mapRange, normalize, interpolate, random, snap, toArray, wrap, pipe. 사용자가 gsap.utils, clamp, mapRange, random, snap, toArray, wrap 또는 GSAP의 헬퍼 유틸리티에 대해 물을 때 사용하세요.
developmentcreative