Comparison · Benchmark · Pricing
TranscriptAPI vs Supadata vs YTAPI: Measured on Uncached Videos
We sent the same recent, uncached YouTube videos to three transcript APIs from four regions. Median, tail latency and first-try success, plus how each one bills.
· 6 min read · YTAPI
Most transcript API comparisons quote a latency number from each vendor's homepage. Those numbers are real, but they usually describe a cache hit: a video someone already requested, served from storage. Your users will ask for plenty of videos nobody has requested yet, and that is where the APIs differ.
So we measured that case directly. This post has the method, the results, and a fair summary of when each API is the right choice. We make one of the three, so read it with that in mind; the method is described so you can repeat it.
How we measured
- Videos. Recent uploads, one to seven days old, with under 1,000 views and an English caption track. We found them through a search API and checked their captions without requesting a transcript, so none of the three APIs had them cached when the test started.
- Clients. One small VM in each of four regions: US West, US East, Central Europe and Asia.
- Requests. Every video went to all three APIs from the same VM, in random order, a few seconds apart, one request at a time, over a new connection each time, with default options (Supadata in
nativemode). - What counts. Every successful response, whatever the provider's cache did. All YTAPI responses were cache misses. TranscriptAPI's cache still answered about 7% of these videos, and those fast responses are included in its numbers.
- Retries. TranscriptAPI documents
408as a temporary failure to retry. We retried after 2, 5 and 10 seconds, as its docs advise, and report both the first try and the final result.
Requests that failed inside our own test clients were dropped for all three APIs.
Results
| First-try success | Median | P90 | P95 | P99 | |
|---|---|---|---|---|---|
| YTAPI | 100% | 644 ms | 1.23 s | 1.37 s | 2.34 s |
| TranscriptAPI | 85% | 2.41 s | 4.12 s | 5.13 s | 9.57 s |
| Supadata | 100% | 4.76 s | 15.0 s | 23.9 s | 37.2 s |
A few things stand out.
TranscriptAPI is two APIs in one. When its cache has a video, it is fast: those responses had a median of 418 ms. When it does not, the median is around 2.5 seconds, and 15% of first requests came back as 408. Retrying as documented brought the overall success rate to 99.7%, but the wait until a transcript was in hand grew to a median of 2.6 s and a P99 of 21.5 s. For popular videos you may rarely see this. For long-tail videos you will.
Supadata is reliable but slow in the tail. Every request succeeded on the first try, which matters. Its median of 4.8 seconds is workable for background jobs, but one request in ten took over 15 seconds, and the slowest took more than half a minute. If a user is waiting on the other side, that tail is what they will remember.
YTAPI stays in a narrow band. The median was 644 ms and the P99 was 2.34 s, with every request succeeding on the first try. Video length barely changed it: 553 ms at the median for videos under 10 minutes, 736 ms for videos of 60 to 90 minutes.
The live chart on our homepage shows the same data, including how the median varied between regions.
Features side by side
What each API offers, from each provider's site in September 2026 and our own tests. "Not stated" means we could not find it on their site, not that the feature is missing.
| YTAPI | TranscriptAPI | Supadata | |
|---|---|---|---|
| Platforms | YouTube | YouTube | YouTube, TikTok, Instagram, X, Facebook, video files |
| Videos without captions | 404, no charge | Not stated | AI-generated transcript, 2 credits per minute |
| Output | JSON segments, Markdown, SRT, VTT, plain text | JSON, with or without timestamps | JSON |
| Word-level timestamps | Yes, on auto-generated captions | Yes | Not stated |
| Search, channels, playlists | Yes | Yes | Metadata; plus web scraping |
| MCP server | Yes | Yes | Yes |
| SDKs and no-code | Plain HTTPS; no SDK yet | Agent skills | Python and JavaScript SDKs; Zapier, Make, n8n |
| Pricing | One-time packs from $9; credits never expire | Subscription from $5 a month for 1,000 credits | Monthly plans from $17; credits reset each month |
| Failed requests | Free | 408 and 404 not billed | Not stated |
| Uncached median, our test | 644 ms | 2.41 s | 4.76 s |
| First-try success, our test | 100% | 85% | 100% |
| Strengths | Fast and steady on videos nobody requested before; no subscription | Fast on popular videos its cache already holds; low price per credit | Many platforms; transcripts for videos without captions; SDKs and no-code tools |
| Weaknesses | YouTube only; no speech-to-text; no SDK yet | 15% of uncached first requests needed a retry; long tail once retries count | Slow tail (P90 15 s); unused credits expire monthly |
Pricing and billing
Latency is only part of the decision. The billing models are quite different, and they matter more at low or uneven volume.
Supadata sells monthly plans: Pro is $17 for 3,000 credits, Mega is $47 for 30,000, and larger tiers go up from there, with a free plan of 100 credits a month. Credits reset each month and do not roll over. Paid plans allow 10 to 100 requests per second. A transcript fetch is one credit; transcripts it generates with AI for videos without captions cost 2 credits per minute of video.
TranscriptAPI sells a subscription: $5 a month for 1,000 credits, or $54 a year, with top-ups on either plan; new accounts get 100 credits. One successful request is one credit, including cache hits; 408 and 404 responses are not billed. Keys are limited to 200 requests per minute on the monthly plan and 300 on the annual plan.
YTAPI sells one-time credit packs: $9 for 2,000 credits, $29 for 10,000 and $79 for 50,000. Credits never expire. Only HTTP 200 responses use a credit; errors, 404 for missing captions and rate-limit responses are free. Packs set the rate limit: 300, 600 and 3,000 requests per minute; before you buy, a key can make one request per second and 100 a day. New accounts get 200 credits.
If your volume is steady and predictable, a monthly plan can be good value. If it arrives in bursts, such as a backfill one month and very little the next, credits that do not expire usually cost less in practice. For what each option costs at different volumes, see YouTube transcript API pricing compared.
Which one to choose
Choose TranscriptAPI if your users mostly request popular videos that its large cache already holds. Its cache hits are quick. Build in retries for 408.
Choose Supadata if you need more than YouTube. It covers other platforms and can generate transcripts with AI for videos that have no captions, which a caption-fetching API cannot do. Plan for a slow tail.
Choose YTAPI if you work with YouTube, your videos are not always popular ones, and you want the first request for any video to come back quickly and succeed without retries.
If you're switching, there are step-by-step guides for moving from Supadata and from TranscriptAPI.
Whichever you pick, test it on your own list of videos, especially new and low-view ones. That is the case homepage numbers leave out, and it is the one your users will hit. YTAPI gives you 200 free credits to do exactly that.
FAQ
Why test uncached videos?
Popular videos are usually in a provider's cache already, so they come back fast from anyone. New and low-view videos have to be fetched from YouTube on the spot, which is where providers differ, and they're a large share of what real users request.
Which one is cheapest?
It depends on your volume and how steady it is. At steady, high volume they're close; with uneven volume, credits that reset each month cost more. The numbers are in pricing compared.
Can I try them for free?
All three have a free allowance: 200 credits on signup for YTAPI, 100 for TranscriptAPI, and 100 credits a month on Supadata's free plan. That's enough to run your own sample through each.