NotebookLM Studio
Import sources into NotebookLM, generate user-selected artifacts via CLI, download results locally.
Inputs
Collect from user message (ask only for missing fields):
- Sources: URLs, YouTube links, text notes, or file attachments (PDF, Word, audio, image, Google Drive link)
- Artifacts: User selects from 9 types (no default — always ask):
audio(podcast),video,report,quiz,flashcards,mind-map,slide-deck,infographic,data-table
- Language (optional, default:
zh_Hant): applied vianotebooklm language set - Artifact options: format, style, length, difficulty, etc.
- Custom instructions (optional): passed as description to generate commands
Workflow
Steps are sequential gates — do NOT skip or combine steps.
-
Auth precheck — Verify the session is valid:
notebooklm auth check --test --json -
Parse input & configure artifacts —
- 1a. Select artifacts
- 1b. Discuss options (ASK / OFFER / SILENT priority levels)
-
Derive slug — Generate a short kebab-case slug for the notebook name and output directory.
-
Create notebook —
notebooklm create "<slug> <YYYYMMDD>" notebooklm use <notebook_id> mkdir -p ./output/<slug> -
Set language —
notebooklm language set <confirmed_language> -
Add sources — For each source:
notebooklm source add "<url_or_filepath>" -
Generate artifacts — Two-tier strategy:
- Tier 1 (Immediate): mind-map, report, quiz, flashcards, data-table, infographic — use
--wait - Tier 2 (Deferred): slide-deck, video, audio — use
--json, capturetask_idfor polling
- Tier 1 (Immediate): mind-map, report, quiz, flashcards, data-table, infographic — use
-
Download Tier 1 — Each artifact into
./output/<slug>/ -
Report + Deliver Tier 1 — Present completed artifacts to user
-
Poll + Deliver Tier 2 — Wait for deferred artifacts, download and deliver as each completes
Artifact Types
| Type | Tier | Typical Time |
|---|---|---|
| mind-map | 1 | Instant |
| report | 1 | 1-2 min |
| quiz | 1 | 1-2 min |
| flashcards | 1 | 1-2 min |
| data-table | 1 | 1-2 min |
| infographic | 1 | 2-5 min |
| slide-deck | 2 | 5-15 min |
| video | 2 | 10-30 min |
| audio (podcast) | 2 | 10-30 min |
Requirements
notebooklmCLI (notebooklm-py)ffmpeg(for audio compression)playwright(for browser automation)
Error Handling
- Auth errors: Caught by step 0 precheck. Re-login if expired.
- Tier 1 failure: Retry up to 2 times, then include failure note in delivery.
- Tier 2 failure: Notify user per-artifact. Tier 1 already delivered.
- Timeout recovery: Never re-generate on timeout. Re-check status, re-wait if still processing.
Delivery Template
- Selection rationale (≤3 bullets)
- Artifact list with paths/status
- Key takeaways (3-5 bullets)
- Failures + fallback note (if any)
- One discussion question