A YouTube transcript isn't locked to one language. Scriptube can return any caption track the video actually has, and can also auto-translate into languages YouTube itself doesn't offer for that video. Which path applies depends on whether the language you want already exists as a track, or needs to be generated.
Step one: see what's actually available
Before requesting a language, check what exists for the video. The languages endpoint lists the original language, every native caption track, and the languages YouTube offers as translation targets:
curl https://scriptube.me/api/v1/videos/VIDEO_ID/languages \
-H "X-API-Key: YOUR_API_KEY"
This tells you up front whether German, say, is a native track someone actually uploaded or dubbed, or whether it would have to come from translation instead.
Requesting a native language track
Pick a language with the language parameter, whether you're submitting a video or reading one back:
curl "https://scriptube.me/api/v1/transcripts/{batch_id}?language=de" \
-H "X-API-Key: YOUR_API_KEY"
By default, Scriptube fetches the original-audio language, English, and whatever language you explicitly requested. Other native languages the video happens to offer aren't pre-fetched automatically — request them by language code when you need them, and they're retrieved on demand.
What happens if the language isn't there
If you ask for a language the video doesn't have, Scriptube doesn't fail the request — it serves the default track and tells you that's what happened, via three fields in the response:
requested_language— what you asked forserved_language— what you actually got backlanguage_hint— a note explaining the fallback
Always check these fields in automated workflows rather than assuming the language you requested is the one you received.
Auto-translating into a language YouTube doesn't offer
If a video is in Russian and you need it in German, but no German track or dub exists, Scriptube can auto-translate a native track into the language you need. This costs 1 extra credit on top of the video's base transcript credit, and is available on the Starter plan and above.
This is different from translating specifically into English — that path uses Google Translate at a per-character rate and has its own flag. See the translate_to_english flag in detail for that case, including when YouTube's own translation is used for free instead of Google's paid one.
Auto-dubbed videos
Some videos ship with auto-dubbed audio tracks in multiple languages. When that's the case, the is_original flag on a language track tells you which one is the original-audio version versus a dub — useful if you specifically want the creator's actual words rather than a dubbed rendition. See auto-dubbed videos: finding the original transcript for more on that flag.
What fetching "on request" means in practice
Scriptube doesn't pre-fetch every language a video might have — by default, you get the original-audio language, English, and whatever language you explicitly asked for. If a video has, say, eight native caption tracks and you only ever request two of them, the other six simply aren't pulled until you ask. This keeps the default request lean; it also means the first time you request an unusual language, expect a short delay before you can expect a faster response from your library on subsequent reads.
Translation cost depends on length, not video length
Google-translated text is billed per 1,000 characters, not per minute of video — a short, dense video with a lot of talking can cost more to translate than a longer video with sparse dialogue. If cost matters, estimate first: POST /api/v1/transcripts/estimate accepts the same flags you'd submit with, including translate_to_english, so the estimate reflects translation cost rather than just the base 1-credit transcript fee.
Common multilingual workflows
- Research across language barriers — pulling the native-language transcript for analysis, with an English auto-translation alongside it for team members who don't read the source language.
- Localizing show notes or summaries — translating a transcript into a specific target audience's language rather than defaulting to English.
- Comparing dubbed and original content — using
is_originalto pull the creator's actual words rather than relying on a dub when precision matters.
For side-by-side study or comparison rather than picking one language, see bilingual transcripts, side by side. If you're building course materials or language-learning resources specifically, studying any video with transcripts covers that use case.
Choosing the right path
| You want | Use | Cost | Plan |
|---|---|---|---|
| A language the video already has (native or dubbed) | language=xx | Included in the video's 1 credit | Any |
| English, translated from another language | translate_to_english: true | 12 credits/1,000 characters (free if YouTube already provides it) | Starter+ |
| A non-English language the video doesn't natively offer | Auto-translation to that language | 1 extra credit | Starter+ |
A worked example
Take a video originally in Russian. First, check what's available:
curl https://scriptube.me/api/v1/videos/VIDEO_ID/languages \
-H "X-API-Key: YOUR_API_KEY"
If German isn't listed as a native or dubbed track, requesting language=de triggers auto-translation rather than returning a native track — at 1 extra credit on a Starter plan or above. If you instead request language=en and English happens to already be a YouTube-provided track for that video, you get it as part of the base 1 credit, no translation charge at all.
How to do it in Scriptube
- Check
/languagesfor the video to see what's natively available. - Submit or read the transcript with
language=xxfor the language you want. - Check
requested_language,served_language, andlanguage_hintin the response to confirm you got what you asked for. - If the language isn't natively available and you need it anyway, the same request triggers auto-translation — check the cost estimate first if you're translating a large batch.
From the dashboard, the same logic applies through the language selector when submitting or viewing a batch — pick a language, and the dashboard shows you whether it's a native track or a translation before you confirm.
Quick answers to common questions
Does checking /languages cost a credit? No — it's a read-only endpoint describing what's available; the credit is charged when you actually submit or request a transcript.
What if I need the same video in three languages? Request each one with its own language value. Native tracks are included in the video's base credit; each non-native auto-translated language adds its own small cost as described above.
Does translation affect timestamps? It depends which kind. A YouTube auto-translated track (switching language to another language YouTube offers) keeps the same timed-segment structure as a native track. The Google English translation (translate_to_english) is text-only — it returns translated_text with no segments, so SRT/VTT always come from a timed track, never from the Google translation. The JSON/CSV/JSONL exports don't carry timing for any language — that only comes from include_segments=true or the SRT/VTT export. See every way to get timestamps out of a transcript.
Related reading
For a focused look at English-specific translation and the translate_to_english flag, see translating a transcript to English. If you want two languages side by side rather than choosing one, see bilingual transcripts, side by side. For native caption tracks specifically, without translation, see downloading YouTube captions in multiple languages.
Check the full language and translation parameters in the API docs, or sign up free to try it on a multilingual video.