Limited Availability - Do not share this document

Universal Translator

In this topic, you will learn how to utilize the Brightcove Universal translator.

Introduction

The Universal Translator allows for caption translations and dubbing in approximately 30 different languages. It can be accessed through three main entry points in the VideoCloud UI, enabling customers to select which languages they would like their captions or audio tracks translated to.

Interacting with the Universal Translator during Ingestion

To select the target languages for captions translation and dubbing in the ingestion process, follow the next steps:

  1. Navigate to the Upload Module
  2. Choose the target languages for both translated captions and dubbing.

  3. (Optional) You can enable the review checkbox to pause dubbing until after you review your translated captions.

  4. Complete the upload. Auto-captions are generated, and then translated into the languages you selected.
  5. If review is enabled, confirm caption quality either in the VideoCloud Captions Editor or by downloading, editing, and re-uploading caption tracks.
  6. After review, explicitly trigger dubbing. Brightcove generates dubbed audio tracks for all selected languages once the prerequisites are satisfied.

Editing a text track

You may want to edit a text track to review automatically generated content before creating a new audio track. To do this, follow the next steps:

  1. Select your video and navigate to the Languages section.
  2. Click ... on your desired language and select Edit track.
  3. Add your changes and click Publish or Generate audio to generate your audio directly.

Using Video Details

In the Languages section of the Video Details page, you can manage captions and dubbing for each video. This includes adding new caption tracks, triggering dubbing, and retriggering dubbing after making edits.

  1. Navigate to the Video Details page and locate the Languages section of your video.
  2. Click Add to add text and audio tracks in one or more target languages.

  3. To create an additional audio track in another language, click Generate audio on the desired language or click the option next to Audio Tracks and select Translate audio.

  4. If you edit captions later, you can retrigger dubbing. Retriggering overwrites the existing dubbed audio tracks with new ones based on the updated captions.

Adding new languages in bulk

Use the Media module to add captions and generate translations for multiple videos at once. Follow the next steps:

  1. In the Media module, select the videos you want to update.
  2. Click ... and choose Captions & Translations.

  3. Set your preferences and click Generate to start processing.

  4. After processing is complete, review the generated tracks and publish as needed.

Admin Module Settings

Upload Settings

You can set your default preferences for the universal translator following the next process:

  1. Navigate to the Admin menu.
  2. Select Upload Settings and scroll down to the Captions translations section.
  3. Add the default caption and audio translation languages by clicking in each section.

  4. Enter your Languages and Click Save

  5. Click Save in the Upload Settings page.

Captions and Translations

In the Captions and Translations section, you can set the default status of your captions and translations after generating them at upload or directly from the Media module.
To do this, follow the next process:

  1. Navigate to the Admin menu.
  2. Select Captions and Translations and scroll down to the Default Publish Status section.
  3. Select your default Autocaptions and caption translation statuses.

Creating Language Groups

With language groups, you can organize sets of languages into reusable groups for captions and audio translations.

  1. Click New Language group

  2. Enter your information and click Create.

Ingestion Configurations API

Manage UI-only ingestion preferences for captions and translations. These settings prefill fields in Video Cloud UI only; API clients can still send any values they need.

Endpoint

GET, PUT https://ingest.api.brightcove.com/v1/accounts/{account_id}/ingestion-configurations

Auth scopes: Same scopes used by the Dictionary feature’s GET/PUT endpoints.

GET response object

Ingestion configurations (fields returned by GET)
Key Type Description Example
languageGroups object<string, string[]> Map of group name → list of caption translation language codes. Shown in UI dropdowns. {"Europe":["fr-FR","de-DE","es-ES"]}
publishByDefault object Initial publish state for auto-generated tracks. Allowed keys: autoCaptions, captionTranslations (true=published, false=draft). {"autoCaptions":true,"captionTranslations":false}
autoCaptionsLanguage string Language code (BCP-47, e.g., en-US), or auto (detect), or off (disabled). "en-US"
autoCaptionsLabel string Label shown for the auto-captions language. "English (Auto)"
useDictionary boolean Use the auto-captions dictionary to improve accuracy. true
captionsTranslations object<string, string> Map of language code → label for caption translations. {"en-US":"English","es-ES":"Spanish"}
lockCaptionTranslations boolean If true, UI cannot change default caption translation languages. false
audioTranslations string[] List of supported audio translation languages (UI prefill only). ["en-US","es-ES"]
lockAudioTranslations boolean If true, UI cannot change default audio translation languages. false

PUT updates (partial)

Send only fields to change; unspecified fields remain untouched.

PUT /v1/accounts/{account_id}/ingestion-configurations
{
  "languageGroups": { "Europe": ["fr-FR","de-DE","es-ES"] }
}

Ingest Endpoint Update

/v1/accounts/{account_id}/videos/{video_id}/ingest-requests — within transcriptions, you can specify translation_languages (array of objects with srclang (BCP-47, required), and optional label, status (draft|published), dubbing). If dubbing is true, audio is generated as well.

{
  "transcriptions": [{
    "srclang": "en-US",
    "label": "English",
    "status": "published",
    "translation_languages": [
      { "srclang": "es-ES", "label": "Spanish", "status": "draft", "dubbing": true },
      { "srclang": "fr-FR", "label": "French", "status": "draft" }
    ]
  }]
}

AI Translation Endpoints

Create a translation job

POST /v1/accounts/{account_id}/videos/{video_id}/ai/translation

Body includes target_languages: array of objects with srclang (BCP-47, required), optional label, optional status (draft|published), and optional dubbing (boolean).

{
  "target_languages": [
    { "srclang": "es-ES", "label": "Spanish", "status": "draft", "dubbing": true },
    { "srclang": "de-DE", "label": "German", "status": "draft" }
  ]
}

List translation jobs

GET /v1/accounts/{account_id}/videos/{video_id}/ai/translation/jobs

Returns an object with a jobs array. input is the original request serialized as an escaped JSON string; error is omitted unless present.

{
  "jobs": [
    {
      "job_id": "job_123",
      "status": "processing",
      "creation_date": "2025-08-20T14:03:22Z",
      "input": "{\"target_languages\":[{\"srclang\":\"es-ES\",\"dubbing\":true}]}"
    }
  ]
}

FAQs

  • Processing Time: Can take several minutes. When ready, captions and audio tracks will appear in the video details page.
  • Credit Consumption: Based on minutes of video processed. Contact your account team for more details.