Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Browser automation skill for controlling Google's NotebookLM. Use when the user wants anything done in NotebookLM (e.g., 'open NotebookLM', 'check my [name] notebook', 'ask my notebook about X', 'add [source] to NotebookLM', 'generate a Video Overview from my notebook', 'use NotebookLM Studio'). Handles reading and querying notebooks, adding sources (URLs, text, files, YouTube links, synthesized content), generating Studio outputs (Audio/Video Overviews, Mind Maps, Reports incl. Briefing Doc/Stu
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 421% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 368% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 172% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 171% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 107% | 0% |
> Requires: A browser automation environment (Claude Code CLI with computer-use, Claude Chrome Extension, or equivalent). Skill will gracefully fail in non-automation contexts with a clear "not supported" message.
> Critical: This skill is the only browser-automation skill in the v2 collection. It does NOT follow the research-pack Agent Integrity Rules convention. Different constraints apply (UI dynamics, async generation, login walls).
Before any other action, verify browser automation is available:
Up to 4 forcing questions, one at a time, dependency-ordered. Most invocations stop at Q3.
> What do you want me to do? Pick one: > > 1. Read / extract — ask a question of an existing notebook > 2. Add a source — push content (URL, text, file, Google Doc, or synthesized content) into a notebook > 3. Generate a Studio output — Audio/Video Overview, Mind Map, Report (Briefing Doc, Study Guide, FAQ, Timeline), Flashcards, Quiz, Infographic, or Slides — the exact set comes from the live Studio panel > 4. Create a new notebook — initialize with title + initial sources > > Why I'm asking: Each action takes a different path through the UI and requires different parameters. Naming the action upfront prevents wasted screenshots and lets me ask only the follow-up questions that apply.
Forcing choice. If the user says "open NotebookLM" without specifying an action, refuse to start and re-ask Q1.
> Which notebook? (asked for actions 1, 2, 3 — not for "create new") > > Why I'm asking: If you give me a name, I'll search the homepage; if you give me a URL, I'll navigate directly. Names that are ambiguous will get a disambiguation prompt with screenshots.
For action 4 (create new): replace with "What's the title for the new notebook?"
Action 1 (read/extract): > "What's the question to ask the notebook? Use natural phrasing — the notebook's chat handles it best."
Action 2 (add source): > "What source type? Pick one: > 1. URL / website / YouTube link > 2. Copied text (paste here or point at content) > 3. File upload (provide absolute path) > 4. Google Doc (link) > 5. Synthesized content (I'll pre-process and add as 'Copied text') > > Why I'm asking: Each source type goes through a different sub-flow in the Add Source dialog. Picking upfront saves a step."
Action 3 (Studio output): > "Which Studio output? As of 2026-06 the Studio panel offers Audio Overview, Video Overview, Mind Map, Reports (Briefing Doc / Study Guide / FAQ / Timeline / custom), Flashcards, Quiz, Infographic, and Slides — I'll screenshot the live panel and confirm what your account actually shows before clicking. And: any custom-prompt direction? Default prompts produce mediocre output — I always open the customization menu and write a detailed prompt. Tell me the angle or audience. > > Why I'm asking: The output type sets the UI button to find. The custom prompt is mandatory for quality."
Action 4 (create new): > "Initial sources? Provide URLs, file paths, or 'I'll add later'."
> Tell me the angle, audience, and length for the Studio output. Examples: > > - Audio Overview: "Two-host conversation for a non-technical executive, 8–10 min, focus on business implications not technical depth" > - Infographic: "Decision-tree style, action-oriented, 6 panels max, monochrome navy" > - Study Guide: "Undergrad-level, definitions + 3 practice questions per concept" > > Why I'm asking: This becomes the custom prompt. Default Studio prompts produce mediocre output — specific direction produces sharp output.
Asked only for Studio output generation (Q1=3). Skip otherwise.
Stop condition: After Q4 (or earlier with dependency skips), commit and start the action sequence.
See references/studio_output_custom_prompts.md for the canon.
For actions 1-3 (require existing notebook):
For action 4 (create new):
Sub-flows per source type:
| Type | UI flow | |---|---| | URL / Website / YouTube | Add Source → Link → paste URL | | Copied Text | Add Source → Copied text → paste content | | File Upload | Use file-upload tool with absolute path + input ref (never click native file picker) | | Google Doc | Add Source → Google Docs → Drive picker | | Synthesized content | Pre-process content elsewhere, then add as Copied text |
After every add: wait for ingestion spinner, screenshot to confirm success.
Synthesized content pattern (powerful): instead of asking NotebookLM to ingest a raw URL with potentially noisy content, pre-process the content (extract main article, strip nav/ads/comments), then add as "Copied text". Produces dramatically better summarization.
Discover, don't assume. NotebookLM's Studio inventory changes between rollouts and account tiers. As of the last verification (2026-06) the panel offers: Audio Overview, Video Overview, Mind Map, Reports (Briefing Doc, Study Guide, FAQ, Timeline, custom report formats), Flashcards, Quiz, Infographic, Slides. Treat this list as a hint, not ground truth — the screenshot of the live Studio panel is the authority. NotebookLM's UI evolves quickly; verify against the live product and update this section when it drifts (Studio inventory last verified 2026-06).
Mandatory workflow:
Audio Overview: > "Two-host conversation between a researcher and an experienced practitioner. Audience: non-technical executive making a budget decision. Length: 8-10 minutes. Focus on business implications, not technical depth. Include one concrete example per major point. Acknowledge counter-arguments briefly."
Infographic: > "Decision-tree style. Action-oriented (each panel ends with a decision or action). 6 panels max. Monochrome navy + amber highlight. Each panel has: title (4-6 words), 1-2 sentence body, decision/action line. No filler panels."
Study Guide: > "Undergraduate-level (define every technical term). Structure: 6 concepts × 4 elements each (definition / why it matters / one worked example / 3 practice questions). Practice questions Bloom-higher-order (apply/analyze), not recall."
Slides (slide deck): > "12 slides max. 1-2 sentences per slide body. Presenter notes per slide with: one concrete example + one likely audience objection + how to address it. No bullet points in slide bodies — prose only. End with one-slide call-to-action."
See references/studio_output_custom_prompts.md for more.
> Async output rule: For Studio generations (especially Audio Overview — 5-10 min), DO NOT wait for completion. The user's session will time out. > > Workflow: Click Generate → confirm generation has started via screenshot → tell the user "Generation in progress — NotebookLM will notify you when ready" → end the task.
This is the fire-and-notify pattern. Different from add-source and auto-summary (which are fast enough to wait).
Use scripts/async_action_classifier.py to determine wait-or-notify per action:
| Action | Wait? | |---|---| | Add Source (URL/text/file) | Yes — wait for ingestion spinner (~5-30s) | | Read/Extract (chat) | Yes — wait 3-5s for response | | Studio: Audio Overview | No — fire and notify (5-10 min) | | Studio: Video Overview | No — fire and notify (5-15 min) | | Studio: Infographic / Slides / Mind Map | No — fire and notify (2-5 min) | | Studio: Study Guide / Briefing Doc / FAQ / Flashcards / Quiz | Yes — wait ~30-60s | | Create New Notebook | Yes — wait for auto-summary (<30s) |
bash# Verdict + paste-ready notify message for any action python3 scripts/async_action_classifier.py --action "video overview" # -> Verdict: FIRE_AND_NOTIFY, estimated 5-15 minutes, with the exact # "NOT waiting in this session" message to relay to the user
See references/async_action_discipline.md for the canon.
NotebookLM is a dynamic SPA where UI varies by:
Every UI action must be preceded by a screenshot. Reasons:
Use screenshot() (or equivalent in your browser-automation tool) before every meaningful UI interaction.
See references/browser_automation_canon.md for the discipline.
Use semantic element finders before pixel coordinates wherever possible:
find(text="Audio Overview") → returns element regardless of positionclick(x=420, y=380) → breaks when UI rearrangesSemantic finders survive minor UI changes. Pixel coordinates do not.
Only fall back to coordinates when:
For Read/Extract actions producing useful information:
${WORKSPACE}/notebooklm/<notebook-slug>-<action>-<date>.md)For Studio outputs:
After completing any action:
| Failure | Behavior | |---|---| | Browser automation unavailable | Fail fast with "this skill requires browser automation" message (Step 0 halt) | | Login wall detected | Stop. Tell user to log in. Don't attempt auto-login. | | Multiple notebooks match name | Screenshot homepage, list options, ask user to specify | | Source ingestion spinner stuck > 60s | Note timeout, ask user if they want to retry | | Studio button not found in panel | Scroll down or look for "Discover more"; if still missing, note feature may not be enabled for this account | | Chat response doesn't appear in 10s | Screenshot, check for error state, retry once | | Page layout changed unexpectedly | Screenshot, describe what's visible, ask user for guidance |
| Script | Role | |---|---| | scripts/action_router.py | Q1-Q4 answers → action plan + UI flow + required parameters | | scripts/custom_prompt_template_generator.py | Studio output type + audience + length → starter custom prompt | | scripts/async_action_classifier.py | Action name → wait-or-notify pattern (fire-and-notify for slow generations) |
references/browser_automation_canon.md — screenshot-first + find-before-click + tool-agnostic patterns (7+ sources)references/studio_output_custom_prompts.md — why defaults are mediocre + per-output-type templates (7+ sources)references/async_action_discipline.md — fire-and-notify pattern for slow UI ops (7+ sources)Version: 1.0.0 Source spec: megaprompts/03-notebooklm-megaprompt.md Build pattern: Path B (direct conversion). Browser-automation shape — distinct from research-pack convention.
Other measured skills in the registry, with their headline benchmark lift.