Loading...
Loading...
Pull recent YouTube transcripts from pre-selected channels and generate topic ideas from them. Use when someone says "mine YouTube", "find video ideas", "what are creators talking about", "YouTube research", "transcript ideas", "content mining", "what should I talk about", "topic ideas from YouTube", or wants to turn other creators' videos into their own content angles. World Code integrated — ideas map to your Bridge when available.
npx skill4agent add mrpaulscrivens/boring-zoo boring-youtube-miningwhich yt-dlpyt-dlpis required but not installed.yt-dlpInstall it for your platform:
- macOS:
brew install yt-dlp- Windows:
winget install yt-dlp- Linux:
or your package managerpip install yt-dlp- Universal:
pip install yt-dlpThen runagain./boring-youtube-mining
yt-dlpworld-code/voice.mdworld-code/conversation.mdsettings/youtube-channels.mdI createdwith some example channels. Edit it in Obsidian to add the channels you want to mine, then runsettings/youtube-channels.mdagain./boring-youtube-mining
settings/youtube-channels.md# YouTube Channels
Add channels you want to mine for content ideas. Use the @ handle format.
Add a short description so Claude knows the context.
- @AlexHormozi - Business, offers, scaling
- @ChrisDo - Branding, pricing, positioningyt-dlp --flat-playlist --playlist-items 1:5 --print "%(id)s | %(title)s | %(duration_string)s" "https://www.youtube.com/@{handle}/videos" 2>/dev/null## Recent Videos
### @AlexHormozi
1. [dQw4w9WgXcQ] How to Price Your Offer (12:34)
2. [abc123def] The $100M Framework Nobody Uses (18:22)
...
### @ChrisDo
3. [xyz789ghi] Why Your Brand Is Invisible (9:45)
...Which videos should I analyze? Enter numbers (e.g., "1, 3, 5") or "all".
Could not fetch videos from @BadHandle — check the handle in.settings/youtube-channels.md
ls "content/youtube-transcripts/{video_id}.md" 2>/dev/nullTranscript for "{title}" already cached — skipping download.
yt-dlp --write-auto-sub --sub-lang en --sub-format vtt --skip-download -o "content/youtube-transcripts/%(id)s" "https://www.youtube.com/watch?v={video_id}" 2>/dev/nullmkdir -p "content/youtube-transcripts"XX:XX:XX.XXX --> XX:XX:XX.XXXWEBVTTKind:Language:<c></c>align:start position:0%content/youtube-transcripts/{video_id}.md---
video_id: {video_id}
title: {video title}
channel: {channel handle}
date_fetched: {YYYY-MM-DD}
url: https://www.youtube.com/watch?v={video_id}
---
# {video title}
**Channel:** {channel handle}
**URL:** https://www.youtube.com/watch?v={video_id}
## Transcript
{cleaned transcript text}No English captions available for "{title}" — skipping.
| Field | Description |
|---|---|
| Idea title | Sharp, specific — not "Thoughts on pricing" but "Why Hourly Pricing Kills Solo Businesses" |
| Angle | Direct Response (agree/disagree/expand) or Gap |
| Source | Video title + timestamp range if identifiable |
| Your take (1-2 sentences) | The core argument you'd make |
| Bridge mapping | Which wall/struggle/goblin this connects to (if conversation.md exists) |
| Content type | Post, thread, email, essay, video script, carousel |
| Draft hook | One opening line that would stop the scroll |
content-ideas/youtube-mining-{YYYY-MM-DD}.md---
type: youtube-mining
date: {YYYY-MM-DD}
channels_mined: [{list of channels}]
videos_analyzed: {count}
ideas_generated: {count}
---
# YouTube Mining — {YYYY-MM-DD}
## Sources
| Video | Channel | Ideas |
|-------|---------|-------|
| {title} | {channel} | {count} |
...
## Ideas
### From: "{video title}" (@channel)
#### 1. {Idea Title}
- **Angle:** {Direct Response — Agree/Disagree/Expand | Gap}
- **Source:** {video title}, ~{timestamp context if available}
- **Your take:** {1-2 sentences}
- **Bridge:** {wall/struggle/goblin or "No direct connection"}
- **Content type:** {post/thread/email/essay/video/carousel}
- **Draft hook:** "{opening line}"
---
{repeat for each idea}
## Bridge Summary
### Strong Connections
- {idea} → {wall/struggle}
...
### No Connection
- {idea} — interesting but not tied to your current World Code
...
## Next Steps
- Pick an idea and run `/boring-copywriting` to draft it
- Run `/boring-social-content` to turn an idea into platform-specific posts
- Run `/boring-remix` to generate multiple angles on your favorite ideaSaved {X} ideas to.content-ideas/youtube-mining-{date}.md{count} ideas with strong Bridge connections, {count} without.Pick an idea and I can draft it with, turn it into social posts with/boring-copywriting, or remix it with/boring-social-content./boring-remix