Skip to content

Transcript API for developers

Social media video, as structured data.

Send a YouTube, TikTok or Instagram link. Get back timestamped text as JSON, from published captions or from the audio when there are none.

  • 50 free credits
  • No card required
  • Failed fetches are never billed
curl -X POST \
  https://transcriptfetch.com/api/v2/transcripts/video \
  -H "Authorization: Bearer tf_live_••••" \
  -d '{"video": "https://youtu.be/bNpx7gpSqbY"}'
{
  "ok": true,
  "data": {
    "kind": "transcript",
    "platform": "youtube",
    "video_id": "bNpx7gpSqbY",
    "duration": 401,
    "source": "captions",
    "segments": [
      { "start": 41.0, "text": "I studied hundreds of companies" },
      { "start": 46.2, "text": "Five factors shaped their outcomes" },
      { "start": 52.3, "text": "One factor stood above the rest" },
      … 43 more
    ]
  },
  "usage": { "credits_spent": 1, "balance": 4812 }
}

A real request and response. Keys start with tf_live_ and stay on your server.

1,700,000+Successful transcripts fetched
0.9sTypical response, last 7 days
99.9%API uptime, independently monitored
500+Developers served

Who it's for

Built for developers.

Plain REST, real SDKs and one predictable JSON shape. Whether it is a feature in your app or a job in your pipeline.

In your app

Add transcripts to a product feature without maintaining a scraper.

  • SDKs for Node and Python, or plain REST
  • One key in an env var, no proxies or headless browsers
  • 50 free credits while you build
One video, from an API route
const t = await tf.transcripts.video(url);
return Response.json(t.segments);

In your pipeline

Feed whole channels into search, a model or a data warehouse.

  • One schema across YouTube, TikTok, Instagram and files
  • Batch up to 50 videos, page through channels and playlists
  • Monitors pick up new uploads on a schedule
Pull a whole channel
await tf.transcripts.channel("@3blue1brown", { limit: 50 });
await tf.transcripts.batch(videoIds); // up to 50

How we compare

Benchmarked against the alternatives.

Same URLs, sent to both APIs at the same instant, one attempt each. We count how many transcripts come back and how long the full text takes to arrive.

We built and ran these benchmarks. The script, every URL and every raw measurement are public, so you can run it with your own keys.

vs a leading multi-platform transcript API

28 Sep 2026 · 360 URLs · their paid Pro plan
PlatformTranscripts returnedMedian time to full text
YouTube120 / 120
1.1 s
5.4 s
TikTok118 / 108
1.3 s
18.4 s
Instagram118 / 96
5.9 s
19.9 s
TranscriptFetchThemMedian over URLs both returned

vs a popular YouTube transcript API

29 Sep 2026 · 500 YouTube URLs · their paid plan
PlatformTranscripts returned90th percentile time
YouTube500 / 463
1.1 s
3.0 s
TranscriptFetchThemp90 over URLs both returned

Coverage

Three platforms.
One transcript API.

Platforms3

YouTube API

Transcripts, search, channels, Shorts, playlists and monitors

YouTube Transcript API
  • TranscriptPOST/api/v2/transcripts/video
  • SearchPOST/api/v2/transcripts/search
  • Channel VideosPOST/api/v2/transcripts/channel
  • PlaylistPOST/api/v2/transcripts/playlist
  • ShortsPOST/api/v2/transcripts/channel
  • Channel MonitorPOST/api/v2/monitors
One Bearer key and one JSON envelope on every platform.Read the docs

FAQ

Before you write the first line.

A successful caption fetch or listing costs 1 credit. AI Fallback Transcription costs 1 credit per started 5 minutes of audio, billed only when the transcript is delivered. Failures are free.

Get started

Your first transcript is one request away.

  • 50 free credits
  • No card required
  • Failed fetches are never billed
  • YouTube0:42No framework, just the standard library and one router.
  • TikTok0:12Okay so nobody talks about this part of moving cities.
  • Instagram0:27Toss the noodles straight from the pot.
  • YouTube12:04We charged from day one.
  • Instagram0:18Most houseplants die from too much water, not too little.