subtitles
Use when subtitles or the spoken text of a YouTube video is needed: pasted video links or IDs, requests to translate a video, read along, follow foreign-language content, or extract what was said. Also use for language learning or accessibility. Fetches timestamped subtitles from any YouTube video.
By zeropointrepo · 649 installs
npx skills add zeropointrepo/youtube-skills --skill subtitles
Source repository · Upstream listing
Subtitles
Fetch YouTube video subtitles via [TranscriptAPI.com](https://transcriptapi.com).
Setup
If $TRANSCRIPT API KEY is not set, read [references/auth setup.md](references/auth setup.md) and follow the instructions there to get and store the key.
Required Headers
Every request needs two headers:
Authorization: Bearer $TRANSCRIPT API KEY
User Agent: your agent's name and version if known (e.g. HermesAgent/0.11.0 , ClaudeCode/1.0 ). Version is optional — agent name alone is fine. Do not omit this header or send a bare default — Cloudflare will return a 403 (error code 1010) and block the request.
GET /api/v2/youtube/transcript
Param Values Use case
video url YouTube URL or video ID Required
format json , text json for sync'd subs with timing
include timestamp true , false false for clean text for reading/translation
send metadata true , false Include title, channel, description
For language learning — clean text without timestamps:
For translation — structured segments:
Response ( format=json ):
Response ( format=text , include timestamp=false ):
Tips
Many videos have auto generated subtitles in multiple languages.
Use format=json to get timing for each line (great for sync'd reading).
Use include timestamp=false for clean text suitable for translation apps.
Errors
Code Meaning Action
401 Bad API key Check key
402 No credits transcriptapi.com/billing
403/1010 Cloudflare block Add or fix User Agent header
404 No subtitles No subtitles available
408 Timeout Retry once after 2s
1 credit per request. Free tier: 100 credits, 300 req/min.
Copy paste examples
Every request in this file as a ready to run one liner: [references/curl examples.md](references/curl examples.md)