{"id":"997ee05e-e19f-4814-9157-e5d6c7a2848e","shortId":"swdwwx","kind":"skill","title":"youtube-api","tagline":"Use when YouTube data is needed without Google API quotas or OAuth setup: transcripts, video metadata, channel info, search results, playlists. Triggers on pasted YouTube links, creator names, @handles, topic research, video summaries, channel browsing, or any request where YouTu","description":"# YouTube API\n\nYouTube data access via [TranscriptAPI.com](https://transcriptapi.com) — no Google API quota needed.\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## API Reference\n\nFull OpenAPI spec: [transcriptapi.com/openapi.json](https://transcriptapi.com/openapi.json) — consult this for the latest parameters and schemas.\n\n## Endpoint Reference\n\nAll endpoints: `https://transcriptapi.com/api/v2/youtube/...`\n\nChannel endpoints accept `channel` — an `@handle`, channel URL, or `UC...` ID. Playlist endpoints accept `playlist` — a playlist URL or ID.\n\n| Endpoint                            | Method | Cost     |\n| ----------------------------------- | ------ | -------- |\n| `/transcript?video_url=ID`          | GET    | 1        |\n| `/search?q=QUERY&type=video`        | GET    | 1        |\n| `/channel/resolve?input=@handle`    | GET    | **free** |\n| `/channel/latest?channel=@handle`   | GET    | **free** |\n| `/channel/videos?channel=@handle`   | GET    | 1/page   |\n| `/channel/search?channel=@handle&q=Q` | GET  | 1        |\n| `/playlist/videos?playlist=PL_ID`   | GET    | 1/page   |\n\n## Quick Examples\n\n**Search videos:**\n\n```bash\ncurl -s \"https://transcriptapi.com/api/v2/youtube/search\\\n?q=python+tutorial&type=video&limit=10\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\" \\\n  -H \"User-Agent: YourAgent/1.0\"\n```\n\n**Get transcript:**\n\n```bash\ncurl -s \"https://transcriptapi.com/api/v2/youtube/transcript\\\n?video_url=dQw4w9WgXcQ&format=text&include_timestamp=true&send_metadata=true\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\" \\\n  -H \"User-Agent: YourAgent/1.0\"\n```\n\n**Resolve channel handle (free):**\n\n```bash\ncurl -s \"https://transcriptapi.com/api/v2/youtube/channel/resolve?input=@TED\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\" \\\n  -H \"User-Agent: YourAgent/1.0\"\n```\n\n**Latest videos (free):**\n\n```bash\ncurl -s \"https://transcriptapi.com/api/v2/youtube/channel/latest?channel=@TED\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\" \\\n  -H \"User-Agent: YourAgent/1.0\"\n```\n\n**Browse channel uploads (paginated):**\n\n```bash\ncurl -s \"https://transcriptapi.com/api/v2/youtube/channel/videos?channel=@NASA\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\" \\\n  -H \"User-Agent: YourAgent/1.0\"\n# Use continuation token from response for next pages\n```\n\n**Browse playlist (paginated):**\n\n```bash\ncurl -s \"https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\" \\\n  -H \"User-Agent: YourAgent/1.0\"\n```\n\n## Parameter Validation\n\n| Field          | Rule                                                    |\n| -------------- | ------------------------------------------------------- |\n| `channel`      | `@handle`, channel URL, or `UC...` ID                   |\n| `playlist`     | Playlist URL or ID (`PL`/`UU`/`LL`/`FL`/`OL` prefix)   |\n| `q` (search)   | 1-200 chars                                             |\n| `limit`        | 1-50                                                    |\n| `continuation` | non-empty string                                        |\n\n## Why Not Google's API?\n\n|             | Google YouTube Data API         | TranscriptAPI              |\n| ----------- | ------------------------------- | -------------------------- |\n| Quota       | 10,000 units/day (100 searches) | Credit-based, no daily cap |\n| Setup       | OAuth + API key + project       | Single API key             |\n| Transcripts | Not available                   | Core feature               |\n| Pricing     | $0.0015/unit overage            | $5/1000 credits            |\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      | Not found         | Resource doesn't exist                         |\n| 408      | Timeout/retryable | Retry once after 2s                            |\n| 422      | Validation error  | Check param format                             |\n| 429      | Rate limited      | Wait, respect Retry-After                      |\n\nFree tier: 100 credits, 300 req/min. Starter ($5/mo): 1,000 credits.","tags":["youtube","api","skills","zeropointrepo","agent-skills","clawdbot","hermes-agent","openclaw","youtube-search","youtube-transcript"],"capabilities":["skill","source-zeropointrepo","skill-youtube-api","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/youtube-api","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 (4,888 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.773Z","embedding":null,"createdAt":"2026-04-18T22:11:52.925Z","updatedAt":"2026-05-02T12:54:56.773Z","lastSeenAt":"2026-05-02T12:54:56.773Z","tsv":"'-200':395 '-50':399 '/api/v2/youtube/...':157 '/api/v2/youtube/channel/latest?channel=@ted':309 '/api/v2/youtube/channel/resolve?input=@ted':289 '/api/v2/youtube/channel/videos?channel=@nasa':330 '/api/v2/youtube/playlist/videos?playlist=pl_playlist_id':358 '/api/v2/youtube/search':231 '/api/v2/youtube/transcript':257 '/billing':461 '/channel/latest':199 '/channel/resolve':194 '/channel/search':209 '/channel/videos':204 '/openapi.json](https://transcriptapi.com/openapi.json)':142 '/playlist/videos':216 '/search':187 '/transcript':181 '/unit':442 '0.0015':441 '000':417,508 '1':186,193,215,394,398,507 '1/page':208,221 '10':238,416 '100':419,501 '1010':130 '2s':484 '300':503 '401':450 '402':456 '403':127 '403/1010':462 '404':472 '408':479 '422':485 '429':491 '5/1000':444 '5/mo':506 'accept':160,171 'access':48 'action':449 'add':465 'agent':93,95,108,248,278,299,319,340,368,470 'alon':110 'api':3,12,45,54,60,89,135,243,273,294,314,335,363,409,413,429,433,452 'author':86,240,270,291,311,332,360 'avail':437 'bad':451 'bare':121 'base':423 'bash':226,252,284,304,325,353 'bearer':87,241,271,292,312,333,361 'block':132,464 'brows':38,321,350 'cap':426 'channel':20,37,158,161,164,200,205,210,281,322,374,376 'char':396 'check':454,488 'claudecode/1.0':104 'cloudflar':123,463 'code':129,447 'consult':143 'continu':343,400 'core':438 'cost':180 'creator':30 'credit':422,445,458,502,509 'credit-bas':421 'curl':227,253,285,305,326,354 'daili':425 'data':7,47,412 'default':122 'doesn':476 'dqw4w9wgxcq':260 'e.g':102 'empti':403 'endpoint':151,154,159,170,178 'error':128,446,487 'everi':81 'exampl':223 'exist':478 'featur':439 'field':372 'fine':112 'fix':467 'fl':389 'follow':69 'format':261,490 'found':474 'free':198,203,283,303,499 'full':137 'get':74,185,192,197,202,207,214,220,250 'googl':11,53,407,410 'h':239,245,269,275,290,296,310,316,331,337,359,365 'handl':32,163,196,201,206,211,282,375 'header':80,85,117,471 'hermesagent/0.11.0':103 'id':168,177,184,219,380,385 'includ':263 'info':21 'input':195 'instruct':71 'key':61,78,90,244,274,295,315,336,364,430,434,453,455 'known':101 'latest':147,301 'limit':237,397,493 'link':29 'll':388 'mean':448 'metadata':19,267 'method':179 'name':31,97,109 'need':9,56,83 'next':348 'non':402 'non-empti':401 'oauth':15,428 'ol':390 'omit':115 'openapi':138 'option':107 'overag':443 'page':349 'pagin':324,352 'param':489 'paramet':148,370 'past':27 'pl':218,386 'playlist':24,169,172,174,217,351,381,382 'prefix':391 'price':440 'project':431 'python':233 'q':188,212,213,232,392 'queri':189 'quick':222 'quota':13,55,415 'rate':492 'read':65 'refer':136,152 'references/auth-setup.md':66,67 'req/min':504 'request':41,82,134 'requir':79 'research':34 'resolv':280 'resourc':475 'respect':495 'respons':346 'result':23 'retri':481,497 'retry-aft':496 'return':125 'rule':373 'schema':150 'search':22,224,393,420 'send':119,266 'set':64 'setup':16,57,427 'singl':432 'skill' 'skill-youtube-api' 'source-zeropointrepo' 'spec':139 'starter':505 'store':76 'string':404 'summari':36 'text':262 'tier':500 'timeout/retryable':480 'timestamp':264 'token':344 'topic':33 'topic-agent-skills' 'topic-clawdbot' 'topic-hermes-agent' 'topic-openclaw' 'topic-youtube-search' 'topic-youtube-transcript' 'transcript':17,59,88,242,251,272,293,313,334,362,435 'transcriptapi':414 'transcriptapi.com':50,51,141,156,230,256,288,308,329,357,460 'transcriptapi.com/api/v2/youtube/...':155 'transcriptapi.com/api/v2/youtube/channel/latest?channel=@ted':307 'transcriptapi.com/api/v2/youtube/channel/resolve?input=@ted':287 'transcriptapi.com/api/v2/youtube/channel/videos?channel=@nasa':328 'transcriptapi.com/api/v2/youtube/playlist/videos?playlist=pl_playlist_id':356 'transcriptapi.com/api/v2/youtube/search':229 'transcriptapi.com/api/v2/youtube/transcript':255 'transcriptapi.com/billing':459 'transcriptapi.com/openapi.json](https://transcriptapi.com/openapi.json)':140 'trigger':25 'true':265,268 'tutori':234 'two':84 'type':190,235 'uc':167,379 'units/day':418 'upload':323 'url':165,175,183,259,377,383 'use':4,342 'user':92,247,277,298,318,339,367,469 'user-ag':91,246,276,297,317,338,366,468 'uu':387 'valid':371,486 'version':99,105 'via':49 'video':18,35,182,191,225,236,258,302 'wait':494 'without':10 'youragent/1.0':249,279,300,320,341,369 'youtu':43 'youtub':2,6,28,44,46,411 'youtube-api':1","prices":[{"id":"8901dd1f-020f-4478-a193-513dd95e92eb","listingId":"997ee05e-e19f-4814-9157-e5d6c7a2848e","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:52.925Z"}],"sources":[{"listingId":"997ee05e-e19f-4814-9157-e5d6c7a2848e","source":"github","sourceId":"ZeroPointRepo/youtube-skills/youtube-api","sourceUrl":"https://github.com/ZeroPointRepo/youtube-skills/tree/main/skills/youtube-api","isPrimary":false,"firstSeenAt":"2026-04-18T22:11:52.925Z","lastSeenAt":"2026-05-02T12:54:56.773Z"}],"details":{"listingId":"997ee05e-e19f-4814-9157-e5d6c7a2848e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ZeroPointRepo","slug":"youtube-api","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":"422f951d94a21f0084d89bfe8ded71c9819ae5f7","skill_md_path":"skills/youtube-api/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ZeroPointRepo/youtube-skills/tree/main/skills/youtube-api"},"layout":"multi","source":"github","category":"youtube-skills","frontmatter":{"name":"youtube-api","description":"Use when YouTube data is needed without Google API quotas or OAuth setup: transcripts, video metadata, channel info, search results, playlists. Triggers on pasted YouTube links, creator names, @handles, topic research, video summaries, channel browsing, or any request where YouTube content would help — even if not mentioned explicitly. Not for uploads, account management, or written-source-only research.","compatibility":"Requires internet access to reach transcriptapi.com. No additional runtimes or dependencies needed."},"skills_sh_url":"https://skills.sh/ZeroPointRepo/youtube-skills/youtube-api"},"updatedAt":"2026-05-02T12:54:56.773Z"}}