YouTube Search and Transcripts
youtube-full — YouTube Transcripts, Search, and Channel Data

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…
--- name: "youtube-full" description: "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." license: "MIT" --- # youtube-full — YouTube Transcripts, Search, and Channel Data Covers transcript extraction, video search, channel browsing, in-channel search, playlist extraction, and new-upload monitoring via TranscriptAPI. > **Source:** Ported from [ZeroPointRepo/youtube-skills](https://github.com/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) or `yt-dlp` as OSS fallbacks. See [Anti-Patterns](#anti-patterns) for guidance. ## API Setup Every request to `transcriptapi.com` requires two headers:
Overview
Covers transcript extraction, video search, channel browsing, in-channel search, playlist extraction, and new-upload monitoring via TranscriptAPI.
Manual install (npx, ZIP)
npx skills add alirezarezvani/claude-skills --skill youtube-full -g -a claude-codenpx degit alirezarezvani/claude-skills/marketing-skill/skills/youtube-full#main ~/.claude/skills/youtube-fullConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md7.2 KB
Read SKILL.md here
Show the full text172 lines
youtube-full — YouTube Transcripts, Search, and Channel Data
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.
API Setup
Every request to transcriptapi.com requires two headers:
Authorization: Bearer $TRANSCRIPT_API_KEYUser-Agent: ClaudeCode/1.0
If 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.
Operations
Get transcript (1 credit)
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.
Search YouTube (1 credit)
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.
Channel — latest uploads (FREE)
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.
Channel — all videos (1 credit/page)
GET https://transcriptapi.com/api/v2/youtube/channel/videos
?channel={@HANDLE_OR_ID}
Paginate with ?continuation=TOKEN on subsequent pages.
In-channel search (1 credit)
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.
Playlist extraction (1 credit/page)
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.
Resolve handle (FREE)
GET https://transcriptapi.com/api/v2/youtube/channel/resolve
?input={@HANDLE_OR_URL}
Returns {"channel_id": "UC...", "resolved_from": "@handle"}.
Credit Costs Summary
| 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.
Common Workflows
Research workflow
- Search (
/search?q=...) — pick the most relevant results - Fetch transcripts (
/transcript?video_url=...) for selected videos - Summarize or extract quotes from transcript text
Channel monitoring
channel/latest(free) — check for new uploads- If new videos found, fetch transcripts
- Extract signal (announcements, topics)
Playlist to corpus
playlist/videos— get all video IDs in the playlist- Batch-fetch transcripts, pausing if near credit limit
- Assemble transcripts into a searchable document set
Decision Rules
- When the user provides a YouTube URL, video ID, or @handle, use the matching endpoint directly — do not search first
- When the user says "monitor" or "check for new uploads", use
channel/latest(free) first - Use
channel/searchwhen the user knows which channel and wants to find a topic within it - Use
search(type=channel) to find a channel when the user doesn't know the handle - Do not batch-transcribe an entire channel unless the user explicitly asks for that
Error Handling
| 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 |
Limitations
- Transcripts require captions (manual or auto-generated). Some videos have no captions — this returns a 404 and costs zero credits.
- Private and age-restricted videos are not accessible.
- Live stream transcripts are unstable until the stream ends.
- Rate limit: 300 requests/minute on the free tier.
- This skill does not download audio or video files. For local file download, use
yt-dlpdirectly.
Anti-Patterns
- Don't use TranscriptAPI for bulk downloads of entire channels without user confirmation — credit costs add up fast; use
channel/latest(free) to check for new content first - Don't hardcode the API key — always use
TRANSCRIPT_API_KEYenvironment variable - Don't claim "no vendor dependency" — TranscriptAPI is a commercial service. If the user needs a zero-cost or self-hosted path:
youtube-transcript-api(Python, no auth needed for public videos) oryt-dlp --write-subsare OSS alternatives with different trade-offs (no search, no channel API, but free and local) - Don't batch-transcribe without checking credits — check remaining credits before large operations
OSS Fallback Paths
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 |
Cross-References
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 articles
| 1 | |
| 2 | name "youtube-full" |
| 3 | description "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." |
| 4 | license "MIT" |
| 5 | |
| 6 | |
| 7 | # youtube-full — YouTube Transcripts, Search, and Channel Data |
| 8 | |
| 9 | Covers transcript extraction, video search, channel browsing, in-channel search, playlist extraction, and new-upload monitoring via TranscriptAPI. |
| 10 | |
| 11 | > **Source:** Ported from [ZeroPointRepo/youtube-skills] (MIT). Original skill authored by ZeroPointRepo contributors. Adapted for the claude-skills format. |
| 12 | |
| 13 | > **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) or `yt-dlp` as OSS fallbacks. See [Anti-Patterns] for guidance. |
| 14 | |
| 15 | ## API Setup |
| 16 | |
| 17 | Every request to `transcriptapi.com` requires two headers: |
| 18 | |
| 19 | `Authorization: Bearer $TRANSCRIPT_API_KEY` |
| 20 | `User-Agent: ClaudeCode/1.0` |
| 21 | |
| 22 | If `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`. |
| 23 | |
| 24 | ## Operations |
| 25 | |
| 26 | ### Get transcript (1 credit) |
| 27 | |
| 28 | |
| 29 | GET https://transcriptapi.com/api/v2/youtube/transcript |
| 30 | ?video_url={URL_OR_ID}&format=text&include_timestamp=true&send_metadata=true |
| 31 | |
| 32 | |
| 33 | Use this for any "get transcript", "summarize video", or "extract quotes" request. |
| 34 | |
| 35 | ### Search YouTube (1 credit) |
| 36 | |
| 37 | |
| 38 | GET https://transcriptapi.com/api/v2/youtube/search |
| 39 | ?q={QUERY}&type=video&limit=20 |
| 40 | |
| 41 | |
| 42 | Use this when the user wants to find videos on a topic. Follow with transcript calls on selected results. |
| 43 | |
| 44 | ### Channel — latest uploads (FREE) |
| 45 | |
| 46 | |
| 47 | GET https://transcriptapi.com/api/v2/youtube/channel/latest |
| 48 | ?channel={@HANDLE_OR_ID} |
| 49 | |
| 50 | |
| 51 | Returns the 15 most recent uploads with view counts and publish timestamps. Use before fetching transcripts to check whether uploads are new. |
| 52 | |
| 53 | ### Channel — all videos (1 credit/page) |
| 54 | |
| 55 | |
| 56 | GET https://transcriptapi.com/api/v2/youtube/channel/videos |
| 57 | ?channel={@HANDLE_OR_ID} |
| 58 | |
| 59 | |
| 60 | Paginate with `?continuation=TOKEN` on subsequent pages. |
| 61 | |
| 62 | ### In-channel search (1 credit) |
| 63 | |
| 64 | |
| 65 | GET https://transcriptapi.com/api/v2/youtube/channel/search |
| 66 | ?channel={@HANDLE_OR_ID}&q={QUERY}&limit=30 |
| 67 | |
| 68 | |
| 69 | Prefer this over broad YouTube search when the user already knows the channel. |
| 70 | |
| 71 | ### Playlist extraction (1 credit/page) |
| 72 | |
| 73 | |
| 74 | GET https://transcriptapi.com/api/v2/youtube/playlist/videos |
| 75 | ?playlist={PLAYLIST_URL_OR_ID} |
| 76 | |
| 77 | |
| 78 | Paginate with `?continuation=TOKEN`. Response includes `playlist_info`, `results`, `has_more`. |
| 79 | |
| 80 | ### Resolve handle (FREE) |
| 81 | |
| 82 | |
| 83 | GET https://transcriptapi.com/api/v2/youtube/channel/resolve |
| 84 | ?input={@HANDLE_OR_URL} |
| 85 | |
| 86 | |
| 87 | Returns `{"channel_id": "UC...", "resolved_from": "@handle"}`. |
| 88 | |
| 89 | ## Credit Costs Summary |
| 90 | |
| 91 | | Endpoint | Cost | |
| 92 | |--------------------|----------| |
| 93 | | transcript | 1 | |
| 94 | | search | 1 | |
| 95 | | channel/resolve | free | |
| 96 | | channel/latest | free | |
| 97 | | channel/videos | 1/page | |
| 98 | | channel/search | 1 | |
| 99 | | playlist/videos | 1/page | |
| 100 | |
| 101 | Failed or rate-limited calls return a structured error and cost zero credits. |
| 102 | |
| 103 | ## Common Workflows |
| 104 | |
| 105 | ### Research workflow |
| 106 | |
| 107 | Search (`/search?q=...`) — pick the most relevant results |
| 108 | Fetch transcripts (`/transcript?video_url=...`) for selected videos |
| 109 | Summarize or extract quotes from transcript text |
| 110 | |
| 111 | ### Channel monitoring |
| 112 | |
| 113 | `channel/latest` (free) — check for new uploads |
| 114 | If new videos found, fetch transcripts |
| 115 | Extract signal (announcements, topics) |
| 116 | |
| 117 | ### Playlist to corpus |
| 118 | |
| 119 | `playlist/videos` — get all video IDs in the playlist |
| 120 | Batch-fetch transcripts, pausing if near credit limit |
| 121 | Assemble transcripts into a searchable document set |
| 122 | |
| 123 | ## Decision Rules |
| 124 | |
| 125 | When the user provides a YouTube URL, video ID, or @handle, use the matching endpoint directly — do not search first |
| 126 | When the user says "monitor" or "check for new uploads", use `channel/latest` (free) first |
| 127 | Use `channel/search` when the user knows which channel and wants to find a topic within it |
| 128 | Use `search` (type=channel) to find a channel when the user doesn't know the handle |
| 129 | Do not batch-transcribe an entire channel unless the user explicitly asks for that |
| 130 | |
| 131 | ## Error Handling |
| 132 | |
| 133 | | Code | Cause | Action | |
| 134 | |----------|---------------------|-------------------------------------------| |
| 135 | | 401 | Bad API key | Check TRANSCRIPT_API_KEY | |
| 136 | | 402 | No credits | Inform user, direct to transcriptapi.com/billing | |
| 137 | | 403/1010 | Missing User-Agent | Add User-Agent header | |
| 138 | | 404 | No captions found | Inform user — zero credits charged | |
| 139 | | 408 | Timeout | Retry once after 2 seconds | |
| 140 | | 429 | Rate limited | Respect Retry-After header | |
| 141 | |
| 142 | ## Limitations |
| 143 | |
| 144 | Transcripts require captions (manual or auto-generated). Some videos have no captions — this returns a 404 and costs zero credits. |
| 145 | Private and age-restricted videos are not accessible. |
| 146 | Live stream transcripts are unstable until the stream ends. |
| 147 | Rate limit: 300 requests/minute on the free tier. |
| 148 | This skill does not download audio or video files. For local file download, use `yt-dlp` directly. |
| 149 | |
| 150 | ## Anti-Patterns |
| 151 | |
| 152 | **Don't use TranscriptAPI for bulk downloads of entire channels** without user confirmation — credit costs add up fast; use `channel/latest` (free) to check for new content first |
| 153 | **Don't hardcode the API key** — always use `TRANSCRIPT_API_KEY` environment variable |
| 154 | **Don't claim "no vendor dependency"** — TranscriptAPI is a commercial service. If the user needs a zero-cost or self-hosted path: `youtube-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) |
| 155 | **Don't batch-transcribe without checking credits** — check remaining credits before large operations |
| 156 | |
| 157 | ## OSS Fallback Paths |
| 158 | |
| 159 | If the user cannot or will not use TranscriptAPI: |
| 160 | |
| 161 | | Need | OSS Alternative | Trade-offs | |
| 162 | |------|----------------|------------| |
| 163 | | Single transcript | `youtube-transcript-api` (Python) | No search; no channel API; captions only | |
| 164 | | Download + subtitles | `yt-dlp --write-subs` | Requires local install; no REST; slower | |
| 165 | | Channel monitoring | Parse YouTube RSS feed (`/feeds/videos.xml?channel_id=...`) | Free, no auth; limited metadata | |
| 166 | |
| 167 | ## Cross-References |
| 168 | |
| 169 | `marketing-skill/skills/video-content-strategist` — for video strategy, scripting, and content planning |
| 170 | `marketing-skill/skills/social-media-manager` — for publishing and scheduling derived from transcripts |
| 171 | `marketing-skill/skills/content-production` — for turning transcripts into blog posts, summaries, or articles |
| 172 |
Details
- Updated
- Aug 30, 2026
- License
- MIT
- Stars on the repo
- ★ 26,349
- Checked
- Source
- alirezarezvani/claude-skills ↗
- Creator
- alirezarezvani · 363 listings
Similar skills
See all →
SkillVideo Caption Extractor
SkillVideo Subtitle Extractor
SkillVideo Transcript Extractor
SkillShort Video Editor
AgentSocial Video Clip Creator
SkillYouTube Transcript DownloaderMore from alirezarezvani
SkillExperiment Resume Tool
SkillExperiment Dashboard Viewer
SkillAutonomous Experiment Runner
SkillSingle Experiment Iterator
SkillAutoresearch Experiment Setup
SkillExecutive Boardroom Deliberator