mcpField
S
solo-index-youtube

solo-index-youtube

github.com/fortunto2Data & databases1847 installsUpdated today
Repository

About solo-index-youtube

A skill for indexing YouTube transcripts into a searchable knowledge base. It uses solograph MCP tools when available, with a yt-dlp-based transcript and text-search fallback.

Key features

  1. 01Index selected channels or all configured channels
  2. 02Limit video counts and preview with dry-run
  3. 03Search transcripts through solograph or Grep
  4. 04Extract topics, insights, and takeaways

Use cases

  1. 01Build a searchable index of videos from selected channels
  2. 02Find topics across downloaded transcripts
  3. 03Review notable segments and takeaways from videos

MCP support

When solograph MCP tools are available, it indexes content with solograph and verifies it using source_list, source_search, source_tags, and source_related. Without MCP tools, it falls back to yt-dlp and local text search.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/fortunto2/solo-factory --skill solo-index-youtube

After installing, type/solo-index-youtubein Claude Code to confirm it loaded.

Details

From the project README

/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":

  • If empty or "all": index all channels (from config or ask user)
  • If one or more handles: index only those channels (e.g., GregIsenberg ycombinator)
  • Optional flags: -n <limit> (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 10

# Multiple channels
solograph-cli index-youtube -c GregIsenberg -c ycombinator -n 10

# All channels (from channels.yaml in solograph config)
solograph-cli index-youtube -n 10

# Dry 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 <handle> -n 10

Verification via MCP:

  • source_list — check that youtube source appears
  • source_search("startup idea", source="youtube") — test semantic search
  • source_tags — see auto-detected topics from transcripts
  • source_related(video_id) — find related videos by tags
Mode 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" \
  "<video-url>"

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:

  • Title (from filename or yt-dlp metadata)
  • Key topics and insights
  • Actionable takeaways
  • Timestamps for notable segments (if chapter markers exist)

Write a summary index to docs/youtube/index.md:

# YouTube Knowledge Index

## Channel: {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: Run brew 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 with pip install solograph or uvx solograph. Check which solograph-cli.

Comments

Markdown supported