How to get a YouTube transcript
GET request to /v1/youtube/transcript with your input. You get clean JSON back in seconds for 1 credit per call — no OAuth, scraping or platform SDKs. Extract timestamped transcripts from any public YouTube video in a single request.How to get a YouTube transcript (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the YouTube Transcript API
Send an authenticated GET request to /v1/youtube/transcript with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
curl "https://api.captapi.com/v1/youtube/transcript?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DdQw4w9WgXcQ" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"videoId": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"transcript": "[♪♪♪] ♪ We're no strangers to love ♪ ♪ You know the rules and so do I ♪ ♪ A full commitment's what I'm thinking of ♪ ♪ You wouldn't get this from any other guy ♪ ♪ I just wanna tell you how I'm feeling ♪ ♪ Gotta make you understand ♪ ♪ Never gonna give you up ♪ ♪ Never gonna let you down ♪ ♪ Never gonna run around and desert you ♪ ♪ Never gonna make you cry ♪ ♪ Never gonna say goodbye ♪ ♪ Never gonna tell a lie and hurt you ♪ ...",
"transcriptSegments": [
{
"text": "[♪♪♪]",
"start": 1.36,
"duration": 1.68,
"end": 3.04,
"timestamp": "00:01"
},
{
"text": "♪ We're no strangers to love ♪",
"start": 18.64,
"duration": 3.24,
"end": 21.88,
"timestamp": "00:18"
}
],
"wordCount": 487,
"segments": 61,
"language": "en"
}
}Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Public YouTube video URL, e.g. https://youtube.com/watch?v=ID. Not a TikTok/Instagram/Facebook URL. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble. |
| language | string | No | Preferred caption language as an ISO code, e.g. "en". Defaults to auto-detect. |
| cache | boolean | No | Set true to serve from the 24h response cache. Default false — always fetch fresh data. |
Frequently asked questions
What does the YouTube Transcript API do?
The YouTube Transcript API lets you extract the full, timestamped transcript from a public YouTube video using one GET request to /v1/youtube/transcript. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the YouTube Transcript API cost?
Each successful call costs 1 credit. Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh. Failed or empty results are never charged.
Do I need a YouTube API key or OAuth?
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
What if the YouTube video has no captions?
When no captions are available, Captapi transcribes the audio with AI (Whisper) automatically, so you still get a usable transcript.
Is the YouTube Transcript API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh. Use it for analytics, monitoring, and content automation.
Ready to get a YouTube transcript?
Start free with 100 credits — no credit card required.
Get your free API key