Captions

zeropointrepo/youtube-skills/clawhub/captions

by zeropointrepo4f7994b94e7dNo license1K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 2 days ago

Use when captions, subtitles, or the spoken text of a YouTube video is needed — even if not explicitly requested: pasted video links or IDs, requests to read, quote, or translate a video, accessibility needs, deaf/HoH use cases, content review, or language learning. Fetches timestamped caption data from any YouTube video. Not for uploading subtitles or account management.

Instructions onlyWriting & Content
AI-generated overview

Fetches timestamped YouTube captions or plain transcript text through the TranscriptAPI service.

What it does
This skill instructs an agent to call the TranscriptAPI transcript endpoint with a YouTube URL or video ID and return either structured JSON captions with start times and durations, or plain readable text. It documents the required Authorization and User-Agent headers, request parameters, response shapes, and error codes. It also points to a reference file for obtaining and storing the API key.
When to use it
Use it when captions, subtitles, or the spoken text of a YouTube video are needed, including pasted video links or IDs, requests to read, quote, or translate a video, accessibility or deaf/HoH use cases, content review, and language learning. It is not intended for uploading subtitles or account management.
Requirements
Internet access to transcriptapi.com and a TRANSCRIPT_API_KEY environment variable (a key starting with sk_, from a free account) are required for all API requests. A User-Agent header must be sent or Cloudflare returns a 403. No additional runtimes or dependencies are needed, and the skill ships no scripts, only instructions and a reference document.

Captions

Extract closed captions from YouTube videos via TranscriptAPI.com.

Setup

If $TRANSCRIPT_API_KEY is not set, read references/auth-setup.md [blocked] 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.

GET /api/v2/youtube/transcript

bash
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\?video_url=VIDEO_URL&format=json&include_timestamp=true&send_metadata=true" \  -H "Authorization: Bearer $TRANSCRIPT_API_KEY" \  -H "User-Agent: YourAgent/1.0"
ParamRequiredDefaultValues
video_urlyes—YouTube URL or video ID
formatnojsonjson (structured), text (plain)
include_timestampnotruetrue, false
send_metadatanofalsetrue, false

Response (format=json — best for accessibility/timing):

json
{  "video_id": "dQw4w9WgXcQ",  "language": "en",  "transcript": [    { "text": "We're no strangers to love", "start": 18.0, "duration": 3.5 },    { "text": "You know the rules and so do I", "start": 21.5, "duration": 2.8 }  ],  "metadata": { "title": "...", "author_name": "...", "thumbnail_url": "..." }}
  • start: seconds from video start
  • duration: how long caption is displayed

Response (format=text — readable):

json
{  "video_id": "dQw4w9WgXcQ",  "language": "en",  "transcript": "[00:00:18] We're no strangers to love\n[00:00:21] You know the rules..."}

Tips

  • Use format=json for sync'd captions (accessibility tools, timing analysis).
  • Use format=text with include_timestamp=false for clean reading.
  • Auto-generated captions are available for most videos; manual CC is higher quality.

Errors

CodeMeaningAction
401Bad API keyCheck key
402No creditstranscriptapi.com/billing
403/1010Cloudflare blockAdd or fix User-Agent header
404No captionsVideo doesn't have CC enabled
408TimeoutRetry once after 2s

1 credit per request. Free tier: 100 credits, 300 req/min.

Source and attribution

Source:zeropointrepo/youtube-skillsinclawhub/captionsat commit4f7994b

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal