{"id":"5daa58c0-2263-42cf-8496-2238cd2d90da","shortId":"zWhMmX","kind":"skill","title":"youtube-playlist","tagline":"Use when a YouTube playlist is involved: pasted playlist links or IDs, requests to list playlist videos, browse playlist contents, or work through a playlist for transcripts or research. Also use when the user wants all videos from a series, course, or collection. Not for creatin","description":"# YouTube Playlist\n\nBrowse playlists and fetch transcripts 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## 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## GET /api/v2/youtube/playlist/videos — 1 credit/page\n\nPaginated playlist video listing (100 per page). Accepts `playlist` — a YouTube playlist URL or playlist ID.\n\n```bash\n# First page\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# Next pages\ncurl -s \"https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN\" \\\n  -H \"Authorization: Bearer $TRANSCRIPT_API_KEY\" \\\n  -H \"User-Agent: YourAgent/1.0\"\n```\n\n| Param          | Required    | Validation                                           |\n| -------------- | ----------- | ---------------------------------------------------- |\n| `playlist`     | conditional | Playlist URL or ID (`PL`/`UU`/`LL`/`FL`/`OL` prefix) |\n| `continuation` | conditional | non-empty string                                     |\n\nProvide exactly one of `playlist` or `continuation`, not both.\n\n**Accepted playlist ID prefixes:**\n\n- `PL` — user-created playlists\n- `UU` — channel uploads playlist\n- `LL` — liked videos\n- `FL` — favorites\n- `OL` — other system playlists\n\n**Response:**\n\n```json\n{\n  \"results\": [\n    {\n      \"videoId\": \"abc123xyz00\",\n      \"title\": \"Playlist Video Title\",\n      \"channelId\": \"UCuAXFkgsw1L7xaCfnd5JJOw\",\n      \"channelTitle\": \"Channel Name\",\n      \"channelHandle\": \"@handle\",\n      \"lengthText\": \"10:05\",\n      \"viewCountText\": \"1.5M views\",\n      \"thumbnails\": [{ \"url\": \"...\", \"width\": 120, \"height\": 90 }],\n      \"index\": \"0\"\n    }\n  ],\n  \"playlist_info\": {\n    \"title\": \"Best Science Talks\",\n    \"numVideos\": \"47\",\n    \"description\": \"Top science presentations\",\n    \"ownerName\": \"TED\",\n    \"viewCount\": \"5000000\"\n  },\n  \"continuation_token\": \"4qmFsgKlARIYVVV1...\",\n  \"has_more\": true\n}\n```\n\n**Pagination flow:**\n\n1. First request: `?playlist=PLxxx` — returns first 100 videos + `continuation_token`\n2. Next request: `?continuation=TOKEN` — returns next 100 + new token\n3. Repeat until `has_more: false` or `continuation_token: null`\n\n## Workflow: Playlist → Transcripts\n\n```bash\n# 1. List playlist videos\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# 2. Get transcript from a video in the playlist\ncurl -s \"https://transcriptapi.com/api/v2/youtube/transcript\\\n?video_url=VIDEO_ID&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## Extract playlist ID from URL\n\nFrom `https://www.youtube.com/playlist?list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf`, the playlist ID is `PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf`. You can also pass the full URL directly to the `playlist` parameter.\n\n## Errors\n\n| Code     | Meaning                 | Action                                           |\n| -------- | ----------------------- | ------------------------------------------------ |\n| 400      | Both or neither params  | Provide exactly one of playlist or continuation  |\n| 402      | No credits              | transcriptapi.com/billing                        |\n| 403/1010 | Cloudflare block        | Add or fix User-Agent header                     |\n| 404      | Playlist not found      | Check if playlist is public                      |\n| 408      | Timeout                 | Retry once                                       |\n| 422      | Invalid playlist format | Must be a valid playlist URL or ID               |\n\n1 credit per page. Free tier: 100 credits, 300 req/min.","tags":["youtube","playlist","skills","zeropointrepo","agent-skills","clawdbot","hermes-agent","openclaw","youtube-search","youtube-transcript"],"capabilities":["skill","source-zeropointrepo","skill-youtube-playlist","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-playlist","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,421 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:57.082Z","embedding":null,"createdAt":"2026-04-18T22:11:55.956Z","updatedAt":"2026-05-02T12:54:57.082Z","lastSeenAt":"2026-05-02T12:54:57.082Z","tsv":"'/api/v2/youtube/playlist/videos':155 '/api/v2/youtube/playlist/videos?continuation=token':199 '/api/v2/youtube/playlist/videos?playlist=pl_playlist_id':181,361 '/api/v2/youtube/transcript':386 '/billing':457 '/openapi.json](https://transcriptapi.com/openapi.json)':145 '/playlist?list=plraxtmerzgoeikm4sgnokngvnjby9efdf':418 '0':293 '05':281 '1':156,318,353,493 '1.5':283 '10':280 '100':162,325,336,499 '1010':133 '120':289 '2':329,373 '3':339 '300':501 '400':440 '402':452 '403':130 '403/1010':458 '404':468 '408':477 '422':481 '47':301 '4qmfsgklariyvvv1':312 '5000000':309 '90':291 'abc123xyz00':267 'accept':165,241 'action':439 'add':461 'agent':96,98,111,191,209,371,408,466 'alon':113 'also':33,426 'api':63,92,138,186,204,366,403 'author':89,183,201,363,400 'bare':124 'bash':174,352 'bearer':90,184,202,364,401 'best':297 'block':135,460 'brows':21,52 'channel':251,275 'channelhandl':277 'channelid':272 'channeltitl':274 'check':472 'claudecode/1.0':107 'cloudflar':126,459 'code':132,437 'collect':46 'condit':215,227 'consult':146 'content':23 'continu':226,238,310,327,332,346,451 'cours':44 'creat':248 'creatin':49 'credit':454,494,500 'credit/page':157 'curl':177,195,357,382 'default':125 'descript':302 'direct':431 'e.g':105 'empti':230 'error':131,436 'everi':84 'exact':233,446 'extract':410 'fals':344 'favorit':258 'fetch':55 'fine':115 'first':175,319,324 'fix':463 'fl':223,257 'flow':317 'follow':72 'format':391,484 'found':471 'free':497 'full':140,429 'get':77,154,374 'h':182,188,200,206,362,368,399,405 'handl':278 'header':83,88,120,467 'height':290 'hermesagent/0.11.0':106 'id':15,173,219,243,390,412,421,492 'includ':393 'index':292 'info':295 'instruct':74 'invalid':482 'involv':10 'json':264 'key':64,81,93,187,205,367,404 'known':104 'latest':150 'lengthtext':279 'like':255 'link':13 'list':18,161,354 'll':222,254 'm':284 'mean':438 'metadata':397 'must':485 'name':100,112,276 'need':86 'neither':443 'new':337 'next':193,330,335 'non':229 'non-empti':228 'null':348 'numvideo':300 'ol':224,259 'omit':118 'one':234,447 'openapi':141 'option':110 'ownernam':306 'page':164,176,194,496 'pagin':158,316 'param':211,444 'paramet':151,435 'pass':427 'past':11 'per':163,495 'pl':220,245 'playlist':3,8,12,19,22,28,51,53,159,166,169,172,214,216,236,242,249,253,262,269,294,321,350,355,381,411,420,434,449,469,474,483,489 'plraxtmerzgoeikm4sgnokngvnjby9efdf':423 'plxxx':322 'prefix':225,244 'present':305 'provid':232,445 'public':476 'read':68 'refer':139 'references/auth-setup.md':69,70 'repeat':340 'req/min':502 'request':16,85,137,320,331 'requir':82,212 'research':32 'respons':263 'result':265 'retri':479 'return':128,323,334 'schema':153 'scienc':298,304 'send':122,396 'seri':43 'set':67 'setup':60 'skill' 'skill-youtube-playlist' 'source-zeropointrepo' 'spec':142 'store':79 'string':231 'system':261 'talk':299 'ted':307 'text':392 'thumbnail':286 'tier':498 'timeout':478 'timestamp':394 'titl':268,271,296 'token':311,328,333,338,347 'top':303 'topic-agent-skills' 'topic-clawdbot' 'topic-hermes-agent' 'topic-openclaw' 'topic-youtube-search' 'topic-youtube-transcript' 'transcript':30,56,62,91,185,203,351,365,375,402 'transcriptapi.com':58,59,144,180,198,360,385,456 'transcriptapi.com/api/v2/youtube/playlist/videos?continuation=token':197 'transcriptapi.com/api/v2/youtube/playlist/videos?playlist=pl_playlist_id':179,359 'transcriptapi.com/api/v2/youtube/transcript':384 'transcriptapi.com/billing':455 'transcriptapi.com/openapi.json](https://transcriptapi.com/openapi.json)':143 'true':315,395,398 'two':87 'ucuaxfkgsw1l7xacfnd5jjow':273 'upload':252 'url':170,217,287,388,414,430,490 'use':4,34 'user':37,95,190,208,247,370,407,465 'user-ag':94,189,207,369,406,464 'user-cr':246 'uu':221,250 'valid':213,488 'version':102,108 'via':57 'video':20,40,160,256,270,326,356,378,387,389 'videoid':266 'view':285 'viewcount':308 'viewcounttext':282 'want':38 'width':288 'work':25 'workflow':349 'www.youtube.com':417 'www.youtube.com/playlist?list=plraxtmerzgoeikm4sgnokngvnjby9efdf':416 'youragent/1.0':192,210,372,409 'youtub':2,7,50,168 'youtube-playlist':1","prices":[{"id":"21eed060-758a-4d63-b9fb-4ebd056f17c1","listingId":"5daa58c0-2263-42cf-8496-2238cd2d90da","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:55.956Z"}],"sources":[{"listingId":"5daa58c0-2263-42cf-8496-2238cd2d90da","source":"github","sourceId":"ZeroPointRepo/youtube-skills/youtube-playlist","sourceUrl":"https://github.com/ZeroPointRepo/youtube-skills/tree/main/skills/youtube-playlist","isPrimary":false,"firstSeenAt":"2026-04-18T22:11:55.956Z","lastSeenAt":"2026-05-02T12:54:57.082Z"}],"details":{"listingId":"5daa58c0-2263-42cf-8496-2238cd2d90da","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"ZeroPointRepo","slug":"youtube-playlist","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":"4e799917b049f2beb233439a44c8b1daa9ae2cd8","skill_md_path":"skills/youtube-playlist/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/ZeroPointRepo/youtube-skills/tree/main/skills/youtube-playlist"},"layout":"multi","source":"github","category":"youtube-skills","frontmatter":{"name":"youtube-playlist","description":"Use when a YouTube playlist is involved: pasted playlist links or IDs, requests to list playlist videos, browse playlist contents, or work through a playlist for transcripts or research. Also use when the user wants all videos from a series, course, or collection. Not for creating playlists 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/youtube-playlist"},"updatedAt":"2026-05-02T12:54:57.082Z"}}