NotebookLM Lesson Planner
Create comprehensive lesson plans for Google NotebookLM with validated sources and customized audio overview prompts.
What This Skill Does
This skill helps you create NotebookLM notebooks by:
- •Finding high-quality sources - Identifying 10-20 online resources that are publicly accessible, LLM-readable, and substantive
- •Validating sources - Ensuring all URLs are active, accessible, and not behind paywalls or crawler blocks
- •Generating tailored prompts - Creating specific prompts for each learning area that guide NotebookLM's audio overview generation
- •Structuring content - Organizing lessons to avoid redundancy and ensure comprehensive coverage
When to Use This Skill
Use this skill when the user wants to:
- •Create a NotebookLM notebook on a specific topic
- •Generate a learning curriculum with multiple focused audio overviews
- •Build educational content with curated sources
- •Process multiple topics in batch (e.g., 100+ lesson plans)
Workflow Overview
The process varies based on whether you're creating a single lesson or processing a batch:
Single Lesson Mode:
- •Gather requirements from user
- •Find and validate sources
- •Generate prompts for each learning area
- •Provide complete lesson plan
Batch Mode:
- •Process JSON specification file
- •For each lesson: find sources, validate, generate prompts
- •Output complete lesson plans for all topics
Single Lesson Mode
Step 1: Gather Requirements
Ask the user for:
- •Main topic - The overall subject (e.g., "Firewall Configuration")
- •Learning areas - Specific subtopics to cover (e.g., "ACLs", "NAT", "VPN", "Logging")
- •Listener context - Information about the learner:
- •What they already know
- •Expertise level (beginner, intermediate, advanced)
- •What they want to learn
- •Why they're learning this (use case, goal)
- •Target source count - How many sources to find (recommend 15, range 10-20)
Step 2: Find Sources
Use web_search to find sources that:
- •Cover the main topic and learning areas
- •Are publicly accessible (no paywall, no login)
- •Are high-quality and substantive
- •Provide appropriate depth for listener's level
Search strategy:
- •Start with comprehensive sources covering multiple learning areas
- •Find specialized sources for each specific learning area
- •Ensure diversity in source types (tutorials, documentation, analysis)
- •Aim for 10-20 total sources
See references/source_finding.md for detailed strategies on:
- •Source quality criteria
- •Search techniques
- •Source type evaluation
- •Coverage matrix planning
Step 3: Validate Sources
After finding sources, validate them using the validation script:
scripts/validate_sources.py url1 url2 url3 ... --verbose
The script checks:
- •URL is active (200 status)
- •No paywall detected
- •Content is substantive (>500 chars)
- •No obvious crawler blocking
If sources fail validation:
- •Remove invalid sources
- •Find replacements using web_search
- •Re-validate until all sources pass
Step 4: Generate Prompts
For each learning area, create a tailored prompt for NotebookLM's audio overview generator.
Read prompt templates first:
view references/prompt_templates.md
Each prompt must include:
- •Topic/Learning Area - What specific area this overview covers
- •Listener Profile - Who the listener is, what they know, their expertise level
- •Coverage Scope - What this overview should cover in detail
- •Previous Coverage - What was covered in the last episode (for continuity)
- •Upcoming Topics - What will be covered in future episodes (to avoid going into detail)
- •Exclusions - Critical! What NOT to cover in detail (handled by other overviews)
- •Approach and Goals - Tone, depth, teaching style, and learning objectives
- •Length Suggestion - Duration target: [~15 min] for standard, [~22 min] for longer episodes
- •Additional Context - Any other relevant information
Exclusion and continuity strategy:
- •Overview 1: No previous coverage, upcoming: areas 2, 3, 4
- •Overview 2: Previous: area 1, upcoming: areas 3, 4
- •Overview 3: Previous: areas 1-2, upcoming: area 4
- •Overview 4: Previous: areas 1-3, no upcoming topics
This ensures each overview is focused, non-redundant, and builds on prior knowledge.
Case Study Requirement: One audio overview in every lesson MUST be a real-life case study focusing on real companies and their experiences. This overview should analyze actual implementation stories, challenges faced, and lessons learned from real organizations.
Step 5: Generate Quiz Prompts
For each lesson, create 4 quiz prompts based on the audio overviews. Each quiz prompt should:
- •Reference the audio overview - Which overview this quiz is based on
- •Specify length - short, default, or long
- •Specify difficulty - medium or hard
- •Guide quiz content - What topics/concepts to focus on
Quiz distribution:
- •Quiz 1: Based on Overview 1 (difficulty: medium, length: default)
- •Quiz 2: Based on Overview 2 (difficulty: medium, length: short)
- •Quiz 3: Based on Overview 3 (difficulty: hard, length: default)
- •Quiz 4: Based on Overview 4 or case study (difficulty: hard, length: long)
Step 6: Deliver Lesson Plan
Provide the user with:
- •Complete source list - All validated URLs with brief descriptions
- •Coverage summary - Which sources cover which learning areas
- •Audio Overview Prompts - One prompt per learning area, numbered and ready to use (including length suggestions)
- •Quiz Prompts - Four quiz prompts with length and difficulty specified
- •Instructions - How to use the lesson plan with NotebookLM:
- •Add all sources to NotebookLM notebook
- •For each audio overview, copy the corresponding prompt
- •Generate audio overviews in sequence
- •Generate quizzes using the quiz prompts
Output format:
# NotebookLM Lesson Plan: [Topic] ## Sources (15) 1. [Source 1 Title] - [URL] Coverage: [Learning areas covered] 2. [Source 2 Title] - [URL] Coverage: [Learning areas covered] ... ## Audio Overview Prompts ### Overview 1: [Learning Area 1] [~15 min] [Full prompt text including: coverage, previous coverage, upcoming topics, approach and goals] ### Overview 2: [Learning Area 2] [~15 min] [Full prompt text] ### Overview 3: [Case Study] [~22 min] [Full prompt text - real-life case study of real companies] ... ## Quiz Prompts ### Quiz 1: [Topic] (Based on Overview 1) **Length**: default | **Difficulty**: medium [Full quiz prompt text] ### Quiz 2: [Topic] (Based on Overview 2) **Length**: short | **Difficulty**: medium [Full quiz prompt text] ... ## Usage Instructions 1. Create a new notebook in Google NotebookLM 2. Add all 15 sources to the notebook 3. For each audio overview: - Click "Generate Audio Overview" - Copy and paste the corresponding prompt above - Generate the overview 4. For each quiz: - Click "Generate Quiz" - Copy and paste the corresponding quiz prompt - Generate the quiz 5. Listen to overviews in sequence (1→2→3→...)
Batch Mode
For processing multiple topics from a JSON file.
Step 1: Understand Batch Specification
The user provides a JSON file with this structure:
{
"lessons": [
{
"topic": "Sandwich Making",
"learning_areas": ["bread", "proteins", "cheeses", "vegetables"],
"listener_context": {
"knows": ["basic cooking"],
"wants_to_learn": ["gourmet techniques"],
"skill_level": "intermediate"
},
"target_sources": 15
},
{
"topic": "Firewall Configuration",
"learning_areas": ["ACLs", "NAT", "VPN"],
...
}
]
}
Step 2: Process Each Lesson
For each lesson in the batch:
- •Follow the Single Lesson Mode workflow
- •Find sources (may need multiple web_search calls)
- •Validate sources
- •Generate prompts
- •Save lesson plan to individual JSON file
Important for batch processing:
- •Process lessons sequentially (don't try to parallelize)
- •Be efficient with web_search (combine queries when possible)
- •Validate sources in batches using the script
- •Save progress incrementally (one lesson at a time)
Step 3: Output Structure
Create a directory structure:
output/ ├── lesson_001_sandwich_making.json ├── lesson_002_firewall_configuration.json ├── lesson_003_database_optimization.json ... └── batch_summary.md
Each JSON file contains:
{
"topic": "Sandwich Making",
"learning_areas": ["bread", "proteins", "cheeses", "vegetables"],
"listener_context": {...},
"sources": [
{
"url": "https://example.com/sandwich-guide",
"title": "Complete Sandwich Making Guide",
"coverage": ["bread", "proteins", "cheeses", "vegetables"]
},
...
],
"prompts": [
{
"area": "bread",
"prompt": "Topic: Bread Selection for Sandwiches\n\n..."
},
...
]
}
The batch_summary.md provides an overview of all lessons created.
Quality Guidelines
Source Quality
- •Minimum 10 sources, maximum 20
- •All sources must pass validation
- •Each learning area covered by at least 3 sources
- •Mix of comprehensive and specialized sources
- •Appropriate depth for listener's expertise level
Prompt Quality
- •Each prompt 200-350 words (optimal with new requirements)
- •Clear previous coverage and upcoming topics sections
- •Clear exclusions to avoid overlap
- •Listener context consistent across all prompts
- •Specific coverage guidance
- •Appropriate tone and depth for audience
- •Length suggestion included ([~15 min] or [~22 min])
- •Approach and goals clearly stated
- •At least one case study overview per lesson
Quiz Quality
- •4 quizzes per lesson minimum
- •Each quiz mapped to a specific audio overview
- •Mix of difficulty levels (medium and hard)
- •Mix of lengths (short, default, long)
- •Clear guidance on topics to test
- •Questions should reinforce key concepts from the audio overviews
Coverage Balance
- •No learning area should dominate (unless intentional)
- •No learning area should be under-represented
- •Sources should provide diverse perspectives
- •Both breadth and depth appropriate for topic scope
Tips and Best Practices
Finding sources:
- •Start broad, then get specific
- •Use multiple search queries per learning area
- •Look for official documentation first
- •Check publication date for time-sensitive topics
- •Verify accessibility before adding to list
Writing prompts:
- •Be explicit about exclusions
- •Reference other overviews by number
- •Provide specific examples of what to cover
- •Match technical depth to listener's level
- •Include practical context (why they're learning this)
Validating sources:
- •Always run validate_sources.py before finalizing
- •Manually spot-check 3-5 sources
- •If >20% fail validation, reconsider search strategy
- •Replace failed sources before generating prompts
Batch processing:
- •Process 10-20 lessons at a time
- •Check one complete lesson before processing all
- •Save progress frequently
- •Use consistent listener_context format across batch
Common Issues
Sources failing validation:
- •Check for paywall indicators in URL or title
- •Try alternative sources on the same topic
- •Ensure using HTTPS not HTTP
- •Verify site isn't down temporarily
Overlapping prompts:
- •Review exclusion sections
- •Ensure each area has clear boundaries
- •Consider if learning areas need restructuring
- •Make exclusions more specific
Coverage gaps:
- •Add more specialized sources
- •Use more specific search queries
- •Look for sources that bridge multiple areas
- •Consider if learning areas are too granular
Batch processing slow:
- •Combine search queries where possible
- •Validate sources in batches
- •Process during off-peak hours
- •Consider breaking into smaller batches
Files and Scripts
Scripts:
- •
validate_sources.py- Validate URLs for NotebookLM compatibility
References:
- •
prompt_templates.md- Templates and examples for creating prompts - •
source_finding.md- Strategies for finding high-quality sources
Usage examples in references files.