Loading...
Loading...
Turn one document into a kawaii NotebookLM slide-deck PDF. Use for "wowerpoint this", "make a deck about <file>", "turn this report into slides", or any request to render a single document as shareable narrative slides.
npx skill4agent add thedotmack/claude-mem wowerpointnotebooklmnotebooklm auth checkcommand -v jquv tool install --with playwright --force notebooklm-py
$(uv tool dir)/notebooklm-py/bin/playwright install chromiumjqbrew install jq! notebooklm loginnotebooklm auth check 2>&1 | tail -5Run 'notebooklm login' to authenticate.NOTEBOOK_ID=$(notebooklm create "<title>" --json | jq -r .notebook.id)
SOURCE_ID=$(notebooklm source add "<doc-path>" --notebook "$NOTEBOOK_ID" --json | jq -r .source.id)create.notebook.idsource add.source.idgenerate.task_idrun_in_background: truehttps://notebooklm.google.com/notebook/<NOTEBOOK_ID><source-dir>/<source-stem>-slides.pdfreports/<stem>-slides.pdfUse kawaii characters to tell the story of <subject>. Keep it warm and clear.<subject>You're handling NotebookLM slide-deck generation. Work in `<repo-absolute-path>`.
Context:
- The `notebooklm` CLI is installed and authenticated (parent verified with `notebooklm auth check`).
- A notebook and source already exist.
Inputs:
- Notebook ID: `<NOTEBOOK_ID>`
- Source ID: `<SOURCE_ID>`
- Generation prompt: `<PROMPT>`
- Output path: `<OUTPUT_PATH>`
Steps:
1. Wait for source: `notebooklm source wait <SOURCE_ID> -n <NOTEBOOK_ID> --timeout 600`
Exit 0 = ready, 1 = error, 2 = timeout. On timeout, run `notebooklm source list -n <NOTEBOOK_ID> --json` and report status.
2. Generate: `notebooklm generate slide-deck "<PROMPT>" --format detailed --length default --notebook <NOTEBOOK_ID> --json --retry 2`
Parse `task_id` from the JSON (key is `task_id` at top level).
On `GENERATION_FAILED` or "No result found for RPC ID": sleep 300, retry once, then give up.
3. Wait for artifact: `notebooklm artifact wait <task_id> -n <NOTEBOOK_ID> --timeout 1800`
4. Download: `notebooklm download slide-deck <OUTPUT_PATH> -a <task_id> -n <NOTEBOOK_ID>`
5. Verify: `ls -la <OUTPUT_PATH>` confirms the file exists.
Report briefly (under 200 words):
- Final artifact ID
- Time per phase (source wait, generation, render wait, download)
- Output file path + size
- Any retries or warnings
- Exact error message if any step failed
Do NOT poll status manually. The `wait` commands handle backoff.pip: command not founduv tool installPlaywright not installednotebooklm-py--with playwrightplaywright install chromiumRun 'notebooklm login' to authenticatetask_idgenerate{"task_id": "..."}GENERATION_FAILED--retry 2--length longdefault|shortdefault--styleNOTEBOOK_IDSOURCE_IDnotebooklm artifact list -n <NOTEBOOK_ID>download