Everything you need to extract, process, and use YouTube transcripts in your applications.
Native captions + AI fallback
Our API first attempts to fetch native YouTube captions. When none exist, it automatically falls back to Whisper-powered AI transcription. You get a transcript either way, with no extra configuration.
#c792ea]">curl -H "x-api-key: YOUR_KEY" \
#a8e6a3]">"https://api.youtubetranscripts.co/v1/transcript?url=https://youtube.com/watch?v=dQw4w9WgXcQ"Bundled free with every transcript
Every transcript response includes rich metadata about the video: title, channel name, duration, view count, upload date, thumbnail URL, and more. No extra API call needed.
{
"title": "How to Build a SaaS in 2024",
"channel": "TechBuilder",
"duration": 1847,
"view_count": 245000,
"upload_date": "2024-03-15",
"thumbnail": "https://i.ytimg.com/vi/.../maxresdefault.jpg",
"transcript": [...]
}Up to 25 videos per request
Process multiple videos in a single API call. Send up to 25 YouTube URLs and get all transcripts back in one response. Perfect for bulk processing, data pipelines, and content aggregation.
#c792ea]">curl -X POST -H "x-api-key: YOUR_KEY" \
#82aaff]">-H "Content-Type: application/json" \
#82aaff]">-d '{
#a8e6a3]">"urls": [
#a8e6a3]">"https://youtube.com/watch?v=video1",
#a8e6a3]">"https://youtube.com/watch?v=video2",
#a8e6a3]">"https://youtube.com/watch?v=video3"
]
}' \
#a8e6a3]">"https://api.youtubetranscripts.co/v1/batch"Segments, plain text, or SRT
Choose the format that fits your workflow. Get timed segments with start/end timestamps for precise alignment, plain text for NLP processing, or SRT for subtitle applications.
# Timed segments (default)
#c792ea]">curl -H "x-api-key: YOUR_KEY" \
#a8e6a3]">"https://api.youtubetranscripts.co/v1/transcript?url=VIDEO_URL&format=segments"
# Plain text
#c792ea]">curl -H "x-api-key: YOUR_KEY" \
#a8e6a3]">"https://api.youtubetranscripts.co/v1/transcript?url=VIDEO_URL&format=text"
# SRT subtitles
#c792ea]">curl -H "x-api-key: YOUR_KEY" \
#a8e6a3]">"https://api.youtubetranscripts.co/v1/transcript?url=VIDEO_URL&format=srt"30+ languages with auto-detection
Transcripts are available in 30+ languages. The API auto-detects the video language by default, or you can specify a preferred language. Supports English, Spanish, French, German, Japanese, Korean, Portuguese, and many more.
# Auto-detect language (default)
#c792ea]">curl -H "x-api-key: YOUR_KEY" \
#a8e6a3]">"https://api.youtubetranscripts.co/v1/transcript?url=VIDEO_URL"
# Specify language
#c792ea]">curl -H "x-api-key: YOUR_KEY" \
#a8e6a3]">"https://api.youtubetranscripts.co/v1/transcript?url=VIDEO_URL&lang=es"SDKs, MCP server, and playground
We prioritize developer experience. Use our Python and JavaScript SDKs for quick integration, connect via our MCP server for AI agent workflows, or test queries in our interactive playground before writing any code.
class=class="text-[#a8e6a3]">"text-gray-500"># Python SDK
from youtubetranscripts import Client
client = Client(api_key=class="text-[#a8e6a3]">"YOUR_KEY")
transcript = client.get_transcript(class="text-[#a8e6a3]">"https://youtube.com/watch?v=dQw4w9WgXcQ")
print(transcript.text)150 free requests. No credit card required. Get your API key in 30 seconds.