Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/teng-lin/notebooklm-py/llms.txt

Use this file to discover all available pages before exploring further.

NotebookLM Studio exposes nine content types through notebooklm-py, covering everything from audio podcasts to structured data tables. Each type has its own set of format and style options, and most support multilingual output through the --language flag. You can access every type via the CLI or the Python API, and download results in multiple file formats—several of which are not available through the web UI.

Content types at a glance

TypeOptionsCLI commandDownload format
Audio overview4 formats, 3 lengths, 50+ languagesgenerate audioMP3 / MP4
Video overview3 formats, 9 visual stylesgenerate videoMP4
Slide deck2 formats, 2 lengths; per-slide revisiongenerate slide-deckPDF, PPTX
Infographic3 orientations, 3 detail levelsgenerate infographicPNG
Quizconfigurable quantity and difficultygenerate quizJSON, Markdown, HTML
Flashcardsconfigurable quantity and difficultygenerate flashcardsJSON, Markdown, HTML
Report4 formats with template customizationgenerate reportMarkdown
Data tablenatural-language structure descriptiongenerate data-tableCSV
Mind mapsynchronous, instant outputgenerate mind-mapJSON

Audio overview (podcast)

An audio overview produces a spoken conversation about your sources. You can choose the conversational style, duration, and language. The deep-dive format is the default and produces the most thorough discussion.
# Default deep-dive podcast, wait for completion
notebooklm generate audio --wait

# Debate format with custom instructions
notebooklm generate audio "Compare the two main viewpoints" --format debate --wait

# Short briefing in Japanese
notebooklm generate audio --format brief --length short --language ja --wait

# Download the result
notebooklm download audio ./podcast.mp3
Formats: deep-dive (default), brief, critique, debate Lengths: short, default, long

Video overview

A video overview produces an animated explainer of your sources. Use the cinematic format (or the cinematic-video CLI alias) for a more cinematic style.
# Whiteboard-style explainer
notebooklm generate video --style whiteboard --wait

# Cinematic format via alias
notebooklm generate cinematic-video "Documentary about quantum physics" --wait

# Download
notebooklm download video ./overview.mp4
notebooklm download cinematic-video ./documentary.mp4
Formats: explainer (default), brief, cinematic Styles: auto, classic, whiteboard, kawaii, anime, watercolor, retro-print, heritage, paper-craft

Slide deck

A slide deck generates a presentation from your sources. You can choose between a detailed format (more slides with content) and a presenter format (fewer, punchier slides). After generation, use revise-slide to modify individual slides with a natural-language prompt.
# Generate a detailed slide deck
notebooklm generate slide-deck --format detailed --wait

# Revise the first slide (zero-indexed)
notebooklm generate revise-slide "Move the title up and make it bolder" \
  --artifact <artifact_id> --slide 0 --wait

# Download as PDF (default) or PPTX
notebooklm download slide-deck ./slides.pdf
notebooklm download slide-deck --format pptx ./slides.pptx

Infographic

An infographic produces a single image summarizing your sources. Control the orientation and level of detail to match your use case.
notebooklm generate infographic --orientation portrait --detail detailed --wait
notebooklm download infographic ./infographic.png
Orientations: landscape, portrait, square Detail levels: concise, standard, detailed

Quiz

A quiz generates multiple-choice questions from your sources. You can control difficulty and roughly how many questions are produced. Download in JSON (structured), Markdown (human-readable), or HTML (raw) format.
notebooklm generate quiz --difficulty hard --quantity more --wait
notebooklm download quiz --format markdown quiz.md
notebooklm download quiz --format json quiz.json

Flashcards

Flashcards work the same way as quizzes—same difficulty and quantity options, same download formats. The downloaded JSON normalizes the API’s f/b keys to front/back for readability.
notebooklm generate flashcards --difficulty medium --wait
notebooklm download flashcards cards.json
notebooklm download flashcards --format markdown cards.md

Report

A report generates a structured text document. Choose from four formats: briefing-doc, study-guide, blog-post, or custom. For the built-in formats, use --append to add extra instructions without losing the format’s built-in structure.
# Study guide with extra instructions
notebooklm generate report --format study-guide \
  --append "Target audience: beginners" --wait

# Custom prompt (use positional description + --format custom)
notebooklm generate report "Write a white paper analyzing key trends" \
  --format custom --wait

notebooklm download report ./study-guide.md

Data table

A data table produces a structured spreadsheet in CSV format. Describe the structure you want in natural language as the required description argument.
notebooklm generate data-table "compare key concepts across sources" --wait
notebooklm download data-table ./research-data.csv

Mind map

A mind map produces a hierarchical JSON tree of concepts from your sources. Unlike all other content types, mind map generation is synchronous—it completes immediately and you do not need to wait for it.
Mind map is the only generation type that is synchronous. You do not need --wait in the CLI or wait_for_completion in Python. The result is returned directly.
# No --wait needed
notebooklm generate mind-map
notebooklm download mind-map ./concept-map.json

Features beyond the web UI

Several download and generation features are available only through the CLI or Python API—not through NotebookLM’s web interface.
FeatureCommandDescription
Batch downloadsdownload <type> --allDownload all artifacts of a type at once
Quiz / flashcard exportdownload quiz --format jsonExport as JSON, Markdown, or HTML
Mind map data extractiondownload mind-mapExport hierarchical JSON for visualization tools
Data table exportdownload data-tableDownload structured tables as CSV
Slide deck as PPTXdownload slide-deck --format pptxDownload editable PowerPoint (web UI only offers PDF)
Slide revisiongenerate revise-slide "prompt" --artifact <id> --slide NModify individual slides with natural language
Report template appendgenerate report --format study-guide --append "..."Append custom instructions to built-in templates
Source fulltext accesssource fulltext <id>Retrieve the indexed text content of any source
Save chat to notesask "..." --save-as-noteSave Q&A answers as notebook notes

Export to Google Docs and Sheets

Reports and data tables can be exported directly to your Google Drive.
# Export a report to Google Docs
notebooklm artifact export <artifact_id> --type docs --title "My Briefing Doc"

# Export a data table to Google Sheets
notebooklm artifact export <artifact_id> --type sheets --title "Research Data"

Waiting for completion

Most generation commands are asynchronous. Use artifact wait or the Python wait_for_completion method when you need the file before continuing.
Use artifact wait <id> in a background task or subagent rather than blocking the main conversation. Audio and video generation can take 10 to 45 minutes.
# Start generation, capture task ID from JSON output
TASK_ID=$(notebooklm generate audio --json | jq -r .task_id)

# Later: wait for the artifact and download
notebooklm artifact wait $TASK_ID
notebooklm download audio ./podcast.mp3

Rate limiting and retries

Use --retry N to automatically retry generation on rate-limit errors with exponential backoff. This is especially useful in batch scripts.
notebooklm generate quiz --retry 3 --wait
notebooklm generate audio --retry 5 --format debate --wait

Multilingual output

All generate commands accept --language to override the global language setting for that one invocation. Set the global language with notebooklm language set <code>.
notebooklm generate audio --language ja --wait    # Japanese podcast
notebooklm generate video --language zh_Hans --wait  # Chinese video
notebooklm generate report --language de --format study-guide --wait  # German study guide
Run notebooklm language list to see all 80+ supported language codes.

Build docs developers (and LLMs) love