NotebookLM Audio Generator Skill
This skill automates the process of using Google's NotebookLM to generate a deep-dive audio overview from various sources and download it to a specified directory.
Prerequisites
This skill relies on the notebooklm-mcp-cli package and the epub2txt utility for .epub support. Before proceeding, ensure the user has them installed and authenticated.
Installation & Setup
If the user has not set up the CLI or the conversion tool, instruct them to do so first:
- Install the NotebookLM CLI:
uv tool install notebooklm-mcp-cli # OR pip install notebooklm-mcp-cli - Authenticate:
nlm login - Install epub2txt (for .epub support):
The skill expects
epub2txtto be installed in your programs directory. Clone and initialize it using the following commands:mkdir -p ~/Programs cd ~/Programs git clone https://github.com/SPACESODA/epub2txt.git cd epub2txt chmod +x run.sh ./run.sh # This initializes the virtual environment
Workflow
When activated, follow these steps strictly in order. Do not skip steps.
Step 1: Gather Information
Ask the user for the following information one by one to prepare for the generation:
- Ask for a desired name for the new notebook. If not provided, use the default name "Audio Overview Notebook".
- Source Selection: Ask the user to select their sources from the following options:
- Local Files:
.pdf,.txt, and.epub(which will be automatically converted). Use GUI pickers:- macOS:
osascript -e "set theFiles to choose file with prompt \"Select your source file(s):\" multiple selections allowed true" ... - Linux:
zenity --file-selection --multiple ... - Windows: PowerShell
OpenFileDialog.
- macOS:
- Web/Video URLs: Ask the user to provide any website or YouTube URLs.
- Google Drive: Ask for Google Drive Document IDs.
- Local Files:
- Preferred Language: Ask the user for the preferred output language (BCP-47 code).
- Options: Provide common choices:
en(English - default),zh(Chinese),ja(Japanese),es(Spanish),fr(French),de(German).
- Options: Provide common choices:
- Download Destination: Use a GUI directory picker to select where the audio file should be saved.
Crucial: Ask the user interactively to confirm they have provided/selected all the sources they wish to include before proceeding.
Step 2: Create a New Notebook
Use the notebook_create tool to create a new notebook with the provided name. Keep track of the notebook_id.
Step 3: Upload Sources
- Loop through all gathered sources:
- EPUB Files: Convert to
.txtfirst:cd ~/Programs/epub2txt && ./run.sh "<path>". Use the new.txtpath. - Other Files: Use
source_add(source_type="file", file_path="..."). - URLs/YouTube: Use
source_add(source_type="url", url="..."). - Drive: Use
source_add(source_type="drive", document_id="...").
- EPUB Files: Convert to
- Always set
wait=trueto ensure sources are processed.
Step 4: Generate Audio Overview
- Use the
studio_createtool to start the audio generation.- Set
notebook_idto the ID. - Set
artifact_typetoaudio. - Set
audio_formattodeep_dive. - Set
audio_lengthtolong. - Language: Use the user's selected BCP-47 code (e.g.,
zh). - Custom Prompt: If the selected language is NOT English (
en), you MUST provide the followingfocus_promptto encourage a longer, more detailed output:"Please provide an extremely detailed deep dive. Analyze each source file thoroughly without omitting any details. The conversation should be as long as possible, aiming for over 40 minutes."
- Set
confirmtotrue.
- Set
Step 5: Monitor Generation Status
- Inform the user: Explicitly tell the user that generating a long, deep-dive audio overview can take 5 to 15 minutes.
- Use the
studio_statustool withaction: statusin a polling loop (usingrun_shell_commandwithsleep 300between checks) until thestatusbecomescompleted. - Note the
audio_urlandartifact_idwhen finished. Crucial: If there are multiple audio artifacts returned in the status, always identify and note the latest one (the one with the most recentcreated_attimestamp).
Step 6: Download the Audio
- Using the
artifact_idof the latest audio, try using thedownload_artifacttool first to save the audio to the destination path with an.mp3extension.
Step 7: Final Verification
- Verify the downloaded file using
file <output_path>. - Inform the user that the process is complete.