20 free credits · no credit card required

Turn any YouTube video into structured data,
instantly.

Transcripts, search, channels, playlists — one API, one key, one price. Ship in minutes instead of fighting YouTube's quota system for weeks.

20
Free credits · no card
8
Routes · one key
100+
Caption languages
INPUT · youtube.com/watch?v=…POST /v1/transcript
youtube.com/watch?v=dQw4w9WgXcQ
3:33
POST/v1/transcript
OUTPUT · JSON segments184ms ↓
0:00Every kind of customer ends up here
0:04for the same reason — they need
0:08video data, structured, fast,
0:12without the ceremony.

Paste a URL.
Watch it parse.

No signup, no API key. Try a few of the sample videos below — every word, every timestamp, every segment streams from a real production endpoint.

Live demo$ curl api.transcriptapi.io/transcript?video_id=…
TED Talk
12:34
[output] The next outbreak? We're not ready0 / 7 segments
status: 200 oklatency msrequest id: req_8a3f22ecredits used: 1 / 20

Eight routes. One API key.

Same Bearer token, same JSON envelope, same error codes across every route. Authenticate once and you're done. Full parameters and response shapes are in the API reference.

01get

Transcript

/transcript?video_id=…

Pull the full transcript for any public YouTube video. Auto-generated or manual captions, in 100+ languages. Add ?translate_to=de to get an AI translation — any language, any video. Cache hits are free.

1 credit / fetch+1 credit / 40 segments to translatefree on cache hit
02get

Search

/search?q=…&limit=50

Search YouTube by keyword and get structured results — video ID, title, channel, views, duration. Max 50 results per call. No YouTube Data API key required, no daily quota to burn through.

1 credit / callmax 50 resultsJSON
03get

Channel videos

/channel/videos?channel_id=…

Pull every uploaded video from a channel by its ID. Returns video IDs, titles, and durations. Pair with /transcript to bulk-transcribe an entire channel in one loop.

1 credit / callall videosJSON
04get

Channel search

/channel/search?channel_id=…&q=…

Search for videos within a specific channel. Great for finding topics inside large content libraries without scanning the whole platform.

1 credit / callscoped to channelJSON
05get

Playlist

/playlist?playlist_id=…

Expand any public playlist to its full ordered list of videos — IDs, titles, durations. Combine with /transcript to transcribe an entire course or podcast series in one go.

1 credit / callall itemsJSON
06post

Subscribe

/channel/subscribe

Watch a channel and get a POST to your own URL the moment it publishes something new. Checked every 15 minutes, so you stop writing polling loops.

free15 min checksJSON payload
07delete

Unsubscribe

/channel/subscribe?channel_id=…

Stop notifications for a channel. Same route, same key — no console, no dashboard round-trip.

freeinstantidempotent
08get

Health

/health

Liveness check for your own monitoring. The only route that needs no API key and never costs a credit.

freeno authJSON

Drop-in. Drop dead simple.

Native client libraries for the languages your team already uses. Or skip the SDK and hit the REST endpoint directly — it's just JSON over HTTPS.

example.sh
# GET /transcript — returns segments with start, duration, text
curl "https://api.transcriptapi.io/transcript?video_id=dQw4w9WgXcQ&language=en" \
  -H "Authorization: Bearer $API_KEY"

# 200 OK
# {
#   "video_id": "dQw4w9WgXcQ",
#   "transcript": [
#     { "start": 0.0, "duration": 3.5, "text": "We're no strangers to love" },
#     { "start": 3.5, "duration": 3.0, "text": "You know the rules and so do I" }
#   ]
# }

# GET /search — up to 50 results per call
curl "https://api.transcriptapi.io/search?q=machine+learning&limit=10" \
  -H "Authorization: Bearer $API_KEY"
response · 200 ok · 184 ms · 12 segments

Why not just use the official API?

YouTube's Data API was built for analytics dashboards, not for AI pipelines. Here's the comparison, from someone who has shipped against both.

TranscriptAPIYouTube Data API v3Roll your own scraper
Transcript accessgetCaptions / fallbackdirect, all videos×OAuth + owner-only~brittle, breaks weekly
Quota / rate limitsrequests per daycredit-based, predictable×10,000 units / day, opaque×IP bans, captchas
Searchcost per call1 credit / page×100 units / call (1% of daily)×HTML scraping
Latency p50global, cached184ms~400–900ms×2–8s headless browser
Setup timekey in hand → first call60 seconds~~30 min (GCP project + OAuth)×days, then ongoing
Cost at 1M calls / moall-in, fully loaded$249 flat×quota negotiation required×$2k+ proxies + maintenance

Built for teams
shipping at scale.

Every kind of customer ends up here for the same reason — they need video data, structured, fast, without the ceremony.

For AI apps

Context for retrieval and agents

Feed every video your users paste into your RAG pipeline. Sub-200ms means transcripts arrive before the LLM finishes its first token.

EMBED→ vec[1536]
For SaaS tools

Power video features without the overhead

Note-takers, summarizers, content-repurposing tools — ship the feature in a weekend instead of building a transcription team.

For research

Corpus-scale extraction for academia

Pull every video from a channel, every channel in a vertical. Bulk pricing, compliant data handling, IRB-friendly logs.

N = 12,847 videos

Pay for credits.
Not for surprises.

One credit equals one transcript, one search page, or 100 playlist items. No per-seat fees, no overage gotchas, no annual contract pressure.

Hobby

Free

20credits / mo

No card required. Enough to evaluate every endpoint before you commit.

  • All eight routes
  • Community Discord support
  • Public videos only
▸ start free
Enterprise

Enterprise

$249+/ month

From 1M credits. Volume discounts kick in at 5M. Custom terms on request.

  • 1,000,000+ credits
  • Dedicated infra option
  • Priority engineering support
  • Custom invoicing
  • Direct Slack channel

Need more? Top up anytime.

One-time credit bundles. Never expire, stack on top of any plan.

Questions, answered
without the marketing.

If something isn't here, ask in Discord — questions get answered there directly.

01How is this different from yt-dlp or youtube-transcript-api?+
Open-source scrapers stop working every time YouTube changes its frontend — and they will. Our team owns the fragile part of the stack: rotating proxies, signature decryption, fallback paths, retry logic. You get a stable contract; we absorb the breakage.
02Do you support languages other than English?+
Yes — every language YouTube has captions for, which is currently 100+. Auto-translate into any of them via the ?translate_to=es parameter. Quality matches whatever YouTube serves natively.
03What happens if a video doesn't have captions?+
We fall back to ASR (automatic speech recognition) on our side. You get back a transcript either way, with a source: "asr" field if it was machine-generated. ASR transcripts cost 4 credits instead of 1.
04Can I use this in a commercial product?+
Absolutely — most of our customers do. You're responsible for honoring whatever rights apply to the underlying video content, but the API itself puts no restrictions on what you do with the output.
05Is there a self-hosted option?+
Not for the public tier. For Enterprise customers (5M+ credits / month) we offer a containerized deployment that runs in your VPC. Contact sales.
06How do you handle private or unlisted videos?+
We don't. Public videos only — no OAuth flows, no impersonation, no scraping logged-in sessions. If a video is unlisted but the URL is shared with you, that counts as public for our purposes.