Blog / Guides / Translating a YouTube Transcript to English
Guides 5 min read β€’ November 13, 2026

Translating a YouTube Transcript to English

Founder

A non-English video can be translated to English two ways: YouTube's own auto-translated caption track (free beyond the video's normal processing credit), or a Google translation Scriptube runs on the stored text (billed separately). Set translate_to_english: true and Scriptube picks whichever applies.

You don't need to know in advance which path a given video will take β€” that's the point of the flag. Whether YouTube already offers an English track for a Russian interview or a French lecture doesn't need to be something you check first; submit with the flag set and let Scriptube resolve it per video.

Two sources, two prices

This is distinct from reading a video in a non-English language you already understand β€” that's just language= with no translation involved. translate_to_english is specifically for turning content into English when English isn't what the creator published.

SourceWhen it's usedCost
YouTube's own translationYouTube already offers an auto-translated English track for that videoFree beyond the video's 1-credit processing charge
Google translationNo YouTube English track exists, so Scriptube translates the stored original12 credits per 1,000 characters (Starter+)

You don't pick which one happens β€” Scriptube checks whether YouTube can supply it first, since that costs nothing extra, and only falls back to a paid Google translation when YouTube can't. Translation is a Starter-and-above feature; it's not available on Free.

Requesting it

curl -s -X POST https://scriptube.me/api/v1/transcripts \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://www.youtube.com/watch?v=VIDEO_ID"],
    "language": "ru",
    "translate_to_english": true
  }'

language stays the ORIGINAL caption language you're reading (here, Russian) β€” it does not change to en just because you asked for a translation. The English text lands in a separate field, translated_text, alongside translation_source telling you whether it came from youtube (free) or google (paid):

{
  "video_id": "...",
  "transcripts": [
    {
      "language": "ru",
      "text": "ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°?",
      "translated_text": "Hello, how are you?",
      "translation_source": "google"
    }
  ]
}

Reading GET /api/v1/transcripts/{batch_id}?include_languages=true on a finished batch surfaces this same translated_text/translation_source pair per stored track.

What text exports actually contain

One rule covers every export format: if the batch's language was requested as English (or translate_to_english is set) and a translation exists, text exports (txt, csv, json, jsonl) return the translation. Otherwise they return the original. SRT and VTT are the one exception β€” they always carry the original-language text, because only the original caption track has the timecodes subtitle files need.

Submitting a video that needs a fresh YouTube translation

If a video has never been fetched before and you ask for a language YouTube can only reach via auto-translation (not a native track), Scriptube fetches that translated track as its own processing job β€” charged like a brand-new YouTube fetch, not free. Once it's stored, re-submitting it later settles at the normal stored-video price. Reads of anything already stored are always free, translation included.

Working out the cost before you submit

Google translation is priced by source character count β€” 12 credits per 1,000 characters β€” so it scales with how much the video's transcript actually contains, not with its duration directly. A 2,000-character transcript works out to 24 credits for the translation alone, on top of the video's own processing credit; a longer talk or lecture costs proportionally more. Because that depends on the specific video, don't guess: the dashboard shows a cost estimate before you submit, and the API has a dedicated precheck endpoint β€” see credits and the estimate endpoint for using it from code.

How it's different from native language tracks

This is specifically about turning one language into English. If the video already has a real caption track in another language you want (not a translation), use language= to pick it directly instead β€” see native tracks and auto-translation targets for the full picture, including the /languages endpoint that lists what's available per video, and downloading multiple languages for the dashboard side of this.

How to do it in the dashboard

On the batch submission form, check Translate to English before submitting. The cost estimate updates to reflect a Google translation charge if YouTube doesn't already offer the language for free.

Frequently asked

What if the video is already in English? Nothing happens beyond the normal fetch β€” there's no translation to run, and no translation charge, regardless of whether translate_to_english is set.

Can I get both the original text and the English translation? Yes β€” text is the original, translated_text is the English version, and both are available on the same transcript record when you read with include_languages=true. See bilingual transcripts side by side for keeping both in view at once.

Does retrying a failed item keep the same translation setting? Yes β€” retry-failed keeps translate_to_english from the original item unless you explicitly override it in the retry request, so a retried item doesn't silently drop the translation you originally asked for.

Does a batch with a mix of videos β€” some needing YouTube's free translation, some needing Google's paid one β€” work in one request? Yes. Scriptube resolves the source per video automatically; you don't need to split the batch or know in advance which videos need which path.

Is translation available on the Free plan? No β€” translation requires Starter or above, since it's billed separately from the base video fetch that every plan gets.

Next steps

Translation requires Starter or above β€” see plans.

Try Scriptube Free

Extract YouTube transcripts instantly. No credit card required.

Get Started

Related Articles

Guides

Get a YouTube Transcript in 10 Seconds (No Extension Needed)

The fastest way to get a YouTube transcript is to paste the video link into Scriptube and submit it β€” no browser extension, no bookmarklet, nothing to install....

Guides

YouTube Transcript with Timestamps: Every Way to Get One

Every transcript Scriptube processes stores timed segments, not just plain text β€” each one carries its own start time and duration down to the second. You...

Guides

YouTube Channel Transcripts at Scale: Limits and Costs

Paste a channel URL or @handle into Scriptube instead of a single video link, and it becomes a channel batch: the channel's videos get transcribed, newest...