
Youtube Producer
- 20 installs
- 4 repo stars
- Updated July 21, 2026
- kkoppenhaver/cc-skills
Helps with ai & agent building tasks.
About
youtube-producer is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- youtube-producer
- AI & Agent Building
- AI-coding skill
Youtube Producer by the numbers
- 20 all-time installs (skills.sh)
- +2 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #10,459 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/kkoppenhaver/cc-skills --skill youtube-producerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 20 |
|---|---|
| repo stars | ★ 4 |
| Last updated | July 21, 2026 |
| Repository | kkoppenhaver/cc-skills ↗ |
What it does
Helps with ai & agent building tasks.
Files
YouTube Producer
Transform vague video ideas into compelling, viral-ready YouTube content using proven frameworks from top technical creators Mark Rober and Aaron Francis.
Core Production Philosophy
The Two Essential Frameworks
Mark Rober's "Hiding the Vegetables": Make education so entertaining that viewers don't realize they're learning. Lead with spectacle, education follows naturally.
Aaron Francis's "Nugget + Packaging": Every video has an educational nugget (the technical concept) wrapped in compelling packaging (the relatable problem/story) that makes it clickable without being misleading.
Core Workflow
When a user provides a video idea, follow this production pipeline:
1. Identify the Nugget and Find the Packaging
First, extract the educational nugget - What technical concept or skill will viewers learn?
Then, find the compelling packaging by asking:
- What problem does this solve?
- What frustration does this address?
- What curiosity does this satisfy?
- What justice does this deliver?
Example transformations:
| Educational Nugget | Compelling Packaging |
|---|---|
| Virtual columns in MySQL | "Stop freeloaders exploiting your SaaS" |
| Database indexing | "Why your app is slow (and how to fix it)" |
| AI transformer architecture | "How ChatGPT learned to lie" |
2. Title Generation Using Proven Formulas
Apply these high-performing patterns:
Contrarian Commands (Aaron Francis):
- "Stop using [common practice]"
- "You don't need [assumed requirement]"
- "[Common belief] is a lie"
- Add parenthetical qualifiers for credibility: "(anymore)", "(for shipping)", "(or sooner)"
Superlative Hooks (Mark Rober):
- "World's [Largest/Smallest/First] [Thing]"
- Promises something viewers have never seen before
Question Format:
- "Can [AI/You] Really [Seemingly Impossible Thing]?"
- "What Happens When [Unexpected Scenario]?"
- Poses questions viewers didn't know they had
Justice/Problem-Solving:
- "I Used [Technology] to [Solve Annoying Problem]"
- "How [Technology] Caught [Bad Actor]"
- Engineering as superpower for satisfaction
Permission-Giving:
- "You Don't Always Need [Complex Thing]"
- Liberates viewers from dreaded complexity
3. The 30-Second Hook Structure
Combine both creators' approaches:
0-3 seconds (Visual Validation):
- Immediately show visual proof of title's promise
- Most impressive moment or result
- No introductions, straight to spectacle
3-10 seconds (Establish Stakes/Problem):
- Surface problem viewers didn't know they had
- Create "curiosity loop" that needs closing
- Frame uncertainty: "We're not sure if this will work..."
10-20 seconds (Identity & Credibility):
- "If you're a [target audience]..."
- Brief credibility marker
- Why they should trust you
20-30 seconds (Promise & Roadmap):
- Clear promise of what they'll gain
- Preview the journey (not the answer)
- Pattern interrupt: "But first..." or "However..."
4. Video Structure (The Three-Act Journey)
Act 1: Hook & Personal Stakes (0-2 minutes)
- Open with spectacle or problem
- Establish personal connection/frustration
- Character introduction (name your subjects/tools)
- Set expectations without revealing outcome
Act 2: The Journey (60-70% of video)
- Document process including failures (Super Mario Effect)
- Chunk into 2-3 minute segments with visual variety
- Alternate high-energy reveals with educational explanations
- Show iterations and problem-solving
- Weave education naturally into narrative
- Include "breathing room" after complex concepts
Act 3: Climactic Payoff (Final 20%)
- Deliver the big reveal
- Perspective shift (frustration to admiration)
- Broader implications/lessons
- Circle back to opening question
- Single, clear call-to-action
5. YouTube Shorts Extraction
For each main video, identify 3-5 short moments:
The Hook Short (15-30s):
- Most shocking moment without context
- Title: Question the main video answers
The Correction Short (30-45s):
- "Stop doing [common practice]"
- Quick explanation of why it's wrong
- Tease full solution in main video
The Permission Short (30-45s):
- "You don't need [complex thing]"
- Show simpler alternative
- Link to full explanation
The Justice/Result Short (15-30s):
- Show the satisfying payoff
- Package thief getting glittered
- AI catching the scammer
Thumbnail Design Principles
Mark Rober's 3-Element Rule
- Subject (the build/experiment) - dominates frame
- Creator (relatively small) - 57% happy/confident expression
- Context/scale reference - shows magnitude
Aaron Francis's Clean Technical Style
- Clean code/terminal screenshots
- Minimal text overlay
- Professional without desperation
- Tool logos when relevant
Title-Thumbnail Synergy
- Thumbnail poses visual riddle
- Title completes the thought
- Together create "intensified curiosity"
- Never duplicate information
Production Philosophy
Quality Over Quantity
- Mark Rober: ~10 videos/year, some taking 3+ years
- Aaron Francis: Only content you're genuinely excited about
- Focus: "For something to be remarkable, it has to be able to be remarked about"
The "Try Hard" Differentiator
- High production value signals content value
- The "1000 little things" compound into quality perception
- Clean setup, hidden desktop icons, good lighting
- Be yourself, but amplified 2 notches for camera energy
Character-Driven Technical Content
- Name your AI models like Mark names squirrels
- Document failures as part of the journey
- Make viewers co-explorers, not students
- Show personality and vulnerability
Retention Optimization Techniques
Visual Variety (The Chunk Method)
- Switch between talking head and screen every 2-3 minutes
- Creates natural engagement checkpoints
- Prevents visual fatigue
- Maintains "dopamine pumping"
Open Loops & Pattern Interrupts
- Promise multiple payoffs throughout
- "But there's a problem..." moments
- Tease coolest part early
- Use "However," "Yet," "But" for transitions
- Never reveal answer immediately
The Super Mario Effect
- Focus on the goal (princess), not failures (pits)
- Show failures as learning, not embarrassment
- Make content feel like playing, not testing
- Results in 2.5x more persistence, 68% higher success
Creator Framework Selection
Use specific creator approaches based on content type:
Mark Rober Style for:
- Large builds and experiments
- Visual spectacle content
- Family-friendly education
- Justice/satisfaction narratives
- See
references/mark-rober-framework.md
Aaron Francis Style for:
- Developer/technical education
- Database and backend topics
- Controversial technical opinions
- Business problem solving
- See
references/aaron-francis-framework.md
Algorithm Alignment Without Obsession
Do This:
- Clickable titles with genuine value
- 30-second hook or lose viewers
- Visual variety for retention
- Consistent publishing schedule
Don't Do This:
- Misleading clickbait
- Shocked face thumbnails
- Content you don't care about
- Cynicism or excessive sarcasm
Remember Aaron's warning: "You can produce videos that do super well that you hate, and your insides will be hollowed out."
Key Principles for Technical Content
1. Start with title and thumbnail, not the content 2. Lead with problem or spectacle, not the solution 3. Make viewers co-explorers, not students 4. Document the journey, including failures 5. Hide vegetables - education wrapped in entertainment 6. Character-driven narratives - name your tools/models 7. Visual variety - chunk into 2-3 minute segments 8. Quality over quantity - remarkable content only 9. Be authentically excited about your topics 10. Build trust through consistency and honesty
Resources
For detailed implementation, see:
references/mark-rober-framework.md- Complete Rober methodologyreferences/aaron-francis-framework.md- Francis's technical approachreferences/script-templates.md- 5 proven script structuresreferences/hook-examples.md- 50+ hook formulasreferences/title-formulas.md- Title patterns by categoryscripts/title_generator.py- Generate titles with scoringscripts/hook_analyzer.py- Evaluate hook effectivenessscripts/shorts_extractor.py- Extract shorts from outlines
Aaron Francis Framework
Core Philosophy
The "Nugget + Packaging" Framework (formerly "Peanut Butter and Pill")
Every video has two essential components:
- The Educational Nugget: The technical concept you want to teach (the "pill")
- The Packaging: The wrapper that makes it clickable and relatable (the "peanut butter")
"It's like feeding a dog a pill. You cover it in peanut butter, and then you're like, 'Hey. Do you want some peanut butter?' And they eat it."
Critical distinction from clickbait: The packaging must be accurate to what's delivered. Misleading viewers crosses ethical boundaries and destroys trust.
The 30-Second Hook Rule
"The opening talking head has gotta be quick—30 seconds or less. Otherwise, people're gonna click away."
Three Opening Patterns
1. Problem-First Framing
- Surface a problem viewers didn't know they had
- Example: Gmail plus-sign trick exploiting free accounts
- Establish stakes before mentioning technical solution
2. Contrarian Claim
- Challenge assumed best practices
- Engages both defenders and skeptics
- Creates tension that only resolution satisfies
3. Identity Appeal
- "If you're a SaaS operator..."
- "As an application developer..."
- Target the "meaty middle" - developers who aren't DBAs but need database knowledge
Title Formulas That Convert
Examples of Nugget → Packaging Transformation
| Educational Nugget | Aaron's Actual Title | Views |
|---|---|---|
| Virtual generated columns in MySQL | "Using MySQL to stop freeloaders (in only 8 minutes)" | 37.1k |
| PHP language improvements 2012-2023 | "PHP doesn't suck (anymore)" | 221.1k |
| Proper row counting in SQL | "Stop using COUNT(id) to count rows" | 379.8k |
| Database column size optimization | "INT(11) is a lie" | 19.5k |
| JSON columns in MySQL | "You don't need NoSQL (use MySQL)" | 79.3k |
The Contrarian Command Formula
Pattern: "Stop using X" / "You don't need X" / "Don't do X"
Why it works: Challenges assumed best practices, creates immediate curiosity about what convention is wrong.
The Parenthetical Qualifier
Aaron's signature technique for being bold without being dishonest:
- "PHP doesn't suck (anymore)" - acknowledges it did suck
- "React Server Components are a bad choice (for shipping)" - limits scope
- "Your database will break in 2038 (or sooner)" - adds specificity
The parenthetical signals intellectual honesty while maintaining hook power.
Permission-Giving Titles
- "You don't always need JOINs" (123.1k views)
- Liberates developers from complexity they dreaded
- Telling someone they don't have to do something difficult is inherently appealing
The Chunk Method for Retention
Structure videos in discrete 2-3 minute segments with deliberate visual switching:
1. Opening talking head - 30 seconds max, no cuts ideally 2. Screen recording chunk - 2-3 minutes of coding with face cam 3. Interstitial talking head - return to full-screen, summarize, preview 4. Repeat - creates natural engagement points
"If you were to stay on your code editor and your face cam bubble for 6 or 7 minutes, people are gonna get a little bit bored. Even if the content is good, you kinda wanna switch up some visuals every now and then to keep that little dopamine pumping."
Recording Process
Bullet Points Over Scripts
"What I find is a full-on script feels a little bit stifling to me. It puts me in robot-reading-a-script zone."
Instead: Waypoint method
- Know the signposts
- Jazz between them
- Find funny turns of phrase naturally
The Transcription Hack
1. Turn on microphone 2. Open Google Doc with transcribe 3. Pretend to give the video 4. Get bad takes out of system 5. Use transcription as bullet points
Immediate Rough Cuts
"Do the rough cut immediately after you finish recording because it's still fresh. Maybe 1 out of 10 times, I decide I just really didn't explain that very well."
The "Amplified Self" Energy Formula
Rule 1: Be yourself Rule 2: Crank it up a notch or 2
"You're an insane person because you're in your spare bedroom waving your hands and shouting at a camera. That's objectively insane. But if you don't ramp it up, your YouTube videos are gonna come across really downbeat."
Technical reason: Cameras flatten energy. What feels appropriate in conversation reads as flat on video.
Practical solution: Watch your own previous 2-4 videos before recording to match established energy levels.
Content Strategy
The "Correctional Hook"
Identify common habits or "best practices" that are technically suboptimal and challenge viewers to stop. Triggers "fear of incompetence" (FOI).
Examples:
- "Stop using COUNT(id)" - 379k views
- "INT(11) is a lie" - 19.5k views
- "Don't hide your database indexes!" - 13.5k views
Business Value as Context
Frame technical content through business problems:
- Instead of: "How to use Virtual Generated Columns"
- Use: "Using MySQL to stop freeloaders"
This answers "Why should I care?" before viewers even click.
Tech Tribalism
PHP content dramatically outperforms because PHP vs. JavaScript debates are emotionally charged:
- "PHP on the frontend! No more Javascript!" - 134.1k views
- "PHP doesn't suck (anymore)" - 221.1k views
- "PHP is the future" - 191.8k views
The "Try Hard" Philosophy
"Standing out becomes much easier when you're willing to exert maximum effort."
The 1000 Little Things Effect
- Hide desktop icons
- Change background to something pleasing
- Cut down awkward pauses
- Clean terminal setup
- Professional lighting
"These seem silly, but if you add up 5 silly things, 10 silly things, suddenly you look at a video and think, 'I can't quite put my finger on it, but this is really good.'"
Anti-Burnout Principles
- Only make content about topics you're genuinely excited about
- Internal motivation alignment matters more than algorithm optimization
- "You can still produce videos that do super well that you hate the content of, and you're gonna die. Your insides will be hollowed out."
Algorithm Alignment (Without Obsession)
What Aaron Does:
- Clickable titles and thumbnails (but not "shocked face")
- Fast openings passing 30-second retention test
- Visual variety to maintain watch time
- Consistent publishing on exciting topics
What Aaron Refuses:
- Pretending surprise about mundane things
- Clickbait thumbnails with exaggerated expressions
- Content he doesn't personally care about
- Cynicism or sarcasm (communicates poorly)
- YouTube-style cuts every 3 seconds
"I don't let the algorithm tail wag the dog very much. Of course, I want to do what the platform wants so that the platform will promote me. More than that, I want to do what I want to do."
Production Style
Screencasting Excellence
- Multi-camera setups
- High-quality lighting (the "shed" aesthetic)
- Plants and consistent visual branding
- Face always visible (builds trust)
- Clean code editor setup
- Thoughtful syntax highlighting
The "Internet Nice Guy" Brand
- Consciously cultivates kindness and sincerity
- Makes channel a "safe space" for learning
- Viewers less afraid of "feeling stupid"
- Admits own struggles openly
- Dad to twins (humanizing element)
Content Ecosystem
Multi-Platform Strategy
- YouTube: Brand building, broad reach
- Twitter/X: Testing ground for hooks
- Mostly Technical Podcast: Retention through intimacy
- Screencasting.com: Teaching others to teach
- High Performance SQLite: Course demonstrating expertise
Building in Public
- Revenue transparency ($125k in 30 days)
- Share stress and struggles
- Convert business journey into content
- Use production process as additional content
Key Principles for Technical Creators
1. Start with title and thumbnail, not content 2. Find the business problem your technique solves 3. Lead with problem, technique is resolution 4. Use contrarian commands in titles 5. Add parenthetical qualifiers for credibility 6. Hit hook in 30 seconds or less 7. Break into 2-3 minute chunks with visual switches 8. Be yourself, but louder 9. Only make content you're excited about 10. Short-term clickbait loses to long-term reputation
The Liberation
"Everything is open for the taking. I just have to not care about looking like an idiot. At that point, you're free."
"Putting yourself out there is terrifying, which is why most people don't do it. That means if you do put yourself out there, you're already ahead of 98% of other people."
50+ Proven YouTube Hook Formulas
Question Hooks
1. "What if I told you [counterintuitive statement]?" 2. "Have you ever wondered why [common phenomenon]?" 3. "What would happen if [hypothetical scenario]?" 4. "Why does everyone get [topic] wrong?" 5. "Is it possible to [seemingly impossible task]?" 6. "What's the real reason [unexpected cause]?" 7. "Did you know that [surprising fact]?" 8. "Can you really [challenge common belief]?" 9. "Why do [specific group] always [behavior]?" 10. "What's the one thing nobody tells you about [topic]?"
Challenge/Bet Hooks
11. "I bet you can't [simple seeming task]" 12. "99% of people fail this [type of test]" 13. "I'll give you $[amount] if you can [challenge]" 14. "Try this for 30 seconds and see what happens" 15. "Most people can't watch this without [reaction]"
Story Hooks
16. "This is the day everything changed..." 17. "I wasn't supposed to share this, but..." 18. "Three years ago, I made a huge mistake..." 19. "This conversation completely changed my perspective..." 20. "I just discovered something that doesn't make sense..." 21. "Last week, something happened that I can't explain..." 22. "I've been lying to you this whole time..." 23. "This email destroyed my entire business..." 24. "I accidentally discovered [breakthrough]..." 25. "They said it couldn't be done, so I..."
Transformation Hooks
26. "This went from [bad state] to [good state] in [time]" 27. "How I went from [starting point] to [end point]" 28. "The exact moment when [transformation occurred]" 29. "Before and after [specific intervention]" 30. "From zero to [impressive number] in [timeframe]"
Controversy/Drama Hooks
31. "[Popular thing] is actually terrible, here's why..." 32. "The truth about [topic] nobody wants to admit" 33. "[Authority figure] doesn't want you to know this" 34. "Everything you know about [topic] is wrong" 35. "The [industry] is lying to you" 36. "This is why [popular person/thing] is overrated" 37. "The dark side of [seemingly positive thing]"
Results/Proof Hooks
38. "I tried [method] for [time] and this happened" 39. "The results shocked even me..." 40. "Here's proof that [controversial claim]" 41. "Watch this work in real-time" 42. "The numbers don't lie..." 43. "I tested [number] [things] and found the winner"
Educational Hooks
44. "The science behind [common thing] is fascinating" 45. "Here's how [complex thing] actually works" 46. "[Number] things you didn't know about [topic]" 47. "The psychology of [behavior] explained" 48. "This is why your brain [does thing]"
Urgency/FOMO Hooks
49. "This won't be possible after [date/event]" 50. "Only [number] people know this secret" 51. "Before it's too late, you need to know..." 52. "This is disappearing forever" 53. "Last chance to [opportunity]"
Pattern Interrupt Hooks
54. [Start with loud noise/visual] 55. [Begin mid-sentence] "...and that's when I realized" 56. [Show the end result first] "This is what $10,000 looks like" 57. [Unexpected visual] "Why is there a [object] in my [place]?" 58. [Direct command] "Stop what you're doing and watch this"
Specific Formula Combinations
The Curiosity Gap Formula
"Most people think [common belief], but [credible source] just revealed [contradictory finding]"
The Insider Secret Formula
"After [time period] working in [industry], I can finally share [protected knowledge]"
The Comparison Formula
"[Thing A] vs [Thing B]: The winner will shock you"
The Warning Formula
"If you're still [doing common thing], you need to see this immediately"
The Discovery Formula
"Scientists just discovered [finding] and it changes everything about [topic]"
The Confession Formula
"I've been [doing something] for [time period] and nobody knew until now"
The Challenge Accepted Formula
"They said [limitation], so I spent [time/money] proving them wrong"
The Meta Formula
"This video will be deleted in 24 hours because [reason]"
Hook Enhancement Techniques
Visual Hooks
- Show the most impressive moment first
- Use text overlays for emphasis
- Include reaction shots
- Display shocking numbers/statistics
- Before/after in split screen
Audio Hooks
- Start with unexpected sound
- Use music that stops abruptly
- Include reaction audio
- Layer in sound effects
- Change audio quality for effect
Pacing Hooks
- Rapid-fire cuts in first 3 seconds
- Slow motion for dramatic effect
- Speed ramping
- Match cuts
- Jump cuts for energy
Hook Testing Checklist
- [ ] Creates immediate curiosity
- [ ] Makes a clear promise
- [ ] Uses pattern interruption
- [ ] Speaks to target audience
- [ ] Sets up the payoff
- [ ] Establishes stakes
- [ ] Previews value
- [ ] Matches thumbnail/title
Mark Rober Framework
Core Philosophy
"Hiding the vegetables" - Making education so entertaining that viewers don't realize they're learning. Rober considers himself "an okay engineer" but "a pretty damn good storyteller."
The Super Mario Effect: Focus on the princess (goal), not the pits (failures). When learning feels like playing a game rather than taking a test, people persist 2.5x longer with 68% higher success rates.
The Three-Step Hook (First 30 Seconds)
Step 1: Visual Validation (0-3 seconds)
- Immediately show visual proof of the title's promise
- Example: Driving Tesla toward wall on autopilot for "Can You Fool a Self-Driving Car?"
- No time wasted on introductions
Step 2: Establish the Challenge (3-30 seconds)
- Open a "curiosity loop" that viewers need closed
- Frame uncertainty explicitly: "We're not sure if this part's going to work"
- Create tension about the outcome
Step 3: Delay the Payoff
- Never reveal the answer immediately
- Use pattern interrupts: "But," "However," "Yet"
- Promise the journey will be worth it
Three-Act Video Structure
Act 1: Hook & Personal Stakes (0-2 minutes)
- Hook viewers with spectacle
- Establish personal connection/frustration
- Promise resolution
- Set expectations
Act 2: The Journey (2-15 minutes)
- Document building process including failures
- Weave in educational content naturally
- Show iterations and problem-solving
- Alternate between high and low energy segments
- Include "breathing room" after complex explanations
Act 3: Climactic Payoff (Final 5-7 minutes)
- Deliver the big reveal
- Reflect on broader lessons
- Shift perspective (frustration to admiration)
- Circle back to opening question
Key Elements
Character-Driven Storytelling
- Name your subjects (Rick "the gutsy one," Phat Gus "the mastermind")
- Create Ocean's Eleven-style roles and personalities
- Build emotional investment through character development
- Document their individual attempts and strategies
- Show perspective shifts (antagonist to admirer)
Educational Integration
- Lead with spectacle, not education
- Allow viewers to learn through your discovery process
- Show real reactions, mistakes, and challenges
- Focus on vicarious learning vs lecturing
- Make viewers co-explorers in genuine discovery
- "I get people to come in with something cool and amazing, and then when they least expect it" the science lesson lands
Visual Storytelling
- Heavy use of animations by dedicated animator (Travis Tessmer)
- Multi-camera setups (21-camera GoPro rig for bullet-time)
- Extensive slow-motion for dramatic moments
- Before/after comparisons
- Time-lapses of builds
- Hidden cameras for authentic reactions (4 smartphones per Glitter Bomb)
- Clean educational diagrams integrated into narrative
Tone and Delivery
- Happy/confident expressions in 57% of thumbnails (not shock faces)
- Enthusiastic but not hyperactive
- Self-deprecating humor
- Family-friendly language
- "Smart but approachable" persona
- Focus on the build/experiment over self
Title Patterns (Driving 100M+ Views)
Superlative Hook
- "World's Largest [Object]" - promises unprecedented scale
- "World's Smallest Nerf Gun Shoots Ant" - combines scale with surprise
- Works by promising something viewers have never seen before
Question Format
- "Can You Swim in Jello?" - poses questions viewers didn't know they had
- "How Do Hot Air Balloons Steer?" - taps into existing curiosity
- For AI: "Can AI Actually Think?" or "What Happens When AI Tries to Lie?"
Versus/Competition Format
- "Lasers vs Lightning" - creates inherent conflict
- "Shark Attack Test: Human Blood vs. Fish Blood" - adds stakes
- Natural tension drives clicks
Justice Narrative
- "Package Thief vs. Glitter Bomb Trap" - taps universal frustrations
- Positions engineering as superpower for revenge
- Provides satisfying resolution to common annoyances
Title Requirements
- Under 50 characters
- Strong action verbs
- Never give away the conclusion
- Create curiosity gap that demands closure
Thumbnail Strategy
3-Element Maximum Rule
- Subject (the build/experiment)
- Creator (relatively small in frame)
- Context/scale reference
Color Psychology
- Warm, vibrant colors for subject
- Cooler backgrounds for contrast
- Direct attention through color temperature
Title-Thumbnail Synergy
- Thumbnail poses visual riddle
- Title completes the thought
- Together create "intensified curiosity"
- Never duplicate information between them
Expression Strategy
- 57% happy/excited expressions
- 43% calm confidence
- Avoids desperate shock faces
- Builds trust through authenticity
Content Calendar Strategy
Quality Over Quantity
- ~10 videos per year (monthly)
- Some projects take 3+ years (Egg Drop From Space)
- Maintains 14+ videos planned at any time
- Didn't leave Apple until 10M subscribers
Five Content Buckets
1. Justice/Revenge Series (Glitter Bombs) 2. "World's Largest" Builds (Nerf Gun, Jello Pool) 3. Animal Intelligence Challenges (Squirrel Maze) 4. Myth Testing (Can You Blow Your Own Sail?) 5. Extreme Engineering (Egg Drop From Space)
Topic Selection Criteria
"I want you to have never seen anything like what the video is coming from me before. For something to be remarkable, it has to be able to be remarked about."
Production Process
Editing Philosophy
- Personally works on every edit
- 200 hours of footage → 10-minute videos
- Uses proxy files synced via Dropbox
- Maintains story control while outsourcing builds
- Prioritizes narrative over technical impressiveness
Production Elements
- Multi-camera setups for coverage
- Documentary-style B-roll for context
- Slow-motion for dramatic effect
- Hidden cameras for authentic reactions
- Professional color grading throughout
- Seamless integration of educational graphics
Retention Techniques
Pacing Strategy
- Alternates high-energy (reveals) and low-energy (explanations)
- Creates rhythm preventing fatigue
- Pattern interrupts through visual variety
- Musical cues for transitions
- "Breathing room" after complex concepts
Open Loops
- Promise multiple payoffs throughout
- "But there's a problem..." moments
- Visual variety every 15-30 seconds
- Callbacks to earlier jokes/moments
- Tease coolest part early
The Super Mario Effect in Practice
- Show failures openly as part of journey
- Focus on goal (princess) not obstacles (pits)
- Make learning feel like playing, not testing
- 68% higher success rate when failure isn't penalized
Specific Video Breakdowns
Backyard Squirrel Maze (106M+ views)
- Opens with personal frustration about birdseed theft
- Introduces four named characters with distinct personalities
- Explains physics through obstacle design
- Documents chronological attempts with analysis
- Concludes with perspective shift to admiration
Glitter Bomb Series (114M+ views)
- Personal package theft creates investment
- Engineering as vigilante justice
- Multiple thief reactions provide repeated payoffs
- Each sequel adds new tech and stakes
- Maintains proven format while innovating
Egg Drop From Space (29M+ views)
- Three-year timeline creates authentic tension
- NASA/JPL collaboration adds credibility
- Shows all failures, not just success
- Makes eventual triumph genuinely earned
Call-to-Action Strategy
Mission Over Metrics
- Minimal subscription/like requests
- Focus on cause-driven initiatives:
- #TeamTrees: $20 million raised
- #TeamSeas: $34 million raised
- #TeamWater: $40 million raised (2025)
Product Integration
- CrunchLabs appears naturally within builds
- Tied directly to featured project
- Viewers see connection, not sales pitch
- Builds trust as educator, not marketer
Key Takeaways for Technical Content
1. Structure builds as journeys with characters, stakes, and failures 2. Lead with spectacle, education follows naturally 3. Document discovery process rather than explaining results 4. Invest months in unprecedented content rather than chasing frequency 5. Make viewers co-explorers not students 6. Hide vegetables - wrap education in entertainment 7. Focus on story and edit - these matter more than technical complexity 8. Apply engineering mindset to content creation itself
MrBeast Framework
Core Philosophy
"Make the most engaging content possible with clear, simple concepts and extreme execution"
Video Structure Pattern
Instant Hook (0-5 seconds)
- State the challenge/prize immediately
- Show the scale visually
- No wasted time on introductions
- Jump straight into action
Escalating Stakes
- Start big, go bigger
- Multiple elimination rounds
- Increasing prize values
- Time pressure and countdowns
- Unexpected twists every 2-3 minutes
Clear Rules & Progression
- Simple concept a child could understand
- Visual progress indicators
- Contestant reactions and stakes
- Running commentary on situation
Key Elements
Simplicity at Scale
- One sentence concept ("Last to leave wins $X")
- Massive budgets for simple ideas
- Clear win/loss conditions
- Universal appeal topics
Pacing and Energy
- No dead air ever
- Quick cuts (2-4 seconds average)
- Multiple cameras and angles
- Constant forward momentum
- Music that matches energy level
Emotional Investment
- Show contestant backstories briefly
- Focus on what winning means to them
- Build parasocial connections quickly
- Create heroes and villains naturally
Title Patterns
- "$[Large Number] [Competition/Challenge]"
- "I [Did Expensive Thing]"
- "Last to [Action] Wins $[Prize]"
- "[Number] vs [Number] for $[Prize]"
- "Survive [Time] Win $[Prize]"
Thumbnail Strategy
- Massive numbers prominently displayed
- High contrast and saturation
- Shocked/excited facial expressions
- Money or prizes visible
- Red arrows and circles when needed
- Maximum 1-2 text elements
Types of MrBeast Videos
Competition Videos
- Clear elimination format
- Rising stakes each round
- Focus on final 3-5 contestants
- Emotional payoff with winner
Philanthropy Videos
- Show the problem first
- Massive scale of solution
- Individual impact stories
- Community transformation
Stunt Videos
- Ridiculous premise stated upfront
- Show the preparation briefly
- Focus on the execution
- Reactions from participants/viewers
Comparison Videos
- "$1 vs $1,000,000 [Thing]"
- Clear visual differences
- Escalating reveals
- Humorous commentary
Retention Hacks
- "But wait..." moments
- Cliffhangers before ad breaks
- Multiple storylines interwoven
- Constant visual stimulation
- Promise biggest moment at end
- Show spending money in real-time
Production Elements
- Multiple camera operators
- Drone shots for scale
- High-quality audio even in chaos
- Graphics for prices/timers
- Consistent color grading
- Seamless editing between scenes
Script and Hosting Style
- Speak directly to camera
- Explain everything simply
- High energy but not annoying
- Let the content be the star
- Minimal personal anecdotes
- Focus on participants' experiences
Analytics Focus
- Optimize for 70%+ retention
- Front-load best moments
- Test multiple thumbnails
- Track click-through rate obsessively
- Study drop-off points
- Iterate based on data
YouTube Script Templates
Template 1: Tutorial/How-To Script
[HOOK - 0:00-0:15]
"If you've ever struggled with [problem], this video will change everything. In the next [time], I'll show you exactly how to [achieve result]."
[CREDIBILITY - 0:15-0:30]
"I've spent [time period] perfecting this method, and it's helped me [specific achievement]. Now I'm sharing the exact system with you."
[ROADMAP - 0:30-0:45]
"We'll cover:
1. [Main point 1]
2. [Main point 2]
3. [Main point 3]
Plus a bonus tip at the end that most people miss."
[MAIN CONTENT - 0:45-X:XX]
"Let's start with [Point 1]..."
- Explain concept
- Show example
- Common mistake to avoid
- Quick win tip
"Now for [Point 2]..."
[Repeat structure]
[CONCLUSION - Final 30 seconds]
"So to recap: [summarize 3 main points]
If you found this helpful, [call to action]
And that bonus tip I mentioned? [deliver bonus]"Template 2: Story-Driven Educational Script
[COLD OPEN - 0:00-0:10]
[Start with most dramatic moment]
"And that's when everything went wrong..."
[REWIND - 0:10-0:30]
"Let me back up. Three weeks ago, I decided to [undertake challenge]. What I discovered changed how I think about [topic]."
[SETUP - 0:30-2:00]
- Context and background
- Why this matters
- What's at stake
- The plan
[JOURNEY - 2:00-8:00]
- Chronological progression
- Obstacles encountered
- Lessons learned along the way
- Building tension toward climax
[CLIMAX - 8:00-9:00]
- The big moment
- Success or failure
- Emotional peak
[RESOLUTION - 9:00-10:00]
- What was learned
- How viewers can apply this
- Broader implications
- Tease next videoTemplate 3: Challenge/Experiment Script
[INSTANT HOOK - 0:00-0:05]
"I'm going to attempt [seemingly impossible thing]."
[RULES SETUP - 0:05-0:30]
"Here's how this works:
- Rule 1: [specific constraint]
- Rule 2: [another constraint]
- If I fail: [consequence]
- If I succeed: [reward]"
[PREPARATION - 0:30-2:00]
- Gathering materials/team
- Explaining the science/logic
- Predictions and expectations
- Building anticipation
[ATTEMPT 1 - 2:00-4:00]
- First try
- What went wrong
- Lessons learned
- Adjustments needed
[ATTEMPT 2 - 4:00-6:00]
- Implementing changes
- New challenges arise
- Tension building
[FINAL ATTEMPT - 6:00-9:00]
- All or nothing
- Maximum tension
- Success or failure
- Immediate reaction
[WRAP-UP - 9:00-10:00]
- What we learned
- Could you do this?
- Thank supporters/team
- Next challenge teaserTemplate 4: Comparison/Review Script
[HOOK - 0:00-0:15]
"Everyone says [Product A] is the best, but after testing [number] options, the winner surprised even me."
[CRITERIA SETUP - 0:15-0:45]
"I tested based on:
1. [Criterion 1] (most important)
2. [Criterion 2]
3. [Criterion 3]
4. [Criterion 4]
5. Real-world usage"
[TESTING MONTAGE - 0:45-1:30]
- Quick shots of all products
- Preview interesting moments
- Build curiosity
[DETAILED TESTING - 1:30-7:00]
For each product:
- First impressions
- Test results for each criterion
- Pros and cons
- Price consideration
- Who it's best for
[RANKINGS - 7:00-8:30]
- Counting down from worst to best
- Explaining placements
- Surprise revelations
[WINNER & CONCLUSION - 8:30-10:00]
- Why this one wins
- Best value option
- Best premium option
- Personal recommendation
- Where to buy/linksTemplate 5: Deep Dive/Investigation Script
[QUESTION HOOK - 0:00-0:20]
"Have you ever wondered [intriguing question]? The answer is more complicated—and fascinating—than you might think."
[THESIS - 0:20-0:45]
"Today we're going to uncover:
- The surprising history
- The science behind it
- Why everyone gets it wrong
- What it means for you"
[PART 1: HISTORY - 0:45-3:00]
- Origin story
- Key figures
- Evolution over time
- Critical moments
[PART 2: THE SCIENCE - 3:00-6:00]
- Break down the mechanics
- Visual explanations
- Common misconceptions
- Expert insights
[PART 3: MODERN RELEVANCE - 6:00-8:00]
- Current applications
- Future implications
- What you can do
- Call to action
[CONCLUSION - 8:00-9:00]
- Summarize journey
- Final profound thought
- Resources for more info
- Community questionQuick Tips for All Templates
Opening Lines That Hook
- "This changes everything..."
- "I was completely wrong about..."
- "Nobody talks about this, but..."
- "After [time period] of research..."
- "The industry doesn't want you to know..."
Transition Phrases
- "But here's where it gets interesting..."
- "Now, you might be thinking..."
- "This is when things took a turn..."
- "But wait, there's more to this story..."
- "Here's the part nobody expects..."
Closing Calls-to-Action
- "Try this and let me know your results"
- "What's your experience with [topic]?"
- "Should I do a part 2?"
- "Download my free guide below"
- "Join the discussion in the comments"
Retention Techniques Throughout
- Promise reveals: "In a moment, I'll show you..."
- Callbacks: "Remember earlier when..."
- Foreshadowing: "This becomes important later"
- Mini-cliffhangers: "But first, we need to understand..."
- Pattern interrupts: Change pace/energy suddenly
YouTube Title Generation Patterns
High-Performing Title Formulas
Curiosity Gap Formulas
The Revelation
- "Why [Unexpected Thing] Is Actually [Counterintuitive Result]"
- "The Real Reason [Common Occurrence]"
- "What [Authority] Doesn't Want You to Know About [Topic]"
- "The Truth About [Controversial Topic]"
- "The Hidden [Secret/Cost/Problem] of [Popular Thing]"
The Question
- "Is [Commonly Accepted Thing] Actually [Opposite]?"
- "What Happens When You [Unusual Action]?"
- "Why Do [Specific Group] [Unexpected Behavior]?"
- "Can [Seemingly Impossible Thing] Really [Work/Happen]?"
- "Should You [Controversial Action]? (Explained)"
Challenge & Competition Formulas
Direct Challenge
- "Can You [Task]? (99% Fail)"
- "Try Not to [Action] Challenge (Impossible)"
- "Beat This and I'll Give You $[Amount]"
- "[Number] Levels of [Topic] (Level 5 Is Impossible)"
Competition Format
- "$1 vs $10,000 [Product/Experience]"
- "[Thing] vs [Thing]: Ultimate Test"
- "[Number] [Experts] Compete to [Goal]"
- "Who Can [Task] the Fastest?"
Transformation & Results Formulas
Time-Based Transformation
- "I [Action] for [Time Period] and [Result]"
- "[Time Period] of [Activity]: Before and After"
- "0 to [Achievement] in [Time Period]"
- "How I [Achievement] in Just [Short Time Period]"
- "[Number] Days Without [Thing]: What Happened"
Results Showcase
- "This [Method] Gave Me [Specific Result]"
- "I Made $[Amount] Using [Method]"
- "From [Bad State] to [Good State] (My Journey)"
- "[Number]x [Improvement] With One Simple Change"
Educational & How-To Formulas
Direct Teaching
- "How to [Desired Outcome] (Step-by-Step)"
- "[Number] Ways to [Achieve Goal]"
- "The Only [Tutorial/Guide] You'll Ever Need"
- "[Topic] Explained in [Number] Minutes"
- "Master [Skill] in [Time Period]"
Tips and Tricks
- "[Number] [Tool/Platform] Tricks You Don't Know"
- "[Product] Hacks That Will Change Your Life"
- "Stop [Common Mistake] - Do This Instead"
- "[Number] [Profession] Secrets Revealed"
List-Based Formulas
Ranked Lists
- "Top [Number] [Category] of [Year/All Time]"
- "[Number] Best [Products] for [Use Case]"
- "Ranking Every [Category] From Worst to Best"
- "[Number] [Things] You Must [Action] Before [Event/Age]"
Countdown Lists
- "[Number] Signs You're [Characteristic/Situation]"
- "[Number] Reasons Why [Statement]"
- "[Number] Things Only [Specific Group] Will Understand"
- "[Number] Mistakes Everyone Makes With [Topic]"
Story & Drama Formulas
Personal Story
- "I [Did Something Extreme] So You Don't Have To"
- "They Told Me [Limitation], So I [Action]"
- "The Day That Changed Everything"
- "My $[Amount] Mistake"
- "Why I Quit [Thing] After [Time/Achievement]"
Drama/Conflict
- "[Entity] Is Trying to Stop This Video"
- "This Got Me Banned From [Place/Platform]"
- "[Company/Person] Sued Me for This"
- "The Rise and Fall of [Subject]"
Comparison Formulas
Product Comparisons
- "[Product A] vs [Product B]: Don't Buy Until You Watch"
- "I Tested [Number] [Products] - Here's the Winner"
- "Is [Expensive Option] Worth It?"
- "[Old Method] vs [New Method]: Shocking Results"
Experience Comparisons
- "Living Like [Person/Character] for [Time Period]"
- "Eating Only [Restriction] for [Time Period]"
- "[Budget] vs [Budget]: [Experience] Edition"
- "Professional vs Amateur: [Activity] Challenge"
Title Length Guidelines
Short Titles (30-40 characters)
Best for:
- Mobile viewing
- Simple concepts
- Strong keywords
Examples:
- "This Changes Everything"
- "You've Been Lied To"
- "The $1,000,000 Challenge"
Medium Titles (40-60 characters)
Best for:
- Most content
- Good detail/intrigue balance
- SEO optimization
Examples:
- "Why Smart People Make Dumb Decisions"
- "Building My Dream Studio (Full Tour)"
- "The Workout That Changed My Life"
Long Titles (60-70 characters)
Best for:
- Educational content
- Detailed promises
- Search-heavy topics
Examples:
- "How I Learned Spanish in 30 Days (Scientific Method)"
- "Every Mistake I Made Building My First Business"
- "The Complete Guide to Starting YouTube in 2024"
Power Words for Titles
Emotional Triggers
- Shocking, Insane, Crazy, Mind-blowing
- Secret, Hidden, Revealed, Exposed
- Ultimate, Perfect, Best, Worst
- Genius, Stupid, Brilliant, Terrible
Action Words
- Destroy, Crush, Dominate, Master
- Unlock, Discover, Reveal, Expose
- Transform, Change, Revolutionize
- Build, Create, Design, Make
Urgency Words
- Now, Today, Immediately, Instantly
- Never, Always, Forever, Finally
- Last, First, Only, New
Title Testing Strategy
A/B Testing Elements
1. Emotional vs Logical
- "This Made Me Cry" vs "Emotional Analysis of X"
2. Number vs No Number
- "5 Ways to Improve" vs "How to Improve"
3. Question vs Statement
- "Is This Worth It?" vs "This Isn't Worth It"
4. Personal vs General
- "My Morning Routine" vs "The Perfect Morning Routine"
5. Negative vs Positive
- "Stop Doing This" vs "Start Doing This"
SEO Optimization Tips
Include Target Keywords
- Put main keyword in first 60 characters
- Use natural language
- Include year for time-sensitive content
- Add qualifier words (best, guide, tutorial)
Avoid These Mistakes
- Clickbait without delivery
- All caps (except acronyms)
- Excessive punctuation
- Misleading promises
- Keyword stuffing
Platform-Specific Considerations
YouTube Shorts
- Keep under 40 characters
- Front-load the hook
- Use trending keywords
- Include "Shorts" sparingly
Long-Form Content
- Can use longer titles
- Include episode numbers if series
- Add context in parentheses
- Use colons for clarity
Matching Title to Thumbnail
Complementary (Recommended)
- Title asks question, thumbnail shows answer
- Title is broad, thumbnail is specific
- Title creates curiosity, thumbnail provides context
Redundant (Avoid)
- Same text in both
- Identical information
- No additional context
Veritasium Framework
Core Philosophy
"Challenge misconceptions and reveal counterintuitive truths through scientific storytelling"
Video Structure Pattern
The Misconception Hook
- Start with common wrong belief
- Show why it seems logical
- Create cognitive dissonance
- Promise to resolve confusion
Investigation Journey
- Historical context of the misconception
- Show experiments or demonstrations
- Interview experts when relevant
- Build tension before revelation
- Multiple layers of understanding
The Truth Revealed
- Clear explanation of correct concept
- Visual demonstrations
- Real-world applications
- Implications for viewer's worldview
- Circle back to opening question
Key Elements
Narrative Storytelling
- Science told as detective story
- Historical figures as characters
- Conflicts and resolutions
- Plot twists in understanding
- Emotional investment in truth
Visual Explanations
- Custom animations for concepts
- Real experiments filmed
- Slow-motion when helpful
- Graphs and data visualization
- Side-by-side comparisons
Academic Rigor
- Cite peer-reviewed sources
- Show mathematical proofs when relevant
- Address counterarguments
- Acknowledge uncertainties
- Correct own previous errors
Content Types
Misconception Corrections
- "Most people think X, but actually Y"
- Survey people for wrong answers
- Explain why misconception exists
- Provide correct mental model
Deep Dive Explanations
- Complex topics made accessible
- Build from first principles
- Multiple examples and analogies
- Connect to cutting-edge research
Historical Science Stories
- Forgotten discoveries
- Scientific controversies
- Evolution of understanding
- Human drama behind discoveries
Experimental Demonstrations
- Recreate famous experiments
- Design original demonstrations
- Explain experimental method
- Discuss sources of error
Title Patterns
- "The [Adjective] Discovery of [Year/Person]"
- "Why [Common Belief] Is Wrong"
- "The Truth About [Controversial Topic]"
- "[Question Everyone Gets Wrong]"
- "How [Thing] Actually Works"
- "The Science of [Everyday Phenomenon]"
Thumbnail Strategy
- Intriguing visual paradox
- Scientific apparatus or phenomenon
- Question marks for mystery
- Before/after or comparison shots
- Clean, professional aesthetic
- Minimal text, maximum intrigue
Presentation Style
- Professorial but accessible
- Building complexity gradually
- Socratic method (asking questions)
- Genuine curiosity and wonder
- Comfortable with uncertainty
- Focus on understanding over memorization
Production Values
- High-quality cinematography
- Custom animations and graphics
- Location shoots when relevant
- Professional color grading
- Clear audio in various environments
- Smooth editing between segments
Educational Techniques
Scaffolding Concepts
- Start with intuitive understanding
- Add layers of complexity
- Reference earlier explanations
- Build coherent mental models
- Test understanding with examples
Active Learning Elements
- Pause for viewer to consider
- Pose questions before answering
- Predict before revealing
- Challenge assumptions directly
- Encourage further exploration
Multiple Representations
- Verbal explanations
- Visual demonstrations
- Mathematical formulations
- Analogies and metaphors
- Historical context
Retention Strategies
- Open loops about resolution
- Progressive reveals
- "But that's not the whole story..."
- Callbacks to earlier points
- Satisfying "aha!" moments
- End with broader implications
Research and Preparation
- Extensive literature review
- Consult multiple experts
- Test explanations on others
- Fact-check rigorously
- Prepare for counterarguments
- Find best visual demonstrations
Common Topics
- Physics misconceptions
- Psychological biases
- Mathematical paradoxes
- Engineering challenges
- Biology and evolution
- Technology and society
- Climate and environment
- Space and astronomy
Audience Engagement
- Respect viewer intelligence
- Acknowledge difficult concepts
- Provide additional resources
- Respond to thoughtful comments
- Create series on related topics
- Collaborate with other educators
#!/usr/bin/env python3
"""
YouTube Hook Analyzer
Evaluates the effectiveness of video hooks
"""
import re
from typing import Dict, List, Tuple
from dataclasses import dataclass
@dataclass
class HookAnalysis:
"""Analysis results for a video hook"""
text: str
score: int
strengths: List[str]
weaknesses: List[str]
suggestions: List[str]
hook_type: str
estimated_retention: str
class HookAnalyzer:
def __init__(self):
self.hook_patterns = {
'question': r'^(what if|have you ever|did you know|can you|why do|is it)',
'statement': r'^(this is|i just|most people|everyone thinks|nobody talks)',
'challenge': r'(bet you|99%|impossible|try not to|challenge)',
'story': r'(years ago|this is the day|i wasn\'t supposed|last week)',
'shocking': r'(changes everything|completely wrong|biggest mistake|destroyed)',
'promise': r'(i\'ll show you|you\'ll learn|by the end|in the next)'
}
self.power_words = [
'secret', 'shocking', 'insane', 'crazy', 'unbelievable',
'mind-blowing', 'revolutionary', 'game-changing', 'destroy',
'exposed', 'truth', 'actually', 'real', 'hidden', 'nobody'
]
self.weak_words = [
'basically', 'sort of', 'kind of', 'maybe', 'possibly',
'might', 'could', 'somewhat', 'fairly', 'quite'
]
def analyze_hook(self, hook_text: str, target_length_seconds: int = 30) -> HookAnalysis:
"""Analyze a hook for effectiveness"""
hook_text = hook_text.strip()
score = 0
strengths = []
weaknesses = []
suggestions = []
# Detect hook type
hook_type = self._detect_hook_type(hook_text)
# Length analysis (assuming ~2.5 words per second speaking rate)
word_count = len(hook_text.split())
expected_words = target_length_seconds * 2.5
if word_count < expected_words * 0.7:
weaknesses.append(f"Hook is too short ({word_count} words for {target_length_seconds}s)")
suggestions.append("Expand with more specific details or examples")
elif word_count > expected_words * 1.3:
weaknesses.append(f"Hook is too long ({word_count} words for {target_length_seconds}s)")
suggestions.append("Trim unnecessary words and get to the point faster")
else:
strengths.append(f"Good length ({word_count} words)")
score += 10
# Check for power words
power_word_count = sum(1 for word in self.power_words
if word.lower() in hook_text.lower())
if power_word_count > 0:
strengths.append(f"Uses {power_word_count} power word(s)")
score += power_word_count * 5
else:
suggestions.append("Add power words for emotional impact")
# Check for weak words
weak_word_count = sum(1 for word in self.weak_words
if word.lower() in hook_text.lower())
if weak_word_count > 0:
weaknesses.append(f"Contains {weak_word_count} weak qualifier(s)")
suggestions.append("Remove weak qualifiers for stronger statements")
score -= weak_word_count * 3
# Pattern interrupt check
if hook_text[0].islower() or hook_text.startswith('...'):
strengths.append("Uses pattern interrupt opening")
score += 10
# Promise/value check
if re.search(self.hook_patterns['promise'], hook_text.lower()):
strengths.append("Makes clear promise to viewer")
score += 15
else:
suggestions.append("Add a clear promise of what viewer will gain")
# Question engagement
if '?' in hook_text:
strengths.append("Uses questions to engage viewer")
score += 10
# Specificity check
if re.search(r'\d+', hook_text):
strengths.append("Includes specific numbers")
score += 10
# Stakes/consequences check
stakes_words = ['destroy', 'ruin', 'change everything', 'never be the same',
'biggest mistake', 'costs you', 'loses']
if any(word in hook_text.lower() for word in stakes_words):
strengths.append("Establishes clear stakes")
score += 15
else:
suggestions.append("Consider adding stakes or consequences")
# Curiosity gap check
curiosity_phrases = ['but', 'however', 'except', 'until', 'then something']
if any(phrase in hook_text.lower() for phrase in curiosity_phrases):
strengths.append("Creates curiosity gap")
score += 15
# Personal/relatable check
if re.search(r'\b(i|my|me|you|your)\b', hook_text.lower()):
strengths.append("Uses personal/direct language")
score += 10
# Calculate estimated retention
if score >= 70:
estimated_retention = "High (70-90%)"
elif score >= 50:
estimated_retention = "Good (60-70%)"
elif score >= 30:
estimated_retention = "Average (50-60%)"
else:
estimated_retention = "Low (Below 50%)"
# Ensure score is between 0 and 100
score = max(0, min(100, score))
return HookAnalysis(
text=hook_text,
score=score,
strengths=strengths,
weaknesses=weaknesses,
suggestions=suggestions,
hook_type=hook_type,
estimated_retention=estimated_retention
)
def _detect_hook_type(self, hook_text: str) -> str:
"""Detect the type of hook being used"""
lower_text = hook_text.lower()
for hook_type, pattern in self.hook_patterns.items():
if re.search(pattern, lower_text):
return hook_type.capitalize()
return "General"
def compare_hooks(self, hooks: List[str]) -> List[HookAnalysis]:
"""Compare multiple hook options"""
analyses = []
for hook in hooks:
analyses.append(self.analyze_hook(hook))
# Sort by score
analyses.sort(key=lambda x: x.score, reverse=True)
return analyses
def suggest_improvements(self, hook_text: str) -> str:
"""Generate an improved version of the hook"""
analysis = self.analyze_hook(hook_text)
improved = hook_text
# Add power word if missing
if "power word" in " ".join(analysis.suggestions).lower():
power_word = self.power_words[0]
improved = f"This {power_word} discovery... {improved}"
# Add promise if missing
if "promise" in " ".join(analysis.suggestions).lower():
improved += " ...and by the end, you'll know exactly how to use it."
# Add stakes if missing
if "stakes" in " ".join(analysis.suggestions).lower():
improved = improved.replace(".",
", and if you don't know this, it could cost you everything.")
return improved
def format_analysis(analysis: HookAnalysis) -> str:
"""Format analysis results for display"""
output = []
output.append(f"\n{'='*60}")
output.append(f"HOOK: {analysis.text[:50]}...")
output.append(f"{'='*60}")
output.append(f"\n📊 Overall Score: {analysis.score}/100")
output.append(f"🎯 Hook Type: {analysis.hook_type}")
output.append(f"📈 Estimated Retention: {analysis.estimated_retention}")
if analysis.strengths:
output.append(f"\n✅ Strengths:")
for strength in analysis.strengths:
output.append(f" • {strength}")
if analysis.weaknesses:
output.append(f"\n❌ Weaknesses:")
for weakness in analysis.weaknesses:
output.append(f" • {weakness}")
if analysis.suggestions:
output.append(f"\n💡 Suggestions:")
for suggestion in analysis.suggestions:
output.append(f" • {suggestion}")
return "\n".join(output)
def main():
"""Example usage"""
analyzer = HookAnalyzer()
print("🎬 YouTube Hook Analyzer")
print("="*60)
print("\nEnter your hook (or 'compare' to compare multiple):")
user_input = input("\n> ").strip()
if user_input.lower() == 'compare':
hooks = []
print("\nEnter up to 5 hooks (empty line to finish):")
for i in range(5):
hook = input(f"Hook {i+1}: ").strip()
if not hook:
break
hooks.append(hook)
if hooks:
print("\n🔍 Comparing Hooks...")
analyses = analyzer.compare_hooks(hooks)
for i, analysis in enumerate(analyses, 1):
print(f"\n{'🥇' if i == 1 else '🥈' if i == 2 else '🥉' if i == 3 else '📊'} "
f"Rank {i}:")
print(format_analysis(analysis))
else:
analysis = analyzer.analyze_hook(user_input)
print(format_analysis(analysis))
if analysis.score < 70:
print("\n🔧 Suggested Improvement:")
improved = analyzer.suggest_improvements(user_input)
print(f" {improved}")
# Re-analyze improved version
improved_analysis = analyzer.analyze_hook(improved)
print(f"\n New Score: {improved_analysis.score}/100 "
f"(+{improved_analysis.score - analysis.score} points)")
if __name__ == "__main__":
main()
#!/usr/bin/env python3
"""
YouTube Shorts Extractor
Identifies short-worthy moments from video outlines
"""
import re
from typing import List, Dict, Tuple
from dataclasses import dataclass
import json
@dataclass
class ShortConcept:
"""A potential YouTube Short concept"""
type: str
title: str
description: str
duration: str
hook: str
content: str
source_section: str
viral_potential: int
class ShortsExtractor:
def __init__(self):
self.short_types = {
'hook': {
'duration': '15-30 seconds',
'description': 'Most impactful moment as standalone teaser',
'viral_potential': 85
},
'tip': {
'duration': '30-45 seconds',
'description': 'Single actionable tip or trick',
'viral_potential': 70
},
'reveal': {
'duration': '15-30 seconds',
'description': 'Big reveal or surprising result',
'viral_potential': 90
},
'process': {
'duration': '45-60 seconds',
'description': 'Quick how-to or demonstration',
'viral_potential': 65
},
'story': {
'duration': '30-60 seconds',
'description': 'Complete micro-story with payoff',
'viral_potential': 75
},
'comparison': {
'duration': '30-45 seconds',
'description': 'Quick A vs B comparison',
'viral_potential': 70
},
'myth': {
'duration': '15-30 seconds',
'description': 'Myth-busting or misconception correction',
'viral_potential': 80
},
'behind_scenes': {
'duration': '30-45 seconds',
'description': 'Making-of or blooper moment',
'viral_potential': 60
}
}
self.trigger_phrases = {
'hook': ['most people think', 'what if i told you', 'nobody talks about',
'the truth is', 'biggest mistake'],
'tip': ['pro tip', 'quick tip', 'here\'s how', 'secret trick',
'simple hack'],
'reveal': ['the result', 'it turns out', 'the answer', 'shocking discovery',
'plot twist'],
'process': ['step by step', 'how to', 'tutorial', 'first you',
'the process'],
'story': ['one time', 'story time', 'this happened', 'let me tell you',
'real quick story'],
'comparison': ['versus', 'vs', 'compared to', 'difference between',
'better than'],
'myth': ['myth', 'misconception', 'people believe', 'actually false',
'common mistake'],
'behind_scenes': ['blooper', 'behind the scenes', 'what went wrong',
'failed attempt']
}
def extract_shorts(self, video_outline: str) -> List[ShortConcept]:
"""Extract potential shorts from a video outline"""
shorts = []
sections = self._parse_outline(video_outline)
for section_title, section_content in sections.items():
# Check each section for short-worthy content
potential_shorts = self._analyze_section(section_title, section_content)
shorts.extend(potential_shorts)
# Sort by viral potential
shorts.sort(key=lambda x: x.viral_potential, reverse=True)
# Limit to top 5 concepts
return shorts[:5]
def _parse_outline(self, outline: str) -> Dict[str, str]:
"""Parse outline into sections"""
sections = {}
current_section = "Introduction"
current_content = []
lines = outline.split('\n')
for line in lines:
# Check if this is a section header
if re.match(r'^(#{1,3}|Act \d|Part \d|\d+\.)', line):
if current_content:
sections[current_section] = '\n'.join(current_content)
current_section = line.strip('#').strip()
current_content = []
else:
if line.strip():
current_content.append(line.strip())
# Add the last section
if current_content:
sections[current_section] = '\n'.join(current_content)
return sections
def _analyze_section(self, title: str, content: str) -> List[ShortConcept]:
"""Analyze a section for short potential"""
shorts = []
lower_content = content.lower()
# Check for trigger phrases
for short_type, phrases in self.trigger_phrases.items():
for phrase in phrases:
if phrase in lower_content:
short = self._create_short_concept(
short_type, title, content, phrase
)
if short:
shorts.append(short)
break # Only one short per type per section
# Special checks for high-value content
if re.search(r'\$\d+', content): # Money mentioned
short = self._create_short_concept('reveal', title, content, 'money')
if short:
shorts.append(short)
if re.search(r'\d+%', content): # Statistics mentioned
short = self._create_short_concept('myth', title, content, 'statistic')
if short:
shorts.append(short)
if '?' in content: # Questions that could be hooks
short = self._create_short_concept('hook', title, content, 'question')
if short:
shorts.append(short)
return shorts
def _create_short_concept(self, short_type: str, section: str,
content: str, trigger: str) -> ShortConcept:
"""Create a short concept from section content"""
if short_type not in self.short_types:
return None
type_info = self.short_types[short_type]
# Generate title based on type
title = self._generate_short_title(short_type, content, trigger)
# Generate hook
hook = self._generate_hook(short_type, content)
# Extract relevant content (first 100 chars for brevity)
relevant_content = content[:200] + "..." if len(content) > 200 else content
return ShortConcept(
type=short_type,
title=title,
description=type_info['description'],
duration=type_info['duration'],
hook=hook,
content=relevant_content,
source_section=section,
viral_potential=type_info['viral_potential']
)
def _generate_short_title(self, short_type: str, content: str,
trigger: str) -> str:
"""Generate a title for the short"""
titles = {
'hook': ["Wait, WHAT?! 🤯", "This Changes Everything", "You Won't Believe This"],
'tip': ["60-Second Hack", "Try This Today", "Game-Changing Tip"],
'reveal': ["The Answer Will Shock You", "Plot Twist!", "I Was Wrong..."],
'process': ["How To in 60 Seconds", "Quick Tutorial", "Watch Me Do This"],
'story': ["Storytime!", "This Actually Happened", "You Need To Hear This"],
'comparison': ["Which Is Better?", "The Winner Is...", "Tested & Compared"],
'myth': ["MYTH BUSTED", "Everyone Gets This Wrong", "The Truth About..."],
'behind_scenes': ["What Really Happened", "Behind The Scenes", "Blooper Alert"]
}
# Get first few words of content for context
first_words = ' '.join(content.split()[:5])
base_title = titles.get(short_type, ["Must Watch"])[0]
# Add emoji based on content
if '$' in content:
base_title += " 💰"
elif '?' in content:
base_title += " 🤔"
elif 'fail' in content.lower():
base_title += " 😅"
return base_title
def _generate_hook(self, short_type: str, content: str) -> str:
"""Generate a hook for the short"""
hooks = {
'hook': "POV: You just learned something that changes everything...",
'tip': "Stop scrolling! This tip will save you hours...",
'reveal': "The result? I couldn't believe it either...",
'process': "Learn this in 60 seconds or less...",
'story': "Let me tell you what happened...",
'comparison': "I tested both so you don't have to...",
'myth': "Everyone believes this, but here's the truth...",
'behind_scenes': "Here's what you didn't see..."
}
return hooks.get(short_type, "Watch this...")
def generate_short_scripts(self, short: ShortConcept) -> str:
"""Generate a brief script for a short"""
script = []
script.append(f"TITLE: {short.title}")
script.append(f"DURATION: {short.duration}")
script.append("")
script.append("SCRIPT:")
script.append(f"[0-3 seconds] HOOK: {short.hook}")
if short.type == 'hook':
script.append("[3-15 seconds] BUILD: Create tension with the question/problem")
script.append("[15-25 seconds] REVEAL: Show the surprising answer/result")
script.append("[25-30 seconds] CTA: 'Full video explains everything - link in bio'")
elif short.type == 'tip':
script.append("[3-10 seconds] PROBLEM: Show what people usually do wrong")
script.append("[10-30 seconds] SOLUTION: Demonstrate the better way")
script.append("[30-40 seconds] RESULT: Show the improvement")
script.append("[40-45 seconds] CTA: 'Follow for more tips like this'")
elif short.type == 'reveal':
script.append("[3-10 seconds] SETUP: Context for the reveal")
script.append("[10-20 seconds] BUILD: Increase anticipation")
script.append("[20-28 seconds] REVEAL: The big moment")
script.append("[28-30 seconds] REACTION: Your genuine response")
elif short.type == 'process':
script.append("[3-10 seconds] INTRO: What we're making/doing")
script.append("[10-40 seconds] STEPS: Quick, clear demonstration")
script.append("[40-55 seconds] RESULT: Show the finished product")
script.append("[55-60 seconds] CTA: 'Save this for later!'")
elif short.type == 'story':
script.append("[3-10 seconds] SETUP: Quick context")
script.append("[10-40 seconds] STORY: The main narrative")
script.append("[40-55 seconds] TWIST/LESSON: The payoff")
script.append("[55-60 seconds] CTA: 'What would you have done?'")
else:
script.append("[3-45 seconds] CONTENT: Main content")
script.append("[45-60 seconds] CTA: Engagement prompt")
script.append("")
script.append("CAPTION:")
script.append(f"{short.hook} {short.title}")
script.append("#shorts #viral #fyp")
return '\n'.join(script)
def format_short_concept(short: ShortConcept) -> str:
"""Format a short concept for display"""
output = []
output.append(f"\n{'='*60}")
output.append(f"🎬 {short.title}")
output.append(f"{'='*60}")
output.append(f"Type: {short.type.upper()}")
output.append(f"Duration: {short.duration}")
output.append(f"Viral Potential: {short.viral_potential}/100 🔥")
output.append(f"Source Section: {short.source_section}")
output.append(f"\nDescription: {short.description}")
output.append(f"\nHook: {short.hook}")
output.append(f"\nContent Preview: {short.content}")
return '\n'.join(output)
def main():
"""Example usage"""
extractor = ShortsExtractor()
print("🎬 YouTube Shorts Extractor")
print("="*60)
print("\nPaste your video outline (type 'END' on a new line when done):")
outline_lines = []
while True:
line = input()
if line.strip().upper() == 'END':
break
outline_lines.append(line)
outline = '\n'.join(outline_lines)
if outline.strip():
print("\n🔍 Analyzing outline for short opportunities...")
shorts = extractor.extract_shorts(outline)
if shorts:
print(f"\n✨ Found {len(shorts)} potential shorts:")
for i, short in enumerate(shorts, 1):
print(f"\n{'🥇' if i == 1 else '🥈' if i == 2 else '🥉' if i == 3 else f'{i}.'}")
print(format_short_concept(short))
# Optionally generate script for top short
if i == 1:
print("\n📝 SUGGESTED SCRIPT:")
print("-"*40)
print(extractor.generate_short_scripts(short))
else:
print("\nNo clear short opportunities found. Consider adding:")
print("- Strong hooks or surprising reveals")
print("- Quick tips or hacks")
print("- Compelling mini-stories")
print("- Before/after comparisons")
if __name__ == "__main__":
main()
#!/usr/bin/env python3
"""
YouTube Title Generator
Generates viral title options based on topic and style
"""
import random
import re
from typing import List, Dict
class TitleGenerator:
def __init__(self):
self.templates = {
'curiosity': [
"Why {topic} Is Actually {unexpected_result}",
"The Real Reason {phenomenon}",
"What Nobody Tells You About {topic}",
"The Hidden {secret} of {subject}",
"The Truth About {controversial_topic}",
"{authority} Doesn't Want You to Know This About {topic}"
],
'challenge': [
"Can You {task}? (99% Fail)",
"I {action} for {time_period} and {result}",
"{number} Levels of {topic} (Level {max_level} Is Impossible)",
"Try Not to {action} Challenge (Impossible)",
"${amount} If You Can {challenge}"
],
'educational': [
"How to {desired_outcome} (Step-by-Step)",
"{number} Ways to {achieve_goal}",
"{topic} Explained in {number} Minutes",
"Master {skill} in {time_period}",
"The Only {topic} Guide You'll Ever Need",
"Stop {mistake} - Do This Instead"
],
'transformation': [
"From {bad_state} to {good_state} in {time_period}",
"This {method} Changed My {aspect}",
"I Went From {start} to {end} in {time}",
"How I {achievement} in Just {time_period}",
"My ${amount} {type} Transformation"
],
'comparison': [
"${price1} vs ${price2} {item}",
"{option1} vs {option2}: The Winner Shocked Me",
"I Tested {number} {items} - Here's the Best",
"Is {expensive_option} Worth It?",
"{old_way} vs {new_way}: Mind-Blowing Results"
],
'story': [
"The Day That Changed Everything",
"I {extreme_action} So You Don't Have To",
"They Said {limitation}, So I {proved_wrong}",
"My ${amount} Mistake",
"Why I Quit {thing} After {achievement}"
]
}
def generate_titles(self, topic: str, style: str = None, count: int = 5) -> List[str]:
"""Generate title options for a given topic and style"""
if style and style in self.templates:
templates = self.templates[style]
else:
# Use all templates if no style specified
templates = []
for template_list in self.templates.values():
templates.extend(template_list)
titles = []
used_templates = []
for _ in range(count):
available_templates = [t for t in templates if t not in used_templates]
if not available_templates:
available_templates = templates
used_templates = []
template = random.choice(available_templates)
used_templates.append(template)
title = self._fill_template(template, topic)
titles.append(title)
return titles
def _fill_template(self, template: str, topic: str) -> str:
"""Fill in template variables with contextual content"""
replacements = {
'topic': topic,
'number': str(random.choice([3, 5, 7, 10, 15, 21, 30])),
'time_period': random.choice(['24 Hours', '7 Days', '30 Days', '1 Year']),
'amount': str(random.choice([100, 500, 1000, 5000, 10000, 50000, 100000])),
'price1': str(random.choice([1, 10, 100])),
'price2': str(random.choice([1000, 10000, 100000, 1000000])),
'max_level': str(random.choice([5, 10, 100])),
# Context-aware replacements
'unexpected_result': f"the Best {topic} Strategy",
'phenomenon': f"Everyone's Obsessed with {topic}",
'secret': f"Secret",
'subject': topic,
'controversial_topic': topic,
'authority': random.choice(['Experts', 'Big Tech', 'The Industry']),
'task': f"Master {topic} in 1 Day",
'action': f"Studied {topic}",
'result': "These Were the Results",
'desired_outcome': f"Master {topic}",
'achieve_goal': f"Improve Your {topic} Skills",
'skill': topic,
'mistake': f"Making These {topic} Mistakes",
'bad_state': "Complete Beginner",
'good_state': "Expert Level",
'method': f"{topic} Technique",
'aspect': "Life",
'start': "Zero",
'end': "Hero",
'achievement': "10,000 Hours",
'type': topic,
'item': topic,
'items': f"{topic} Tools",
'option1': f"Traditional {topic}",
'option2': f"Modern {topic}",
'expensive_option': f"Premium {topic}",
'old_way': "The Old Method",
'new_way': "This New Technique",
'extreme_action': f"Lived Like a {topic} Expert",
'limitation': f"You Can't Learn {topic} Fast",
'proved_wrong': "Proved Them Wrong",
'thing': topic,
'challenge': f"Beat My {topic} Score"
}
# Replace all placeholders
for key, value in replacements.items():
pattern = r'\{' + key + r'\}'
if re.search(pattern, template):
template = re.sub(pattern, value, template)
return template
def generate_with_metrics(self, topic: str, style: str = None) -> List[Dict]:
"""Generate titles with predicted performance metrics"""
titles = self.generate_titles(topic, style, count=10)
results = []
for title in titles:
# Simple heuristic scoring
score = 0
# Length scoring (optimal 40-60 chars)
length = len(title)
if 40 <= length <= 60:
score += 20
elif 30 <= length <= 70:
score += 10
# Power word scoring
power_words = ['secret', 'shocking', 'truth', 'actually', 'nobody',
'impossible', 'changed', 'mistake', 'quit', 'master']
for word in power_words:
if word.lower() in title.lower():
score += 10
# Number inclusion
if any(char.isdigit() for char in title):
score += 15
# Question format
if '?' in title:
score += 10
# Dollar amount
if '$' in title:
score += 15
results.append({
'title': title,
'length': length,
'score': min(score, 100),
'style': style or 'mixed'
})
# Sort by score
results.sort(key=lambda x: x['score'], reverse=True)
return results
def main():
"""Example usage"""
generator = TitleGenerator()
# Get topic from user
topic = input("Enter your video topic: ")
print("\nSelect style:")
print("1. Curiosity Gap")
print("2. Challenge")
print("3. Educational")
print("4. Transformation")
print("5. Comparison")
print("6. Story")
print("7. Mixed (All styles)")
choice = input("\nEnter choice (1-7): ")
style_map = {
'1': 'curiosity',
'2': 'challenge',
'3': 'educational',
'4': 'transformation',
'5': 'comparison',
'6': 'story',
'7': None
}
style = style_map.get(choice, None)
print(f"\n🎬 Generated Titles for '{topic}':\n")
print("=" * 60)
results = generator.generate_with_metrics(topic, style)
for i, result in enumerate(results[:5], 1):
print(f"\n{i}. {result['title']}")
print(f" 📊 Score: {result['score']}/100")
print(f" 📏 Length: {result['length']} chars")
print(f" 🎯 Style: {result['style']}")
if __name__ == "__main__":
main()