Back to blogIntegrations

Migrating from TranscriptAPI.com: A Field Guide

Switching a YouTube transcript integration from TranscriptAPI.com to GetYouTubeTranscript - parameter mapping, a before/after curl example, endpoint equivalents, and the real gaps that do not map 1:1.

00:06:00 · SEP 26, 2026

Quick answer

TranscriptAPI.com's video_url, format, and include_timestamp map to our v and language params - but our public API doesn't expose per-segment timestamps the way their format=json option does. If you only need plain transcript text and metadata, this is close to a drop-in swap; if you depend on segment-level timestamps from the API response itself, read the gaps section before switching.
01

Parameter mapping

Both APIs authenticate with a bearer token and accept a full URL, short URL, or bare video ID. Here's how the rest of TranscriptAPI's transcript parameters line up with ours:

TranscriptAPI.comGetYouTubeTranscriptNote
Authorization: Bearer KEYAuthorization: Bearer KEYWe also accept x-api-key as an alternative header.
video_urlv (or url, videoId)Same accepted formats: full URL, short URL, or bare 11-character ID.
languagelanguageOurs takes a single code with a default fallback, not a comma-separated priority list - request one language per call.
format=json|text(none - always plain text)Our response always returns the flattened transcript string in the transcript field, equivalent to their format=text.
include_timestamp(not exposed)Per-segment start/duration timestamps aren't in our public API response today - see the gaps below.
send_metadata=true(always included)title, author_name, author_url, and thumbnail_url are always in the response - no flag needed.
02

Before / after

TranscriptAPI.com

curl -X GET "https://transcriptapi.com/api/v2/youtube/transcript?video_url=https://youtu.be/dQw4w9WgXcQ&language=en&send_metadata=true" \
  -H "Authorization: Bearer YOUR_API_KEY"

GetYouTubeTranscript

curl "https://getyoutubetranscript.com/api/v1/transcript?v=dQw4w9WgXcQ&language=en" \
  -H "Authorization: Bearer sk_live_..."

# => { "success": true, "data": { "video_id": "...", "language_code": "en",
#      "title": "...", "author_name": "...", "author_url": "...",
#      "thumbnail_url": "...", "transcript": "...", "word_count": 1847 } }

Same video, one credit either way. Metadata comes back by default on our side, so there's no send_metadata flag to remember.

03

Other endpoints

TranscriptAPI.comGetYouTubeTranscriptNote
GET /youtube/info (free)GET /resolve?handle=... (free)Ours resolves a handle/URL to a channel ID; for video-level metadata, call /transcript and read the response fields.
GET /youtube/search (1 credit)GET /search?q=... (1 credit/page)Same idea - paginated search, one credit per page fetched.
GET /youtube/channel/resolve (free)GET /resolve?handle=... (free)Direct equivalent.
GET /youtube/channel/videos (1/page)GET /channel/videos?channel=... (1 credit/page)Same pagination model - pass back the response's continuation token.
GET /youtube/channel/search (1 credit)GET /channel/search?channel=...&q=... (1 credit/page)Direct equivalent.
GET /youtube/channel/playlists, /channel/posts(no equivalent)Not currently offered - see the gaps below.

What doesn't map 1:1

  • No per-segment timestamps in the API response. TranscriptAPI's format=json + include_timestamp=true returns segments with start/duration; our public API returns only the flattened transcript string. (Segment-level timestamps exist in our database and power the clickable transcript view on the website itself - they're just not in the public API response yet.)
  • language is a single code here, not a priority list. TranscriptAPI tries a comma-separated list like de,en,asr left to right; ours takes one code with a default fallback. If you were relying on a fallback chain, retry with a different value yourself.
  • No channel playlists or channel posts endpoints. TranscriptAPI's /channel/playlists and /channel/posts don't have an equivalent here today.

If plain transcript text, metadata, search, and channel data cover your use case, this is close to a drop-in swap - sign up for 100 free credits (no card required) and see the full pricing and endpoint list, or check the API docs for the complete parameter reference.

Migration FAQ

Q01

Do I need to change my auth header?

No - both APIs use Authorization: Bearer YOUR_KEY. Ours also accepts x-api-key as an alternative.

Q02

Will my existing video URLs and IDs still work?

Yes - both APIs accept a full YouTube URL, a short youtu.be URL, or a bare 11-character video ID in the same parameter position (video_url there, v here).

Q03

What happens if I send a comma-separated language list like TranscriptAPI's format?

Our language parameter expects one code, not a list. A comma-separated value will likely just fail to match - request a single language per call, and retry with a different one if you need a fallback chain.

Q04

Can I get segment-level timestamps from your API?

Not from the public REST API response today - it returns the flattened transcript text. If your migration depends on that, hold off until it's exposed, or use the website's own transcript view, which does support it.

Q05

Is this free to try?

100 free credits on signup, no card required - enough to test the transcript, search, and channel endpoints before committing to a plan.

Related