NotebookLM

Query Google NotebookLM notebooks directly for source-grounded, citation-backed answers from Gemini with browser automation, library management, and persistent authentication.


npx degit LangbaseInc/agent-skills/notebooklm-skill my-notebooklm

Automate interactions with Google NotebookLM to get AI-powered insights from your research materials with full source citations.


Source-Grounded Answers

  • Answers backed by your sources
  • Direct citations to source material
  • No hallucinations from training data
  • Verifiable information

Browser Automation

  • Automated login and session management
  • Persistent authentication
  • Notebook navigation
  • Query submission
  • Response extraction

Library Management

  • Organize multiple notebooks
  • Switch between projects
  • Manage sources
  • Track conversations

  • Research Projects - Query academic papers and documents
  • Documentation Analysis - Get insights from technical docs
  • Content Creation - Research-backed content writing
  • Knowledge Management - Organize and query information
  • Literature Review - Analyze multiple sources
  • Study Notes - Interactive learning from materials

1. Setup Authentication

  • Login to Google account
  • Save session cookies
  • Persist authentication

2. Select Notebook

  • List available notebooks
  • Choose target notebook
  • Load notebook context

3. Query Notebook

  • Submit natural language questions
  • Receive AI-generated answers
  • Get source citations

4. Extract Information

  • Parse AI response
  • Extract citations
  • Format for use

Browser Automation

Uses Playwright or Puppeteer for:

  • Automated login
  • Cookie management
  • Page navigation
  • Element interaction
  • Data extraction

Session Persistence

// Save auth cookies await context.storageState({ path: 'auth.json' }); // Reuse session const context = await browser.newContext({ storageState: 'auth.json' });

Multi-Notebook Support

Switch between different notebooks for different projects

Citation Extraction

Automatically extract and format source citations

Conversation History

Track queries and responses within notebooks

Source Management

Add, remove, and organize source materials


// Query notebook const answer = await notebooklm.query( "What are the main findings about climate change?" ); console.log(answer.response); // "Based on the sources, the main findings are..." console.log(answer.citations); // [ // { source: "Climate Report 2024", page: 15 }, // { source: "IPCC Summary", page: 8 } // ]

  • Keep notebooks focused on specific topics
  • Add high-quality, relevant sources
  • Use clear, specific questions
  • Review citations for accuracy
  • Update sources regularly
  • Organize notebooks by project
  • Maintain authentication tokens

  • Requires Google account
  • Browser automation overhead
  • Rate limiting considerations
  • Source quality dependent
  • Internet connection required

Research Assistant

async function researchTopic(topic) { const notebook = await notebooklm.selectNotebook('Research'); const answer = await notebooklm.query( `What does the research say about ${topic}?` ); return formatAnswer(answer); }

Automated Literature Review

async function analyzeSources(sources) { await notebooklm.addSources(sources); const synthesis = await notebooklm.query( "Synthesize the key themes across all sources" ); return synthesis; }

{ "query": "What are the main themes?", "response": "Based on the sources...", "citations": [ { "source": "Document Name", "page": 10, "quote": "Relevant excerpt" } ], "timestamp": "2024-01-15T10:30:00Z" }

  • Use specific, targeted questions
  • Reference source titles in queries
  • Ask for comparisons across sources
  • Request citation details
  • Use follow-up questions
  • Organize sources logically
  • Test queries iteratively