youtube-playlist
Scannednpx machina-cli add skill ZeroPointRepo/youtube-skills/youtube-playlist --openclawYouTube Playlist
Browse playlists and fetch transcripts via TranscriptAPI.com.
Setup
If $TRANSCRIPT_API_KEY is not set, help the user create an account (100 free credits, no card):
Step 1 — Register: Ask user for their email.
node ./scripts/tapi-auth.js register --email USER_EMAIL
→ OTP sent to email. Ask user: "Check your email for a 6-digit verification code."
Step 2 — Verify: Once user provides the OTP:
node ./scripts/tapi-auth.js verify --token TOKEN_FROM_STEP_1 --otp CODE
API key saved to your shell profile and agent config. Ready to use.
Manual option: transcriptapi.com/signup → Dashboard → API Keys.
API Reference
Full OpenAPI spec: transcriptapi.com/openapi.json — consult this for the latest parameters and schemas.
GET /api/v2/youtube/playlist/videos — 1 credit/page
Paginated playlist video listing (100 per page). Accepts playlist — a YouTube playlist URL or playlist ID.
# First page
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# Next pages
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?continuation=TOKEN" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
| 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:
PL— user-created playlistsUU— channel uploads playlistLL— liked videosFL— favoritesOL— other system playlists
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:
- First request:
?playlist=PLxxx— returns first 100 videos +continuation_token - Next request:
?continuation=TOKEN— returns next 100 + new token - Repeat until
has_more: falseorcontinuation_token: null
Workflow: Playlist → Transcripts
# 1. List playlist videos
curl -s "https://transcriptapi.com/api/v2/youtube/playlist/videos?playlist=PL_PLAYLIST_ID" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
# 2. Get transcript from a video in the playlist
curl -s "https://transcriptapi.com/api/v2/youtube/transcript\
?video_url=VIDEO_ID&format=text&include_timestamp=true&send_metadata=true" \
-H "Authorization: Bearer $TRANSCRIPT_API_KEY"
Extract playlist ID from URL
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.
Errors
| Code | Meaning | Action |
|---|---|---|
| 400 | Both or neither params | Provide exactly one of playlist or continuation |
| 402 | No credits | transcriptapi.com/billing |
| 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.
Source
git clone https://github.com/ZeroPointRepo/youtube-skills/blob/main/skills/youtube-playlist/SKILL.mdView on GitHub Overview
This skill lets you list videos in a YouTube playlist and retrieve transcripts for each video via TranscriptAPI.com. It’s ideal for quickly understanding playlist content, indexing videos, and generating searchable transcripts. Operates with playlist URLs or IDs and supports paginated results.
How This Skill Works
Use GET /api/v2/youtube/playlist/videos with a playlist parameter (URL or ID) to fetch a page of videos (up to 100). Then fetch a video transcript via /api/v2/youtube/transcript by supplying video_url and optional formatting (text, timestamps, metadata). Use the continuation_token to paginate until has_more is false.
When to Use It
- When a user shares a YouTube playlist link and wants to see what’s inside.
- When the user asks 'what's in this playlist' or wants to list playlist videos.
- When you need to browse the playlist content page by page.
- When transcripts are needed for videos in the playlist for study or quoting.
- When building a searchable index or material from a playlist’s transcripts.
Quick Start
- Step 1: List playlist videos using the API with the playlist parameter set to the YouTube playlist URL or ID.
- Step 2: Pick a video and fetch its transcript via the transcript endpoint using video_url and format=text, include_timestamp=true, send_metadata=true.
- Step 3: If more results exist, use the provided continuation_token to fetch the next page until has_more is false.
Best Practices
- Ensure you provide either playlist or continuation_token, not both.
- Remember to account for 1 credit per page of playlist results.
- Use continuation tokens to paginate through large playlists (up to 100 videos per page).
- Specify video_url when requesting transcripts and consider include_timestamp and send_metadata options.
- Handle has_more or continuation_token being null to know when you’ve reached the end.
Example Use Cases
- List the first page of a TED Talk playlist to review video titles and durations.
- Select a video from a playlist and fetch its transcript to quote exact wording.
- Iterate through all videos in a long playlist to build a full transcript index.
- Combine playlist listing with transcripts to create study guides or course materials.
- Extract transcripts with timestamps for creating searchable content dashboards.