← Back to Skills
Media

youtube-ultimate

globalcaos By globalcaos 👁 19 views ▲ 0 votes

The most comprehensive YouTube skill for AI agents.

GitHub
---
name: youtube
version: 1.0.3
description: |
  The most comprehensive YouTube skill for AI agents. Extract transcripts for FREE (zero API quota!), search with filters, batch video details, read comments, download videos/audio. We analyzed 15+ YouTube tools and built the one that does everything.
homepage: https://github.com/openclaw/openclaw
repository: https://github.com/globalcaos/clawdbot-moltbot-openclaw
metadata:
  {
    "openclaw":
      {
        "emoji": "📺",
        "requires": { "bins": ["uv"] },
        "install":
          [
            {
              "id": "uv-brew",
              "kind": "brew",
              "formula": "uv",
              "bins": ["uv"],
              "label": "Install uv (brew)",
            },
            {
              "id": "ytdlp-brew",
              "kind": "brew",
              "formula": "yt-dlp",
              "bins": ["yt-dlp"],
              "label": "Install yt-dlp for downloads (optional)",
            },
          ],
      },
  }
---

# YouTube Research Pro

**The most comprehensive YouTube skill for AI agents.**

We analyzed 15+ YouTube MCP servers and found each does one thing well, but none does everything. So we built the skill we wished existed.

## Why This Skill?

| What Others Do | What We Do |
|----------------|------------|
| Transcripts OR search OR downloads | **All three, unified** |
| Burn API quota on transcripts | **FREE transcripts** (zero quota) |
| Single video at a time | **Batch operations** (50 videos) |
| Basic search | **Filtered search** (date, duration, order) |
| Text output only | **JSON export** for pipelines |

### The Killer Feature: FREE Transcripts

Most tools use the YouTube Data API for transcripts = **100 quota units per request**. Daily limit is 10,000 units = only ~100 transcripts/day.

**We use `youtube-transcript-api`** — extracts directly from YouTube's frontend. **Zero API quota. Unlimited transcripts.**

## Quick Reference

| Command | Quota | What it does |
|---------|-------|--------------|
| `transcript VIDEO` | **FREE** | Get video transcript |
| `transcript-list VIDEO` | **FREE** | List available languages |
| `download VIDEO` | **FREE** | Download video (yt-dlp) |
| `download-audio VIDEO` | **FREE** | Extract audio only |
| `search QUERY` | 100 | Search videos |
| `video ID [ID...]` | 1/video | Get details (batch!) |
| `comments VIDEO` | 1 | Get comments + replies |
| `channel [ID]` | 1-3 | Channel statistics |

## Setup (One Time)

```bash
# 1. Get credentials from Google Cloud Console
#    - Create OAuth 2.0 Client ID (Desktop app)
#    - Download JSON

# 2. Save credentials
mkdir -p ~/.config/youtube-skill
mv ~/Downloads/client_secret*.json ~/.config/youtube-skill/credentials.json

# 3. Authenticate
uv run {baseDir}/scripts/youtube.py auth
```

## Transcripts (FREE!)

```bash
# Plain text transcript
uv run {baseDir}/scripts/youtube.py transcript VIDEO_ID

# With timestamps
uv run {baseDir}/scripts/youtube.py transcript VIDEO_ID --timestamps

# Specific language (falls back to available)
uv run {baseDir}/scripts/youtube.py transcript VIDEO_ID -l es

# List what's available
uv run {baseDir}/scripts/youtube.py transcript-list VIDEO_ID

# JSON output
uv run {baseDir}/scripts/youtube.py transcript VIDEO_ID --json
```

Works with URLs too:
```bash
uv run {baseDir}/scripts/youtube.py transcript "https://youtube.com/watch?v=dQw4w9WgXcQ"
```

## Search

```bash
# Basic search
uv run {baseDir}/scripts/youtube.py search "AI news 2026"

# With filters
uv run {baseDir}/scripts/youtube.py search "tutorial" -l 20 --order date
uv run {baseDir}/scripts/youtube.py search "lecture" --duration long
uv run {baseDir}/scripts/youtube.py search "news" --published-after 2026-01-01T00:00:00Z
```

## Video Details (Batch Supported)

```bash
# Single video
uv run {baseDir}/scripts/youtube.py video dQw4w9WgXcQ

# Multiple videos at once (up to 50)
uv run {baseDir}/scripts/youtube.py video id1 id2 id3 id4 id5

# JSON output for processing
uv run {baseDir}/scripts/youtube.py video id1 id2 --json
```

## Comments

```bash
# Top comments
uv run {baseDir}/scripts/youtube.py comments VIDEO_ID

# With replies
uv run {baseDir}/scripts/youtube.py comments VIDEO_ID --replies

# Recent comments
uv run {baseDir}/scripts/youtube.py comments VIDEO_ID --order time -l 50
```

## Downloads (requires yt-dlp)

```bash
# Video (best quality)
uv run {baseDir}/scripts/youtube.py download VIDEO_ID

# Specific resolution
uv run {baseDir}/scripts/youtube.py download VIDEO_ID -r 720p

# With subtitles
uv run {baseDir}/scripts/youtube.py download VIDEO_ID -s en

# Audio only (MP3)
uv run {baseDir}/scripts/youtube.py download-audio VIDEO_ID

# Audio as M4A
uv run {baseDir}/scripts/youtube.py download-audio VIDEO_ID -f m4a
```

## User Data

```bash
uv run {baseDir}/scripts/youtube.py subscriptions
uv run {baseDir}/scripts/youtube.py playlists
uv run {baseDir}/scripts/youtube.py playlist-items PLAYLIST_ID
uv run {baseDir}/scripts/youtube.py liked
uv run {baseDir}/scripts/youtube.py channel
```

## Command Aliases

| Full | Alias |
|------|-------|
| `transcript` | `tr` |
| `search` | `s` |
| `video` | `v` |
| `comments` | `c` |
| `download` | `dl` |
| `download-audio` | `dla` |

## Use Cases

**Research:** Fetch transcript → analyze with LLM → extract insights

**Learning:** Batch transcripts from playlist → create study notes

**Monitoring:** Search recent videos → extract transcripts → track trends

**Podcasts:** Download audio for offline listening

**Analysis:** Get channel stats → compare competitors

## Multi-Account

```bash
uv run {baseDir}/scripts/youtube.py -a work subscriptions
uv run {baseDir}/scripts/youtube.py -a personal liked
```

## Why We Built This

We surveyed the landscape:
- **kimtaeyoon83/mcp-server-youtube-transcript** (463⭐) — Great transcripts, no search
- **kevinwatt/yt-dlp-mcp** (211⭐) — Great downloads, no transcripts
- **dannySubsense/youtube-mcp-server** (9⭐) — Most functions, but uses paid API for transcripts
- **kirbah/mcp-youtube** (9⭐) — Batch ops, but no free transcripts

**None combined free transcripts + search + downloads + batch ops.**

Now one does.

---

## Credits

Created by **Oscar Serra** with the help of **Claude** (Anthropic).

*We analyzed 15+ YouTube tools and built the one that does everything.*
media

Comments

Sign in to leave a comment

Loading comments...