notebooklm
NotebookLM Management Skill
Overview
Provide comprehensive Google NotebookLM management through the nlm CLI from the notebooklm-mcp-cli package (v0.3.3). This skill enables full notebook lifecycle management including creating notebooks, adding diverse sources, generating AI-powered audio/video overviews, creating study materials, querying sources with AI, researching topics, and sharing notebooks.
CLI Tool: nlm (installed via uv tool install notebooklm-mcp-cli)
Note: This skill does NOT share authentication with Google OAuth skills (calendar, contacts, drive, docs). It uses its own browser cookie-based authentication method.
When to Use This Skill
Use this skill for ANY Google NotebookLM operations:
- Notebook Management: Create, list, rename, delete, describe notebooks
- Source Management: Add URLs, text, files, YouTube videos, Google Drive docs
- Audio/Podcast Generation: Create audio overviews (podcasts) from notebook sources
- Video Generation: Create video overviews from notebook sources
- AI Querying: Ask questions about notebook sources
- Study Materials: Create flashcards, quizzes from sources
- Reports & Visuals: Generate reports, mind maps, slides, infographics, data tables
- Research: Discover and import new sources on topics
- Sharing: Make notebooks public, invite collaborators
- Download: Download generated artifacts (audio, video, slides, etc.)
Trigger Keywords: "notebooklm", "notebook lm", "audio overview", "podcast from sources", "create notebook", "add sources to notebook", "study materials", "flashcards from sources", "query notebook", "video overview", "research topic", "mind map"
Authentication
Browser Cookie Authentication
The nlm CLI authenticates by extracting cookies from your browser session with NotebookLM.
Initial Login:
# Default login (opens browser for cookie extraction)
nlm login
# Check if current auth is valid
nlm login --check
Profile Management (for multiple Google accounts):
# Login with a named profile
nlm login --profile work
nlm login --profile personal
# Switch default profile
nlm login switch <profile-name>
# Manage profiles
nlm login profile
Manual Cookie Mode (if browser extraction fails):
nlm login --manual --file cookies.txt
Diagnostics:
nlm doctor
Important: This authentication is completely separate from Google OAuth used by other Google skills (calendar, contacts, drive, docs, sheets). Each system maintains its own credentials.
Core Workflows
1. Notebook Management
List all notebooks:
nlm notebook list
Create a new notebook:
nlm notebook create "Research Project"
Get notebook details:
nlm notebook get <notebook_id>
Get AI-generated notebook summary:
nlm notebook describe <notebook_id>
Rename a notebook:
nlm notebook rename <notebook_id> "New Name"
Delete a notebook:
nlm notebook delete <notebook_id>
2. Source Management
Add a URL source:
nlm source add <notebook_id> --url "https://example.com/article"
Add a URL and wait for processing:
nlm source add <notebook_id> --url "https://example.com/article" --wait
Add text content directly:
nlm source add <notebook_id> --text "Your content here..."
Add a YouTube video:
nlm source add <notebook_id> --youtube "https://youtube.com/watch?v=..."
Add a local file (PDF, etc.):
nlm source add <notebook_id> --file document.pdf --wait
Add a Google Drive document:
nlm source add <notebook_id> --drive <drive_doc_id>
nlm source add <notebook_id> --drive <drive_doc_id> --type slides
Add source with custom title:
nlm source add <notebook_id> --url "https://example.com" --title "My Article"
List sources in a notebook:
nlm source list <notebook_id>
Get source details:
nlm source get <source_id>
Get AI-generated source summary:
nlm source describe <source_id>
Get raw source content:
nlm source content <source_id>
Delete a source:
nlm source delete <source_id>
Sync Drive sources with latest content:
nlm source sync <notebook_id>
Check for stale Drive sources:
nlm source stale <notebook_id>
3. Querying Notebooks (AI Chat)
Ask a question about notebook sources:
nlm notebook query <notebook_id> "What are the key findings?"
Or using the top-level query command:
nlm query notebook <notebook_id> "Summarize the main arguments"
4. Audio Overview (Podcast) Generation
Create audio overview with defaults (deep dive format):
nlm audio create <notebook_id> --confirm
Create with specific format:
# Formats: deep_dive, brief, critique, debate
nlm audio create <notebook_id> --format brief --confirm
nlm audio create <notebook_id> --format debate --confirm
nlm audio create <notebook_id> --format critique --confirm
Control length:
# Lengths: short, default, long
nlm audio create <notebook_id> --length short --confirm
nlm audio create <notebook_id> --length long --confirm
Specify language:
nlm audio create <notebook_id> --language es --confirm
Focus on specific topic:
nlm audio create <notebook_id> --focus "market trends" --confirm
Use specific sources only:
nlm audio create <notebook_id> --source-ids "src1,src2,src3" --confirm
Download the generated audio:
nlm download audio <notebook_id>
5. Video Overview Generation
Create video overview:
nlm video create <notebook_id>
Download generated video:
nlm download video <notebook_id>
6. Study Materials
Create flashcards:
nlm flashcards create <notebook_id>
Create quizzes:
nlm quiz create <notebook_id>
Download flashcards/quizzes:
nlm download flashcards <notebook_id>
nlm download quiz <notebook_id>
7. Reports, Visuals, and Artifacts
Create a report:
nlm report create <notebook_id>
Create a mind map:
nlm mindmap create <notebook_id>
Create slides:
nlm slides create <notebook_id>
Create an infographic:
nlm infographic create <notebook_id>
Create a data table:
nlm data-table create <notebook_id>
Download artifacts:
nlm download report <notebook_id> # Markdown
nlm download slide-deck <notebook_id> # PDF
nlm download infographic <notebook_id> # PNG
nlm download mind-map <notebook_id> # JSON
nlm download data-table <notebook_id> # CSV
8. Research and Discovery
Start a research task to find sources on a topic:
nlm research start <notebook_id> "topic description"
Check research progress:
nlm research status <task_id>
Import discovered sources:
nlm research import <task_id>
9. Sharing
Make notebook public (anyone with link can view):
nlm share public <notebook_id>
Make notebook private (restricted to collaborators):
nlm share private <notebook_id>
Invite a collaborator by email:
nlm share invite <notebook_id> --email user@example.com
Check sharing status:
nlm share status <notebook_id>
10. Studio Artifacts
List all studio artifacts and their status:
nlm studio status <notebook_id>
Rename an artifact:
nlm studio rename <artifact_id> "New Name"
Delete an artifact:
nlm studio delete <artifact_id>
11. Export to Google Workspace
Export artifacts to Google Docs/Sheets:
nlm export <artifact_id>
12. Aliases and Configuration
Set an alias for a notebook ID:
nlm alias set myproject <notebook_id>
# Then use alias instead of ID
nlm notebook get myproject
Manage configuration:
nlm config
Natural Language Examples
"Create a podcast about these articles"
# 1. Create a notebook
nlm notebook create "Article Podcast"
# 2. Add URL sources
nlm source add <notebook_id> --url "https://article1.com" --wait
nlm source add <notebook_id> --url "https://article2.com" --wait
nlm source add <notebook_id> --url "https://article3.com" --wait
# 3. Generate audio overview
nlm audio create <notebook_id> --format deep_dive --confirm
# 4. Download the audio file
nlm download audio <notebook_id>
"Summarize this YouTube video"
# 1. Create a notebook
nlm notebook create "Video Summary"
# 2. Add YouTube source
nlm source add <notebook_id> --youtube "https://youtube.com/watch?v=abc123" --wait
# 3. Query for summary
nlm notebook query <notebook_id> "Provide a comprehensive summary of this video"
"Create flashcards from this PDF"
# 1. Create a notebook
nlm notebook create "Study Material"
# 2. Upload the PDF
nlm source add <notebook_id> --file textbook-chapter.pdf --wait
# 3. Generate flashcards
nlm flashcards create <notebook_id>
# 4. Download flashcards
nlm download flashcards <notebook_id>
"Make a quick briefing podcast from these Google Docs"
# 1. Create a notebook
nlm notebook create "Weekly Briefing"
# 2. Add Google Drive docs
nlm source add <notebook_id> --drive <doc_id_1>
nlm source add <notebook_id> --drive <doc_id_2>
# 3. Generate brief audio overview
nlm audio create <notebook_id> --format brief --length short --confirm
# 4. Download audio
nlm download audio <notebook_id>
"Research and create a report on AI trends"
# 1. Create a notebook
nlm notebook create "AI Trends Research"
# 2. Start research
nlm research start <notebook_id> "latest AI trends 2026"
# 3. Check progress
nlm research status <task_id>
# 4. Import discovered sources
nlm research import <task_id>
# 5. Generate a report
nlm report create <notebook_id>
# 6. Download report
nlm download report <notebook_id>
"Share this notebook with my team"
# Check current sharing status
nlm share status <notebook_id>
# Invite team members
nlm share invite <notebook_id> --email alice@company.com
nlm share invite <notebook_id> --email bob@company.com
# Or make it public
nlm share public <notebook_id>
Error Handling
Not Authenticated:
{
"error": "Not authenticated",
"action": "Run 'nlm login' to authenticate via browser cookie extraction"
}
Action: Run nlm login to re-authenticate.
Notebook Not Found:
{
"error": "Notebook not found",
"action": "Verify notebook ID with 'nlm notebook list'"
}
Action: List notebooks to find correct ID with nlm notebook list.
Source Add Failed:
{
"error": "Failed to add source",
"action": "Check URL accessibility, file path, or Drive permissions"
}
Action: Verify the URL is accessible, the file exists, or Drive document is shared with your account.
Audio Generation Failed:
{
"error": "Audio creation failed",
"action": "Ensure notebook has at least one processed source"
}
Action: Verify sources are processed with nlm source list <notebook_id>, then retry.
Profile Not Found:
{
"error": "Profile not found",
"action": "Run 'nlm login --profile <name>' to create a new profile"
}
Action: Create the profile with nlm login --profile <name>.
Best Practices
- Create a notebook per topic/project -- keeps sources organized and queries focused
- Add multiple diverse sources before generating audio -- richer content produces better overviews
- Use
--waitwhen adding sources -- ensures processing completes before querying or generating - Query to verify ingestion -- use
nlm notebook queryto confirm sources are properly indexed before generating audio/video - Use profiles for work vs personal accounts --
nlm login --profile work/nlm login --profile personal - Use aliases for frequently accessed notebooks --
nlm alias set myproject <id>for convenience - Use
--formatfor audio variety --deep_divefor comprehensive,brieffor quick,debatefor contrasting views,critiquefor analysis - Download artifacts after generation -- use
nlm download <type> <notebook_id>to save locally - Sync Drive sources periodically --
nlm source syncto pull latest content changes - Use
nlm doctorfor diagnostics -- first step when troubleshooting any issue
Troubleshooting
Authentication Issues
# Run diagnostics first
nlm doctor
# Re-authenticate
nlm login
# Check if auth is valid
nlm login --check
# Try manual cookie mode if browser extraction fails
nlm login --manual --file cookies.txt
CLI Not Found
# Check if nlm is on PATH
which nlm
# Common location
ls ~/.local/bin/nlm
# Reinstall if needed
uv tool install notebooklm-mcp-cli
Source Processing Stuck
# Check source status
nlm source list <notebook_id>
# Get details on specific source
nlm source get <source_id>
# Try removing and re-adding
nlm source delete <source_id>
nlm source add <notebook_id> --url "https://..." --wait
Audio/Video Generation Not Starting
# Verify notebook has processed sources
nlm source list <notebook_id>
# Check studio status for existing artifacts
nlm studio status <notebook_id>
# Ensure you have at least one fully processed source before generating
Profile Issues
# List profiles
nlm login profile
# Switch to different profile
nlm login switch <profile-name>
# Re-authenticate a specific profile
nlm login --profile <name>
Version
- CLI: nlm v0.3.3 (notebooklm-mcp-cli)
- Skill: 1.0.0
- Run
nlm --versionto check installed version