{"id":"ce72d7a8-3fe6-4ce1-8fb0-5576ad09d225","shortId":"4jLKqH","kind":"skill","title":"captions","tagline":"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 times","description":"# Captions\n\nExtract closed captions from YouTube videos via [TranscriptAPI.com](https://transcriptapi.com).\n\n## Setup\n\nIf `$TRANSCRIPT_API_KEY` is not set, read [references/auth-setup.md](references/auth-setup.md) and follow the instructions there to get and store the key.\n\n## Required Headers\n\nEvery request needs two headers:\n\n- **Authorization:** `Bearer $TRANSCRIPT_API_KEY`\n- **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.\n\n## GET /api/v2/youtube/transcript\n\n```bash\ncurl -s \"https://transcriptapi.com/api/v2/youtube/transcript\\\n?video_url=VIDEO_URL&format=json&include_timestamp=true&send_metadata=true\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\" \\\n  -H \"User-Agent: YourAgent/1.0\"\n```\n\n| Param               | Required | Default | Values                              |\n| ------------------- | -------- | ------- | ----------------------------------- |\n| `video_url`         | yes      | —       | YouTube URL or video ID             |\n| `format`            | no       | `json`  | `json` (structured), `text` (plain) |\n| `include_timestamp` | no       | `true`  | `true`, `false`                     |\n| `send_metadata`     | no       | `false` | `true`, `false`                     |\n\n**Response** (`format=json` — best for accessibility/timing):\n\n```json\n{\n  \"video_id\": \"dQw4w9WgXcQ\",\n  \"language\": \"en\",\n  \"transcript\": [\n    { \"text\": \"We're no strangers to love\", \"start\": 18.0, \"duration\": 3.5 },\n    { \"text\": \"You know the rules and so do I\", \"start\": 21.5, \"duration\": 2.8 }\n  ],\n  \"metadata\": { \"title\": \"...\", \"author_name\": \"...\", \"thumbnail_url\": \"...\" }\n}\n```\n\n- `start`: seconds from video start\n- `duration`: how long caption is displayed\n\n**Response** (`format=text` — readable):\n\n```json\n{\n  \"video_id\": \"dQw4w9WgXcQ\",\n  \"language\": \"en\",\n  \"transcript\": \"[00:00:18] We're no strangers to love\\n[00:00:21] You know the rules...\"\n}\n```\n\n## Tips\n\n- Use `format=json` for sync'd captions (accessibility tools, timing analysis).\n- Use `format=text` with `include_timestamp=false` for clean reading.\n- Auto-generated captions are available for most videos; manual CC is higher quality.\n\n## Errors\n\n| Code     | Meaning          | Action                                         |\n| -------- | ---------------- | ---------------------------------------------- |\n| 401      | Bad API key      | Check key                                      |\n| 402      | No credits       | transcriptapi.com/billing                      |\n| 403/1010 | Cloudflare block | Add or fix User-Agent header                   |\n| 404      | No captions      | Video doesn't have CC enabled                  |\n| 408      | Timeout          | Retry once after 2s                            |\n\n1 credit per request. Free tier: 100 credits, 300 req/min.","tags":["captions","youtube","skills","zeropointrepo","agent-skills","clawdbot","hermes-agent","openclaw","youtube-search","youtube-transcript"],"capabilities":["skill","source-zeropointrepo","skill-captions","topic-agent-skills","topic-clawdbot","topic-hermes-agent","topic-openclaw","topic-youtube-search","topic-youtube-transcript"],"categories":["youtube-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/ZeroPointRepo/youtube-skills/captions","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add ZeroPointRepo/youtube-skills","source_repo":"https://github.com/ZeroPointRepo/youtube-skills","install_from":"skills.sh"}},"qualityScore":"0.511","qualityRationale":"deterministic score 0.51 from registry signals: · indexed on github topic:agent-skills · 123 github stars · SKILL.md body (2,975 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T12:54:56.381Z","embedding":null,"createdAt":"2026-04-18T22:11:49.024Z","updatedAt":"2026-05-02T12:54:56.381Z","lastSeenAt":"2026-05-02T12:54:56.381Z","tsv":"'/api/v2/youtube/transcript':135,141 '/billing':329 '00':261,262,271,272 '1':355 '100':361 '1010':129 '18':263 '18.0':217 '2.8':232 '21':273 '21.5':230 '2s':354 '3.5':219 '300':363 '401':318 '402':324 '403':126 '403/1010':330 '404':340 '408':349 'access':34,286 'accessibility/timing':201 'action':317 'add':333 'agent':92,94,107,163,338 'alon':109 'analysi':289 'api':59,88,158,320 'author':85,155,235 'auto':301 'auto-gener':300 'avail':305 'bad':319 'bare':120 'bash':136 'bearer':86,156 'best':199 'block':131,332 'caption':1,4,46,49,247,285,303,342 'case':38 'cc':310,347 'check':322 'claudecode/1.0':103 'clean':298 'close':48 'cloudflar':122,331 'code':128,315 'content':39 'credit':326,356,362 'curl':137 'd':284 'deaf/hoh':36 'default':121,167 'display':249 'doesn':344 'dqw4w9wgxcq':205,257 'durat':218,231,244 'e.g':101 'en':207,259 'enabl':348 'error':127,314 'even':16 'everi':80 'explicit':19 'extract':47 'fals':189,193,195,296 'fetch':44 'fine':111 'fix':335 'follow':68 'format':146,177,197,251,280,291 'free':359 'generat':302 'get':73,134 'h':154,160 'header':79,84,116,339 'hermesagent/0.11.0':102 'higher':312 'id':25,176,204,256 'includ':148,184,294 'instruct':70 'json':147,179,180,198,202,254,281 'key':60,77,89,159,321,323 'know':222,275 'known':100 'languag':42,206,258 'learn':43 'link':23 'long':246 'love':215,269 'manual':309 'mean':316 'metadata':152,191,233 'n':270 'name':96,108,236 'need':15,35,82 'omit':114 'option':106 'param':165 'past':21 'per':357 'plain':183 'qualiti':313 'quot':29 're':211,265 'read':28,64,299 'readabl':253 'references/auth-setup.md':65,66 'req/min':364 'request':20,26,81,133,358 'requir':78,166 'respons':196,250 'retri':351 'return':124 'review':40 'rule':224,277 'second':240 'send':118,151,190 'set':63 'setup':56 'skill' 'skill-captions' 'source-zeropointrepo' 'spoken':8 'start':216,229,239,243 'store':75 'stranger':213,267 'structur':181 'subtitl':5 'sync':283 'text':9,182,209,220,252,292 'thumbnail':237 'tier':360 'time':45,288 'timeout':350 'timestamp':149,185,295 'tip':278 'titl':234 'tool':287 'topic-agent-skills' 'topic-clawdbot' 'topic-hermes-agent' 'topic-openclaw' 'topic-youtube-search' 'topic-youtube-transcript' 'transcript':58,87,157,208,260 'transcriptapi.com':54,55,140,328 'transcriptapi.com/api/v2/youtube/transcript':139 'transcriptapi.com/billing':327 'translat':31 'true':150,153,187,188,194 'two':83 'url':143,145,170,173,238 'use':2,37,279,290 'user':91,162,337 'user-ag':90,161,336 'valu':168 'version':98,104 'via':53 'video':13,22,33,52,142,144,169,175,203,242,255,308,343 'yes':171 'youragent/1.0':164 'youtub':12,51,172","prices":[{"id":"c7aeb2b5-6da6-459b-a805-e776233339e5","listingId":"ce72d7a8-3fe6-4ce1-8fb0-5576ad09d225","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"ZeroPointRepo","category":"youtube-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:11:49.024Z"}],"sources":[{"listingId":"ce72d7a8-3fe6-4ce1-8fb0-5576ad09d225","source":"github","sourceId":"ZeroPointRepo/youtube-skills/captions","sourceUrl":"https://github.com/ZeroPointRepo/youtube-skills/tree/main/skills/captions","isPrimary":false,"firstSeenAt":"2026-04-18T22:11:49.024Z","lastSeenAt":"2026-05-02T12:54:56.381Z"}],"details":{"listingId":"ce72d7a8-3fe6-4ce1-8fb0-5576ad09d225","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ZeroPointRepo","slug":"captions","github":{"repo":"ZeroPointRepo/youtube-skills","stars":123,"topics":["agent-skills","clawdbot","hermes-agent","openclaw","youtube-search","youtube-transcript"],"license":"mit","html_url":"https://github.com/ZeroPointRepo/youtube-skills","pushed_at":"2026-04-29T18:46:05Z","description":"YouTube Transcript API skills for AI agents. Get transcripts, search videos, browse channels. Works with OpenClaw, Hermes-Agent, Claude Code, Cursor, Windsurf.","skill_md_sha":"d0df0a6330bba19069a7da8154e4f876fb99f50c","skill_md_path":"skills/captions/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ZeroPointRepo/youtube-skills/tree/main/skills/captions"},"layout":"multi","source":"github","category":"youtube-skills","frontmatter":{"name":"captions","description":"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.","compatibility":"Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed."},"skills_sh_url":"https://skills.sh/ZeroPointRepo/youtube-skills/captions"},"updatedAt":"2026-05-02T12:54:56.381Z"}}