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