| name | youtube-transcript-io-cli |
| description | Fetch YouTube video transcripts and channel info via CLI - transcripts, channels. Use when user mentions 'youtube transcript', 'video transcript', 'get transcript', 'youtube captions', 'channel videos', 'video subtitles', or wants to extract text from YouTube videos for analysis, AI processing, or automation. |
| category | devtools |
youtube-transcript-io-cli
CLI wrapper for the YouTube Transcript API. Extract transcripts from YouTube videos and fetch channel metadata.
When To Use This Skill
Use the youtube-transcript-io-cli skill when you need to:
- Extract transcripts/captions from one or more YouTube videos by video ID
- Fetch YouTube channel metadata and playlist data by channel username
- Get video text content for summarization, translation, or AI analysis
- Batch-process up to 50 video transcripts in a single request
- Pipe transcript data into other tools using structured JSON output
Capabilities
- Transcripts: Fetch full transcript text for any public YouTube video, including title and video metadata (microformat)
- Channels: Look up channel info by username, optionally including playlist video data (Plus/Pro plans)
- Batch support: Up to 50 video IDs or channel usernames per request
- Automation: Stable
--json output for chaining with other CLI tools or scripts
- Rate limit handling: Built-in retry logic for 429 responses (API limit: 5 req/10s)
Common Use Cases
- "Get the transcript of this YouTube video and summarize it."
- "Fetch transcripts for these 10 video IDs and extract key topics."
- "Look up a YouTube channel and list all their video titles."
- "Download the transcript from this video so I can translate it."
- "Get the captions from this video for creating blog content."
Auth
youtube-transcript-io-cli auth set <token>
youtube-transcript-io-cli auth show
youtube-transcript-io-cli auth test
youtube-transcript-io-cli auth remove
Token source: youtube-transcript.io profile page.
Auth type: Basic (token sent as Authorization: Basic <token>).
Resources
transcripts
| Command | Description |
|---|
youtube-transcript-io-cli transcripts get <id> --json | Get transcript for a single video |
youtube-transcript-io-cli transcripts get <id1> <id2> <id3> --json | Batch get transcripts (up to 50 IDs) |
Video ID: The part after v= in a YouTube URL (e.g., jNQXAC9IVRw from youtube.com/watch?v=jNQXAC9IVRw).
Response includes: transcript text, video title, and microformat metadata (thumbnail, description, duration, channel info).
channels
| Command | Description |
|---|
youtube-transcript-io-cli channels get <username> --json | Get channel info by username |
youtube-transcript-io-cli channels get <u1> <u2> --json | Batch get channels (up to 50) |
youtube-transcript-io-cli channels get <username> --include-playlist-data --json | Include video titles, IDs, and thumbnails |
Username: The channel handle without @ (e.g., jawed from youtube.com/@jawed).
Requires Plus or Pro plan. Plus: max 5 channels/request. Pro: max 50.
Quick Reference
youtube-transcript-io-cli --help
youtube-transcript-io-cli transcripts --help
youtube-transcript-io-cli transcripts get --help
youtube-transcript-io-cli channels --help
youtube-transcript-io-cli channels get --help
Output Format
--json returns a standardized envelope:
{ "ok": true, "data": [ ... ], "meta": { "total": 1 } }
On error: { "ok": false, "error": { "message": "...", "status": 401 } }
Rate Limits
The API allows 5 requests per 10 seconds. The CLI automatically retries on 429 responses with exponential backoff. When batch-processing, prefer fewer requests with multiple IDs (up to 50) over many single-ID requests.