✓ Verified 💻 Development ✓ Enhanced Data

Solo Index Youtube

Index YouTube channel videos and transcripts for semantic search.

Rating
4 (422 reviews)
Downloads
9,548 downloads
Version
1.0.0

Overview

Index YouTube channel videos and transcripts for semantic search.

Complete Documentation

View Source →

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

bash
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 (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):

bash
# Install solograph
pip install solograph
# or
uvx solograph

Indexing via solograph CLI:

bash
# 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:

bash
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

bash
# 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

bash
# 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

bash
# 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:

markdown
# 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:

bash
# Search across all transcripts
grep -ri "startup idea" docs/youtube/

Output

Report to the user:

  • Number of videos indexed
  • Number of transcripts downloaded (vs skipped — no transcript available)
  • How many had chapter markers
  • Index file location
  • 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.

Installation

Terminal bash

openclaw install solo-index-youtube
    
Copied!

💻Code Examples

which yt-dlp || echo "MISSING: install yt-dlp (brew install yt-dlp / pip install yt-dlp / pipx install yt-dlp)"

which-yt-dlp--echo-missing-install-yt-dlp-brew-install-yt-dlp--pip-install-yt-dlp--pipx-install-yt-dlp.txt
## 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):**

uvx solograph-cli index-youtube -c <handle> -n 10

uvx-solograph-cli-index-youtube--c-handle--n-10.txt
**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**

awk '!seen[$0]++' > docs/youtube/channel/video.txt

-awk-seen0--docsyoutubechannelvideotxt.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`:

- **Actionable:** {takeaway}

--actionable-takeaway.txt
**Step 5: Search indexed content**

With transcripts saved as text files, use Grep to search:
example.sh
# Install solograph
pip install solograph
# or
uvx solograph
example.sh
# 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
example.sh
# 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>"
example.sh
# 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
example.md
# YouTube Knowledge Index

## Channel: {channel_name}

### {video_title}
- **URL:** {url}
- **Key topics:** {topic1}, {topic2}
- **Insights:** {summary}
- **Actionable:** {takeaway}

Tags

#coding_agents-and-ides #script

Quick Info

Category Development
Model Claude 3.5
Complexity One-Click
Author fortunto2
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install solo-index-youtube