- name
- notebooklm-audio-generator
- description
- Automates uploading multiple sources (files, URLs, YouTube, Drive, text) to a NotebookLM notebook, generating a deep dive audio overview in a preferred language, and downloading the result. It guides the user through notebook management, source addition, audio generation, and downloading using the notebooklm-mcp-cli.
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 epub2txt to 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 environmentWorkflow
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. - Web/Video URLs: Ask the user to provide any website or YouTube URLs. - Google Drive: Ask for Google Drive Document IDs.
- 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).
- 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 .txt first: cd ~/Programs/epub2txt && ./run.sh "<path>". Use the new .txt path. - 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="...").
- Always set
wait=trueto ensure sources are processed.
Step 4: Generate Audio Overview
- Use the
studio_createtool to start the audio generation.
- Set notebook_id to the ID. - Set artifact_type to audio. - Set audio_format to deep_dive. - Set audio_length to long. - 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 following focus_prompt to 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 confirm to true.
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.