Index Youtube
by @fortunto2
Index YouTube channel videos and transcripts for semantic search. Use when user says "index YouTube", "add YouTube channel", "update video index", or "index...
clawhub install solo-index-youtubeπ About This Skill
name: solo-index-youtube description: Index YouTube channel videos and transcripts for semantic search. Use when user says "index YouTube", "add YouTube channel", "update video index", or "index transcripts". Works with solograph MCP (if available) or standalone via yt-dlp. license: MIT metadata: author: fortunto2 version: "2.0.0" openclaw: emoji: "ποΈ" allowed-tools: Bash, Read, Glob, Grep, Write, AskUserQuestion, mcp__solograph__source_search, mcp__solograph__source_list, mcp__solograph__source_tags, mcp__solograph__source_related argument-hint: "[channel handles or 'all']"
/index-youtube
Index YouTube video transcripts into a searchable knowledge base. Supports two modes depending on available tools.
Prerequisites
Check that yt-dlp is available:
which yt-dlp || echo "MISSING: install yt-dlp (brew install yt-dlp / pip install yt-dlp / pipx install yt-dlp)"
Arguments
Parse $ARGUMENTS for channel handles or "all":
GregIsenberg ycombinator)-n (max videos per channel, default 10), --dry-run (parse only)Mode Detection
Check which mode is available:
Mode 1: With solograph MCP (recommended)
If MCP tools source_search, source_list, source_tags are available, use solograph for indexing and search.
Setup (if not yet installed):
# Install solograph
pip install solograph
or
uvx solograph
Indexing via solograph CLI:
# Single channel
solograph-cli index-youtube -c GregIsenberg -n 10Multiple channels
solograph-cli index-youtube -c GregIsenberg -c ycombinator -n 10All channels (from channels.yaml in solograph config)
solograph-cli index-youtube -n 10Dry run (parse only, no DB writes)
solograph-cli index-youtube --dry-run
If solograph-cli is not on PATH, try:
uvx solograph-cli index-youtube -c -n 10
Verification via MCP:
source_list β check that youtube source appearssource_search("startup idea", source="youtube") β test semantic searchsource_tags β see auto-detected topics from transcriptssource_related(video_id) β find related videos by tagsMode 2: Without MCP (standalone fallback)
If solograph MCP tools are NOT available, use yt-dlp directly to download transcripts and analyze them.
Step 1: Download video list
# Get recent video URLs from a channel
yt-dlp --flat-playlist --print url "https://www.youtube.com/@GregIsenberg/videos" | head -n 10
Step 2: Download transcripts
# Download auto-generated subtitles (no video download)
yt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format vtt \
-o "docs/youtube/%(channel)s/%(title)s.%(ext)s" \
""
Step 3: Convert VTT to readable text
# Strip VTT formatting (timestamps, positioning)
sed '/^$/d; /^[0-9]/d; /^NOTE/d; /^WEBVTT/d; /-->/d' docs/youtube/channel/video.vtt | \
awk '!seen[$0]++' > docs/youtube/channel/video.txt
Step 4: Create index
Read each transcript with the Read tool. For each video, extract:
Write a summary index to docs/youtube/index.md:
# YouTube Knowledge IndexChannel: {channel_name}
{video_title}
URL: {url}
Key topics: {topic1}, {topic2}
Insights: {summary}
Actionable: {takeaway}
Step 5: Search indexed content
With transcripts saved as text files, use Grep to search:
# Search across all transcripts
grep -ri "startup idea" docs/youtube/
Output
Report to the user: 1. Number of videos indexed 2. Number of transcripts downloaded (vs skipped β no transcript available) 3. How many had chapter markers 4. Index file location 5. How to search the indexed content (MCP tool or Grep command)
Common Issues
"MISSING: install yt-dlp"
Cause: yt-dlp not installed. Fix: Runbrew install yt-dlp (macOS), pip install yt-dlp, or pipx install yt-dlp.Videos skipped (no transcript)
Cause: Video has no auto-generated or manual subtitles. Fix: This is expected β some videos lack transcripts. Only videos with available subtitles can be indexed.Rate limiting from YouTube
Cause: Too many requests in short time. Fix: Reduce-n limit, add --sleep-interval 2 to yt-dlp commands, or use --cookies-from-browser chrome for authenticated access.solograph-cli not found
Cause: solograph not installed or not on PATH. Fix: Install withpip install solograph or uvx solograph. Check which solograph-cli.
βοΈ Configuration
Check that yt-dlp is available:
which yt-dlp || echo "MISSING: install yt-dlp (brew install yt-dlp / pip install yt-dlp / pipx install yt-dlp)"