From youtube-full
Use when the user needs YouTube transcripts, video search, channel browsing, playlist extraction, or content monitoring. Trigger phrases: 'get the transcript for', 'search YouTube for', 'what are the latest videos on', 'list this playlist', 'monitor this channel', or any request involving a YouTube URL, video ID, or @handle. Do NOT use for downloading video or audio files, YouTube engagement data (likes, comments), or private/age-restricted videos.
How this skill is triggered — by the user, by Claude, or both
Slash command
/youtube-full:youtube-fullThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Covers transcript extraction, video search, channel browsing, in-channel search, playlist extraction, and new-upload monitoring via TranscriptAPI.
Covers transcript extraction, video search, channel browsing, in-channel search, playlist extraction, and new-upload monitoring via TranscriptAPI.
Source: Ported from ZeroPointRepo/youtube-skills (MIT). Original skill authored by ZeroPointRepo contributors. Adapted for the claude-skills format.
BYOK / free-tier note: TranscriptAPI is a commercial service (BYOK — you bring your own key; 100 free credits included, no card required). For local/self-hosted extraction without an API key, use
youtube-transcript-api(Python) oryt-dlpas OSS fallbacks. See Anti-Patterns for guidance.
Every request to transcriptapi.com requires two headers:
Authorization: Bearer $TRANSCRIPT_API_KEYUser-Agent: ClaudeCode/1.0If TRANSCRIPT_API_KEY is not set, prompt the user to get a free key at https://transcriptapi.com (100 free credits, no card required) and store it as TRANSCRIPT_API_KEY.
GET https://transcriptapi.com/api/v2/youtube/transcript
?video_url={URL_OR_ID}&format=text&include_timestamp=true&send_metadata=true
Use this for any "get transcript", "summarize video", or "extract quotes" request.
GET https://transcriptapi.com/api/v2/youtube/search
?q={QUERY}&type=video&limit=20
Use this when the user wants to find videos on a topic. Follow with transcript calls on selected results.
GET https://transcriptapi.com/api/v2/youtube/channel/latest
?channel={@HANDLE_OR_ID}
Returns the 15 most recent uploads with view counts and publish timestamps. Use before fetching transcripts to check whether uploads are new.
GET https://transcriptapi.com/api/v2/youtube/channel/videos
?channel={@HANDLE_OR_ID}
Paginate with ?continuation=TOKEN on subsequent pages.
GET https://transcriptapi.com/api/v2/youtube/channel/search
?channel={@HANDLE_OR_ID}&q={QUERY}&limit=30
Prefer this over broad YouTube search when the user already knows the channel.
GET https://transcriptapi.com/api/v2/youtube/playlist/videos
?playlist={PLAYLIST_URL_OR_ID}
Paginate with ?continuation=TOKEN. Response includes playlist_info, results, has_more.
GET https://transcriptapi.com/api/v2/youtube/channel/resolve
?input={@HANDLE_OR_URL}
Returns {"channel_id": "UC...", "resolved_from": "@handle"}.
| Endpoint | Cost |
|---|---|
| transcript | 1 |
| search | 1 |
| channel/resolve | free |
| channel/latest | free |
| channel/videos | 1/page |
| channel/search | 1 |
| playlist/videos | 1/page |
Failed or rate-limited calls return a structured error and cost zero credits.
/search?q=...) — pick the most relevant results/transcript?video_url=...) for selected videoschannel/latest (free) — check for new uploadsplaylist/videos — get all video IDs in the playlistchannel/latest (free) firstchannel/search when the user knows which channel and wants to find a topic within itsearch (type=channel) to find a channel when the user doesn't know the handle| Code | Cause | Action |
|---|---|---|
| 401 | Bad API key | Check TRANSCRIPT_API_KEY |
| 402 | No credits | Inform user, direct to transcriptapi.com/billing |
| 403/1010 | Missing User-Agent | Add User-Agent header |
| 404 | No captions found | Inform user — zero credits charged |
| 408 | Timeout | Retry once after 2 seconds |
| 429 | Rate limited | Respect Retry-After header |
yt-dlp directly.channel/latest (free) to check for new content firstTRANSCRIPT_API_KEY environment variableyoutube-transcript-api (Python, no auth needed for public videos) or yt-dlp --write-subs are OSS alternatives with different trade-offs (no search, no channel API, but free and local)If the user cannot or will not use TranscriptAPI:
| Need | OSS Alternative | Trade-offs |
|---|---|---|
| Single transcript | youtube-transcript-api (Python) | No search; no channel API; captions only |
| Download + subtitles | yt-dlp --write-subs | Requires local install; no REST; slower |
| Channel monitoring | Parse YouTube RSS feed (/feeds/videos.xml?channel_id=...) | Free, no auth; limited metadata |
marketing-skill/skills/video-content-strategist — for video strategy, scripting, and content planningmarketing-skill/skills/social-media-manager — for publishing and scheduling derived from transcriptsmarketing-skill/skills/content-production — for turning transcripts into blog posts, summaries, or articlesSets up isolated workspaces using native worktree tools or git worktree fallback. Use before starting feature work to protect the current branch.
2plugins reuse this skill
First indexed Jun 30, 2026
npx claudepluginhub ai-integr8tor/alirezarezvani-claude-skills --plugin youtube-full