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=…GET /transcript
youtube.com/watch?v=dQw4w9WgXcQ
3:33
GET/transcript
OUTPUT · JSON segmentscached: ms ↓
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.

Sample output for four videos, in the shape the API returns it. To run your own video, use the free transcript tool: no signup, no API key.

Sample output$ curl api.transcriptapi.io/transcript?video_id=…
▸ TED Talk
12:34
[output] The next outbreak? We're not ready0 / 7 segments
status: 200 okcredits 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 translate, min 2free 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 up to 200 of a channel's most recent uploads by its ID. Returns video IDs, titles, and durations. Pair with /transcript to bulk-transcribe a channel's recent uploads in one loop.

1 credit / callup to 200 recentJSON
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 the first page of its videos, about 100, in order — IDs, titles, durations. Combine with /transcript to transcribe a course or podcast series in one go.

1 credit / call~100 itemsJSON
06post

Subscribe

/channel/subscribe

Watch a channel and get a POST to your own URL within about 15 minutes of a new upload. One best-effort call per upload, 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.

No SDK needed: plain HTTP from the languages your team already uses. 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 · 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 / fallback✓direct, all videos×OAuth + owner-only~brittle, breaks weekly
Quota / rate limitsrequests per day✓credit-based, predictable×10,000 units / day, opaque×IP bans, captchas
Searchcost per call✓1 credit / page×100 units / call (1% of daily)×HTML scraping
Setup timekey in hand → first call✓60 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. Cached transcripts come back in milliseconds; a first fetch takes a few seconds.

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 a channel's recent uploads, or every channel in a vertical. Cached repeats are free and failed calls are refunded.

N = 12,847 videos

Pay for credits.
Not for surprises.

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

Hobby

Free

20credits, once

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

1,000,000 credits included per month. Need more, or an invoice instead of card billing? Email hello@transcriptapi.io.

  • 1,000,000 credits / month included
  • Email + Discord support
  • Channel webhooks (free on every plan)
  • Failed calls refunded automatically

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. We own the fragile part: residential proxies, retries, and keeping up when YouTube changes its pages. 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+. The ?translate_to=es parameter translates the captions with an AI model, so quality follows the source captions and the model.
03What happens if a video doesn't have captions?+
Then there is nothing to return. TranscriptAPI reads the caption tracks YouTube already has, whether the creator uploaded them or YouTube generated them automatically. It does not run its own speech recognition. A video with captions disabled answers 404 with retryable: false, and the credit is refunded automatically.
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?+
No. TranscriptAPI is a hosted API only. For high volume there is the Enterprise plan; for anything beyond it, email hello@transcriptapi.io.
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.