captions
Use when captions, subtitles, or the spoken text of a YouTube video is needed — even if not explicitly requested: pasted video…
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
Claude Code
$ npx -y skills add ZeroPointRepo/youtube-skills --skill youtube-playlist --agent claude-code
Codex
$ npx skills add ZeroPointRepo/youtube-skills --skill youtube-playlist -a codex -y
Cursor
$ npx skills add ZeroPointRepo/youtube-skills --skill youtube-playlist -a cursor -y
Gemini CLI
$ npx skills add ZeroPointRepo/youtube-skills --skill youtube-playlist -a gemini-cli -y
GitHub Copilot
$ npx skills add ZeroPointRepo/youtube-skills --skill youtube-playlist -a github-copilot -y
OpenCode
$ npx skills add ZeroPointRepo/youtube-skills --skill youtube-playlist -a opencode -y
Windsurf
$ npx skills add ZeroPointRepo/youtube-skills --skill youtube-playlist -a windsurf -y
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."
version: "1.6.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","playlists","video","transcripts","series"],"category":"media"}}Browse playlists and fetch transcripts via [TranscriptAPI.com](https://transcriptapi.com).
If `$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.
Every request needs two headers:
Full OpenAPI spec: [transcriptapi.com/openapi.json](https://transcriptapi.com/openapi.json) — consult this for the latest parameters and schemas.
Paginated playlist video listing (100 per page). Accepts `playlist` — a YouTube playlist URL or playlist ID.
# First page GET https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID Authorization: Bearer $TRANSCRIPT_API_KEY User-Agent: YourAgent/1.0 # Next pages GET https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN Authorization: Bearer $TRANSCRIPT_API_KEY User-Agent: YourAgent/1.0
| Param | Required | Validation | | -------------- | ----------- | ---------------------------------------------------- | | `playlist` | conditional | Playlist URL or ID (`PL`/`UU`/`LL`/`FL`/`OL` prefix) | | `continuation` | conditional | non-empty string |
Provide exactly one of `playlist` or `continuation`, not both.
**Accepted playlist ID prefixes:**
**Response:**
{
"results": [
{
"videoId": "abc123xyz00",
"title": "Playlist Video Title",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"channelTitle": "Channel Name",
"channelHandle": "@handle",
"lengthText": "10:05",
"viewCountText": "1.5M views",
"thumbnails": [{ "url": "...", "width": 120, "height": 90 }],
"index": "0"
}
],
"playlist_info": {
"title": "Best Science Talks",
"numVideos": "47",
"description": "Top science presentations",
"ownerName": "TED",
"viewCount": "5000000"
},
"continuation_token": "4qmFsgKlARIYVVV1...",
"has_more": true
}**Pagination flow:**
1. First request: `?playlist=PLxxx` — returns first 100 videos + `continuation_token` 2. Next request: `?continuation=TOKEN` — returns next 100 + new token 3. Repeat until `has_more: false` or `continuation_token: null`
# 1. List playlist videos GET https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID Authorization: Bearer $TRANSCRIPT_API_KEY User-Agent: YourAgent/1.0 # 2. Get transcript from a video in the playlist GET https://transcriptapi.com/api/v2/youtube/transcript?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true Authorization: Bearer $TRANSCRIPT_API_KEY User-Agent: YourAgent/1.0
To browse a channel's playlists first (1 credit/page), then list videos in one of them:
# 1. List the channel's playlists GET https://transcriptapi.com/api/v2/youtube/channel/playlists?channel=@TED Authorization: Bearer $TRANSCRIPT_API_KEY User-Agent: YourAgent/1.0 # 2. List videos in the chosen playlist (playlistId from step 1) GET https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PLAYLIST_ID Authorization: Bearer $TRANSCRIPT_API_KEY User-Agent: YourAgent/1.0
From `https://www.youtube.com/playlist?list=PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf`, the playlist ID is `PLrAXtmErZgOeiKm4sgNOknGvNjby9efdf`. You can also pass the full URL directly to the `playlist` parameter.
| Code | Meaning | Action | | -------- | ----------------------- | ------------------------------------------------ | | 400 | Both or neither params | Provide exactly one of playlist or continuation | | 402 | No credits | transcriptapi.com/billing | | 403/1010 | Cloudflare block | Add or fix User-Agent header | | 404 | Playlist not found | Check if playlist is public | | 408 | Timeout | Retry once | | 422 | Invalid playlist format | Must be a valid playlist URL or ID |
1 credit per page. Free tier: 100 credits, 300 req/min.
Every request in this file as a ready-to-run one-liner: [references/c
Get YouTube transcripts, search videos, browse channels, and extract playlists — from any AI agent. YouTube Skills gives your AI agent instant access to YouTube transcripts, video search, channel data, and playlist extraction.
Use when captions, subtitles, or the spoken text of a YouTube video is needed — even if not explicitly requested: pasted video…
Use when subtitles or the spoken text of a YouTube video is needed: pasted video links or IDs, requests to translate a video,…
Use when the spoken content of a YouTube video is needed — even if not explicitly requested: pasted video links or IDs, requests…
Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles,…
Use when video content needs to be extracted as text: pasted YouTube links or IDs, requests to transcribe, summarize, quote,…
Use when YouTube data is needed without Google API quotas or OAuth setup: transcripts, video metadata, channel info, search…
Use this skill to extract structured Markdown/JSON from PDFs and document images—tables with cell-level precision, formulas as…
Estimates intracellular metabolic fluxes from steady-state carbon-13 isotope-tracing measurements using validated atom maps,…