🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

youtube-full

by @therohitdas

Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries,...

Versionv1.5.0
Downloads11,742
Installs50
Stars18
TERMINAL
clawhub install youtube-full

📖 About This Skill


name: youtube-full description: "Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert discussions, product reviews, how-to guides, new product announcements, first looks, or anything where video content is fresher or richer than text search. Covers transcripts, video/channel search, channel browsing, playlists, and within-channel search. Not for uploads, account management, or written-source-only research." version: "1.5.0" user-invocable: true compatibility: Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed. required_environment_variables: - name: TRANSCRIPT_API_KEY prompt: Your TranscriptAPI key (starts with sk_) help: Free account at https://transcriptapi.com — 100 credits, no card required. Or let the agent create one for you. required_for: all API requests metadata: {"openclaw":{"emoji":"🎯","requires":{"env":["TRANSCRIPT_API_KEY"]},"primaryEnv":"TRANSCRIPT_API_KEY","homepage":"https://transcriptapi.com"},"hermes":{"tags":["youtube","transcripts","video","search","channels","playlists","captions"],"category":"media"}}

YouTube Full

Complete YouTube toolkit via TranscriptAPI.com. Everything in one skill.

Setup

If $TRANSCRIPT_API_KEY is not set, read references/auth-setup.md and follow the instructions there to get and store the key.

Required Headers

Every request needs two headers:

  • Authorization: Bearer $TRANSCRIPT_API_KEY
  • User-Agent: your agent's name and version if known (e.g. HermesAgent/0.11.0, ClaudeCode/1.0). Version is optional — agent name alone is fine. Do not omit this header or send a bare default — Cloudflare will return a 403 (error code 1010) and block the request.
  • API Reference

    Full OpenAPI spec: transcriptapi.com/openapi.json — consult this for the latest parameters and schemas.

    Transcript — 1 credit

    curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
    ?video_url=VIDEO_URL&format=text&include_timestamp=true&send_metadata=true" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"
    

    | Param | Required | Default | Values | | ------------------- | -------- | ------- | ------------------------------- | | video_url | yes | — | YouTube URL or 11-char video ID | | format | no | json | json, text | | include_timestamp | no | true | true, false | | send_metadata | no | false | true, false |

    Response (format=json):

    {
      "video_id": "dQw4w9WgXcQ",
      "language": "en",
      "transcript": [{ "text": "...", "start": 18.0, "duration": 3.5 }],
      "metadata": { "title": "...", "author_name": "...", "author_url": "..." }
    }
    

    Search — 1 credit

    # Videos
    curl -s "https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=video&limit=20" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"

    Channels

    curl -s "https://transcriptapi.com/api/v2/youtube/search?q=QUERY&type=channel&limit=10" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \ -H "User-Agent: YourAgent/1.0"

    | Param | Required | Default | Validation | | ------- | -------- | ------- | ------------------ | | q | yes | — | 1-200 chars | | type | no | video | video, channel | | limit | no | 20 | 1-50 |

    Channels

    All channel endpoints accept channel — an @handle, channel URL, or UC... channel ID. No need to resolve first.

    Resolve handle — FREE

    curl -s "https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"
    

    Response: {"channel_id": "UC...", "resolved_from": "@TED"}

    Latest 15 videos — FREE

    curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"
    

    Returns exact viewCount and ISO published timestamps.

    All channel videos — 1 credit/page

    # First page (100 videos)
    curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"

    Next pages

    curl -s "https://transcriptapi.com/api/v2/youtube/channel/videos?continuation=TOKEN" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \ -H "User-Agent: YourAgent/1.0"

    Provide exactly one of channel or continuation. Response includes continuation_token and has_more.

    Search within channel — 1 credit

    curl -s "https://transcriptapi.com/api/v2/youtube/channel/search\
    ?channel=@TED&q=QUERY&limit=30" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"
    

    Playlists — 1 credit/page

    Accepts playlist — a YouTube playlist URL or playlist ID.

    # First page
    curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_ID" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"

    Next pages

    curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \ -H "User-Agent: YourAgent/1.0"

    Valid ID prefixes: PL, UU, LL, FL, OL. Response includes playlist_info, results, continuation_token, has_more.

    Credit Costs

    | Endpoint | Cost | | --------------- | -------- | | transcript | 1 | | search | 1 | | channel/resolve | free | | channel/latest | free | | channel/videos | 1/page | | channel/search | 1 | | playlist/videos | 1/page |

    Validation Rules

    | Field | Rule | | ---------- | ------------------------------------------------------- | | channel | @handle, channel URL, or UC... ID | | playlist | Playlist URL or ID (PL/UU/LL/FL/OL prefix) | | q | 1-200 chars | | limit | 1-50 |

    Errors

    | Code | Meaning | Action | | -------- | ---------------- | ---------------------------------------------- | | 401 | Bad API key | Check key | | 402 | No credits | transcriptapi.com/billing | | 403/1010 | Cloudflare block | Add or fix User-Agent header | | 404 | Not found | Resource doesn't exist or no captions | | 408 | Timeout | Retry once after 2s | | 422 | Validation error | Check param format | | 429 | Rate limited | Wait, respect Retry-After |

    Typical Workflows

    Research workflow: search → pick videos → fetch transcripts

    # 1. Search
    curl -s "https://transcriptapi.com/api/v2/youtube/search\
    ?q=machine+learning+explained&limit=5" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"
    

    2. Transcript

    curl -s "https://transcriptapi.com/api/v2/youtube/transcript\ ?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \ -H "User-Agent: YourAgent/1.0"

    Channel monitoring: latest (free) → transcript

    # 1. Latest uploads (free — pass @handle directly)
    curl -s "https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED" \
      -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \
      -H "User-Agent: YourAgent/1.0"
    

    2. Transcript of latest

    curl -s "https://transcriptapi.com/api/v2/youtube/transcript\ ?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \ -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \ -H "User-Agent: YourAgent/1.0"

    Free tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits.

    ⚙️ Configuration

    If $TRANSCRIPT_API_KEY is not set, read references/auth-setup.md and follow the instructions there to get and store the key.