Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Query Google NotebookLM notebooks from Claude Code for source-grounded, citation-backed answers from Gemini.
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
references/troubleshooting.md
1# NotebookLM Skill Troubleshooting Guide23## Quick Fix Table45| Error | Solution |6|-------|----------|7| ModuleNotFoundError | Use `python scripts/run.py [script].py` |8| Authentication failed | Browser must be visible for setup |9| Browser crash | `python scripts/run.py cleanup_manager.py --preserve-library` |10| Rate limit hit | Wait 1 hour or switch accounts |11| Notebook not found | `python scripts/run.py notebook_manager.py list` |12| Script not working | Always use run.py wrapper |1314## Critical: Always Use run.py1516Most issues are solved by using the run.py wrapper:1718```bash19# ✅ CORRECT - Always:20python scripts/run.py auth_manager.py status21python scripts/run.py ask_question.py --question "..."2223# ❌ WRONG - Never:24python scripts/auth_manager.py status # ModuleNotFoundError!25```2627## Common Issues and Solutions2829### Authentication Issues3031#### Not authenticated error32```33Error: Not authenticated. Please run auth setup first.34```3536**Solution:**37```bash38# Check status39python scripts/run.py auth_manager.py status4041# Setup authentication (browser MUST be visible!)42python scripts/run.py auth_manager.py setup43# User must manually log in to Google4445# If setup fails, try re-authentication46python scripts/run.py auth_manager.py reauth47```4849#### Authentication expires frequently50**Solution:**51```bash52# Clear old authentication53python scripts/run.py cleanup_manager.py --preserve-library5455# Fresh authentication setup56python scripts/run.py auth_manager.py setup --timeout 155758# Use persistent browser profile59export PERSIST_AUTH=true60```6162#### Google blocks automated login63**Solution:**641. Use dedicated Google account for automation652. Enable "Less secure app access" if available663. ALWAYS use visible browser:67```bash68python scripts/run.py auth_manager.py setup69# Browser MUST be visible - user logs in manually70# NO headless parameter exists - use --show-browser for debugging71```7273### Browser Issues7475#### Browser crashes or hangs76```77TimeoutError: Waiting for selector failed78```7980**Solution:**81```bash82# Kill hanging processes83pkill -f chromium84pkill -f chrome8586# Clean browser state87python scripts/run.py cleanup_manager.py --confirm --preserve-library8889# Re-authenticate90python scripts/run.py auth_manager.py reauth91```9293#### Browser not found error94**Solution:**95```bash96# Install Chromium via run.py (automatic)97python scripts/run.py auth_manager.py status98# run.py will install Chromium automatically99100# Or manual install if needed101cd ~/.claude/skills/notebooklm102source .venv/bin/activate103python -m patchright install chromium104```105106### Rate Limiting107108#### Rate limit exceeded (50 queries/day)109**Solutions:**110111**Option 1: Wait**112```bash113# Check when limit resets (usually midnight PST)114date -d "tomorrow 00:00 PST"115```116117**Option 2: Switch accounts**118```bash119# Clear current auth120python scripts/run.py auth_manager.py clear121122# Login with different account123python scripts/run.py auth_manager.py setup124```125126**Option 3: Rotate accounts**127```python128# Use multiple accounts129accounts = ["account1", "account2"]130for account in accounts:131# Switch account on rate limit132subprocess.run(["python", "scripts/run.py", "auth_manager.py", "reauth"])133```134135### Notebook Access Issues136137#### Notebook not found138**Solution:**139```bash140# List all notebooks141python scripts/run.py notebook_manager.py list142143# Search for notebook144python scripts/run.py notebook_manager.py search --query "keyword"145146# Add notebook if missing147python scripts/run.py notebook_manager.py add \148--url "https://notebooklm.google.com/..." \149--name "Name" \150--topics "topics"151```152153#### Access denied to notebook154**Solution:**1551. Check if notebook is still shared publicly1562. Re-add notebook with updated URL1573. Verify correct Google account is used158159#### Wrong notebook being used160**Solution:**161```bash162# Check active notebook163python scripts/run.py notebook_manager.py list | grep "active"164165# Activate correct notebook166python scripts/run.py notebook_manager.py activate --id correct-id167```168169### Virtual Environment Issues170171#### ModuleNotFoundError172```173ModuleNotFoundError: No module named 'patchright'174```175176**Solution:**177```bash178# ALWAYS use run.py - it handles venv automatically!179python scripts/run.py [any_script].py180181# run.py will:182# 1. Create .venv if missing183# 2. Install dependencies184# 3. Run the script185```186187#### Wrong Python version188**Solution:**189```bash190# Check Python version (needs 3.8+)191python --version192193# If wrong version, specify correct Python194python3.8 scripts/run.py auth_manager.py status195```196197### Network Issues198199#### Connection timeouts200**Solution:**201```bash202# Increase timeout203export TIMEOUT_SECONDS=60204205# Check connectivity206ping notebooklm.google.com207208# Use proxy if needed209export HTTP_PROXY=http://proxy:port210export HTTPS_PROXY=http://proxy:port211```212213### Data Issues214215#### Corrupted notebook library216```217JSON decode error when listing notebooks218```219220**Solution:**221```bash222# Backup current library223cp ~/.claude/skills/notebooklm/data/library.json library.backup.json224225# Reset library226rm ~/.claude/skills/notebooklm/data/library.json227228# Re-add notebooks229python scripts/run.py notebook_manager.py add --url ... --name ...230```231232#### Disk space full233**Solution:**234```bash235# Check disk usage236df -h ~/.claude/skills/notebooklm/data/237238# Clean up239python scripts/run.py cleanup_manager.py --confirm --preserve-library240```241242## Debugging Techniques243244### Enable verbose logging245```bash246export DEBUG=true247export LOG_LEVEL=DEBUG248python scripts/run.py ask_question.py --question "Test" --show-browser249```250251### Test individual components252```bash253# Test authentication254python scripts/run.py auth_manager.py status255256# Test notebook access257python scripts/run.py notebook_manager.py list258259# Test browser launch260python scripts/run.py ask_question.py --question "test" --show-browser261```262263### Save screenshots on error264Add to scripts for debugging:265```python266try:267# Your code268except Exception as e:269page.screenshot(path=f"error_{timestamp}.png")270raise e271```272273## Recovery Procedures274275### Complete reset276```bash277#!/bin/bash278# Kill processes279pkill -f chromium280281# Backup library if exists282if [ -f ~/.claude/skills/notebooklm/data/library.json ]; then283cp ~/.claude/skills/notebooklm/data/library.json ~/library.backup.json284fi285286# Clean everything287cd ~/.claude/skills/notebooklm288python scripts/run.py cleanup_manager.py --confirm --force289290# Remove venv291rm -rf .venv292293# Reinstall (run.py will handle this)294python scripts/run.py auth_manager.py setup295296# Restore library if backup exists297if [ -f ~/library.backup.json ]; then298mkdir -p ~/.claude/skills/notebooklm/data/299cp ~/library.backup.json ~/.claude/skills/notebooklm/data/library.json300fi301```302303### Partial recovery (keep data)304```bash305# Keep auth and library, fix execution306cd ~/.claude/skills/notebooklm307rm -rf .venv308309# run.py will recreate venv automatically310python scripts/run.py auth_manager.py status311```312313## Error Messages Reference314315### Authentication Errors316| Error | Cause | Solution |317|-------|-------|----------|318| Not authenticated | No valid auth | `run.py auth_manager.py setup` |319| Authentication expired | Session old | `run.py auth_manager.py reauth` |320| Invalid credentials | Wrong account | Check Google account |321| 2FA required | Security challenge | Complete in visible browser |322323### Browser Errors324| Error | Cause | Solution |325|-------|-------|----------|326| Browser not found | Chromium missing | Use run.py (auto-installs) |327| Connection refused | Browser crashed | Kill processes, restart |328| Timeout waiting | Page slow | Increase timeout |329| Context closed | Browser terminated | Check logs for crashes |330331### Notebook Errors332| Error | Cause | Solution |333|-------|-------|----------|334| Notebook not found | Invalid ID | `run.py notebook_manager.py list` |335| Access denied | Not shared | Re-share in NotebookLM |336| Invalid URL | Wrong format | Use full NotebookLM URL |337| No active notebook | None selected | `run.py notebook_manager.py activate` |338339## Prevention Tips3403411. **Always use run.py** - Prevents 90% of issues3422. **Regular maintenance** - Clear browser state weekly3433. **Monitor queries** - Track daily count to avoid limits3444. **Backup library** - Export notebook list regularly3455. **Use dedicated account** - Separate Google account for automation346347## Getting Help348349### Diagnostic information to collect350```bash351# System info352python --version353cd ~/.claude/skills/notebooklm354ls -la355356# Skill status357python scripts/run.py auth_manager.py status358python scripts/run.py notebook_manager.py list | head -5359360# Check data directory361ls -la ~/.claude/skills/notebooklm/data/362```363364### Common questions365366**Q: Why doesn't this work in Claude web UI?**367A: Web UI has no network access. Use local Claude Code.368369**Q: Can I use multiple Google accounts?**370A: Yes, use `run.py auth_manager.py reauth` to switch.371372**Q: How to increase rate limit?**373A: Use multiple accounts or upgrade to Google Workspace.374375**Q: Is this safe for my Google account?**376A: Use dedicated account for automation. Only accesses NotebookLM.