From youtube-transcript
Use when the user wants the transcript, captions, subtitles, or an AI summary of a YouTube video, channel, or playlist — fetches text, translates it, and summarizes it via the Transcript API.
How this skill is triggered — by the user, by Claude, or both
Slash command
/youtube-transcript:youtube-transcriptThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill lets you fetch transcripts, translations, and AI summaries for YouTube
This skill lets you fetch transcripts, translations, and AI summaries for YouTube videos, channels, and playlists through the Transcript API.
This API uses a personal API key.
https://<dashboard-url>/api-keys).Authorization: Bearer yt_live_....The base URL is https://yt-transcripts-api-1nwp.onrender.com.
| The user wants… | Use |
|---|---|
| Transcript/captions of one video | POST /v1/transcript |
| A summary (TL;DR + key points) of one video | POST /v1/summarize |
| Transcript translated to another language | POST /v1/transcript with translate_to |
| Transcripts for a whole playlist / channel / list of videos | POST /v1/transcripts/bulk |
| To find videos/channels | GET /v1/search |
| Recent videos from a channel | GET /v1/channel/videos |
Full parameter and credit details: see references/api.md.
Transcript and summarize calls are asynchronous. A successful create returns
HTTP 202 with { "id": "..." } — this is success, not an error. Then:
GET /v1/transcript/:id.status is queued or processing, wait 10–20 seconds before polling
again (e.g. sleep 15). Do not poll more often than once every 10 seconds.status is completed (use result) or failed (report error).# create
curl -s -X POST https://yt-transcripts-api-1nwp.onrender.com/v1/transcript \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"url":"https://www.youtube.com/watch?v=VIDEO_ID"}'
# -> {"id":"abc123"} (HTTP 202)
# poll until completed
curl -s https://yt-transcripts-api-1nwp.onrender.com/v1/transcript/abc123 \
-H "Authorization: Bearer $KEY"
# -> {"id":"abc123","status":"completed","result":{...transcript...}}
curl -s -X POST https://yt-transcripts-api-1nwp.onrender.com/v1/summarize \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"url":"https://youtu.be/VIDEO_ID"}'
# poll GET /v1/transcript/:id -> result.summary = {tldr, key_points, model, generated_at}
curl -s -X POST https://yt-transcripts-api-1nwp.onrender.com/v1/transcripts/bulk \
-H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"playlist":"https://www.youtube.com/playlist?list=PLAYLIST_ID"}'
# -> {"id":"batch_xyz"} ; poll GET /v1/transcripts/batches/batch_xyz
401 — the key is missing, invalid, or revoked. Ask the user for a valid key.402 — the account is out of credits or needs a plan upgrade. Tell the user to
top up or upgrade; do not retry automatically.429 — rate limited. Wait until the time in the X-RateLimit-Reset header,
then retry.If the user prefers a native MCP integration instead of REST calls, point them to the Transcript MCP server (it uses OAuth, not an API key). See the main project's MCP documentation. This skill's quickstart uses the REST + API-key path above.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub dorik/youtube-transcript-skill --plugin youtube-transcript