Powerful features for
every use case

Everything you need to extract, process, and use YouTube transcripts in your applications.

Native captions + AI fallback

Transcript Extraction

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.

  • Automatic AI fallback with Whisper
  • No extra cost for AI-transcribed videos
  • Works with any public YouTube video
Fetch a transcript
bash
#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

Video Metadata

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, channel, duration, views
  • Upload date and thumbnail URL
  • Included in every response for free
Response with metadata
json
{
  "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

Batch Processing

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.

  • Up to 25 videos per request
  • Each video costs 1 request credit
  • Parallel processing for speed
Batch request
bash
#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

Multiple Output Formats

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.

  • Segments with precise timestamps
  • Plain text for LLM/AI ingestion
  • SRT for subtitle workflows
Output format examples
bash
# 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

Language Support

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.

  • 30+ languages supported
  • Automatic language detection
  • ISO 639-1 language codes
Language options
bash
# 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

Developer Experience

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.

  • Python and JavaScript SDKs
  • MCP server for AI agents
  • Interactive API playground
Python SDK example
python
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)

Start building with the YouTube Transcript API

150 free requests. No credit card required. Get your API key in 30 seconds.