NotebookLM Automation
Automates the creation of multiple audio overviews in Google NotebookLM with different prompts and configurations.
Overview
This skill uses Playwright to automate NotebookLM's browser interface for:
- •Creating a new notebook
- •Adding website sources
- •Generating multiple audio overviews with custom prompts
- •Downloading all generated audio files
The automation handles the repetitive UI interactions, waiting for generation to complete, and downloading all outputs.
Workflow
The automation follows these steps:
- •Prepare input - Create JSON file with sources and audio overview configurations
- •Launch automation - Run the Playwright script
- •Notebook creation - Script creates new notebook and adds sources
- •Audio generation - Script creates each audio overview with specified prompt and length
- •Wait for completion - Script waits ~10 minutes for all audio to generate
- •Download outputs - Script downloads all audio files to
/home/claude/
Input Format
Create a JSON file with this structure:
{
"sources": [
"https://example.com/article1",
"https://example.com/page2"
],
"audio_overviews": [
{
"prompt": "Focus on technical concepts for developers",
"length": "longer"
},
{
"prompt": "Create executive summary of business impacts",
"length": "default"
}
]
}
Field Specifications
sources: Array of website URLs to use as source material
- •Must be publicly accessible URLs
- •NotebookLM will crawl and index these pages
audio_overviews: Array of audio overview configurations
- •prompt: Text describing what the AI should focus on in this episode
- •length: Either
"default"or"longer"(never use"shorter")
See references/example_input.json for a complete example.
Usage
Basic Usage
python scripts/generate_audio_overviews.py input.json
This runs with visible browser so you can monitor progress and handle Google authentication if needed.
Headless Mode
python scripts/generate_audio_overviews.py input.json --headless
Run browser in headless mode (requires existing authentication).
Custom Timeout
python scripts/generate_audio_overviews.py input.json --timeout 900
Set custom timeout for audio generation (in seconds). Default is 600 seconds (10 minutes).
Prerequisites
Required Software
Install Playwright and dependencies:
pip install playwright playwright install chromium
Google Account Setup
- •Must have access to NotebookLM (https://notebooklm.google.com)
- •First run will require Google authentication
- •Browser state is not persisted between runs
Output
Audio files are downloaded to /home/claude/ with NotebookLM's default naming:
- •Format: MP3
- •Naming: Typically includes date/timestamp
The script reports download success for each file and provides summary at completion.
Troubleshooting
Common Issues
Authentication Required
- •Run without
--headlessflag - •Sign in to Google when prompted
- •Consider using persistent browser context for repeated use
Selectors Not Found
- •NotebookLM's UI may have changed
- •See
references/troubleshooting.mdfor selector update guidance - •Run without
--headlessto observe actual UI
Timeout During Generation
- •Audio generation takes ~5-10 minutes per overview
- •Increase timeout with
--timeoutflag - •Script will attempt downloads even after timeout
Sources Not Loading
- •Verify URLs are accessible and public
- •Check for NotebookLM error messages in browser
- •Some content may be blocked or require authentication
Getting Help
For selector updates and detailed troubleshooting, read references/troubleshooting.md.
Limitations
- •Requires manual Google authentication on first run
- •Browser automation may be fragile if NotebookLM's UI changes significantly
- •Cannot create more than ~10 audio overviews at once (NotebookLM limitation)
- •Sources must be publicly accessible websites
- •Generation time increases with number of sources and overview length