API de traducción de video para más de 135 idiomas

Sube un video y recíbrelo en todos los idiomas que necesites. La API REST de traducción de video transcribe la voz, la traduce y le hace doblaje; luego devuelve el video traducido, los archivos de subtítulos y el texto traducido para su revisión.
Más de 135 idiomas de destino
Subtítulos en formato .srt y .vtt
REST + Python SDK
one upload, every language
OAuth 2.0
# 1. exchange client credentials for a token (valid 1 hour)
curl -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" \
  -d "grant_type=client_credentials"

# 2. upload the video once - YouTube, Drive, S3, Vimeo or direct URL
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" \
  -d '{"link": "https://youtu.be/...", "name": "Q3 launch"}'

# 3. one project per target language - they run in parallel
for lang in es-mx de-de ja-jp pt-br; do
  curl -X POST https://api.rask.ai/v2/projects \
    -H "Authorization: Bearer $TOKEN" \
    -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"$lang\"}"
done
GET /v2/projects/{project_id}
polling, 10s
# Poll each project until merging_done, then collect the files.
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID \
    -H "Authorization: Bearer $TOKEN" \
    | jq '{status, translated_video, translation_srt_path}'
  sleep 10
done
Utilizado por equipos globales
Funciones

Lo que hace la API de traducción de video en un solo proyecto

Transcribe, traduce y haz doblaje en tus videos de forma automática a través de una sola API. Revisa el texto traducido, mantén la terminología consistente con los glosarios y descarga el formato de salida que cada plataforma necesita. Agrega la sincronización labial opcional, facturada por separado.

Traducción a más de 135 idiomas

Envía un video y un idioma de destino para traducir videos a es-mx, pt-br, fr-ca o cualquier otra región compatible. El idioma de origen se detecta automáticamente.

Detección de locutores y voces independientes

Los hablantes se separan automáticamente y cada uno recibe una voz en el idioma de destino, por lo que las entrevistas y los paneles son fáciles de seguir. Modifica cualquier asignación o indica el número de personas si lo sabes.

Voces originales o voces AI

Usa la voz original de cada hablante con la clonación de voz instantánea, o reutiliza una clonación de voz personalizada guardada para mantener una voz de presentador consistente en todos tus videos. Ambas opciones están disponibles en los idiomas de destino compatibles; los ajustes preestablecidos de voz AI cubren el resto.

Sincronización labial

Activa la sincronización labial para adaptar el movimiento de los labios al discurso traducido, como una tarea opcional en cualquier proyecto terminado, facturada por separado. La detección de rostros se ejecuta primero, por lo que solo la aplicas donde funcionará.

Audio de fondo preservado

La música, el sonido ambiental y los efectos se separan de la voz y se vuelven a mezclar debajo de la nueva locución, para que los espectadores escuchen la producción original en un idioma diferente.

Subtítulos en formato .srt y .vtt

Cada video traducido incluye un archivo de subtítulos en ambos formatos, en el idioma de destino y sincronizados con el discurso traducido.

Control de terminología con glosarios

Los nombres de marca, nombres de productos y términos técnicos se traducen de la misma manera en cada video y cada idioma, o se mantienen en el idioma original a propósito.

Texto traducido que puedes editar

Obtén la transcripción con el texto original y el traducido uno al lado del otro, corrige una línea o una marca de tiempo y vuelve a generar. Los revisores corrigen el texto y nadie tiene que grabar audio de nuevo.

Escala sin límites

Sin límites de velocidad, sin cuota de concurrencia y sin restricciones por clave. Envía tu catálogo completo y traduce grandes volúmenes a múltiples idiomas en paralelo.
Míralo en acción

Lo que devuelve la API de traducción de video

El mismo clip, traducido a través del flujo de trabajo en esta página. Hablantes originales en la fuente, voz traducida en francés, alemán, portugués y español, con el audio de fondo intacto.
Bandera de EN
En
Bandera de Francia
Vie
Bandera de Alemania
De
Bandera de PT
Pt
Bandera de España
Es
Flujo de trabajo

Tres pasos desde la subida hasta el video traducido

La creación de un proyecto inicia la traducción. Usa el endpoint /generate más tarde para volver a doblar un proyecto después de editarlo.
1

Sube tu video

Envía un archivo como datos de formulario multipartes o publica un enlace de YouTube, Google Drive, S3, Vimeo o cualquier URL de descarga directa. Obtienes un ID de medio y los metadatos técnicos antes de gastar nada.

POST /api/library/v1/media/link
2

Crea un proyecto por idioma

Pasa el ID de medio como video_id y un idioma de destino. Crea un proyecto para cada idioma que necesites a partir de la misma subida, con tu propia transcripción o un glosario si tienes uno.

POST /v2/projects
3

Asigna voces y vuelve a hacer el doblaje

Lee el estado hasta que llegue a merging_done, luego descarga el video traducido y los archivos de subtítulos para ese idioma.

GET /v2/projects/{project_id}
El tiempo de procesamiento varía según el proyecto. Para la traducción por lotes, crea un proyecto por idioma de destino desde el mismo archivo cargado, sigue el estado de cada uno a través de la API y descarga los archivos cuando termine.
Diseñado a tu medida

¿Necesitas más que el catálogo? Habla con nuestro equipo.

Nuevos idiomas, voces personalizadas, tu propio método de entrega, mayor rendimiento: cuando una integración de traducción de video necesita algo que no está en el catálogo público, nuestro equipo revisa tus requerimientos y las opciones disponibles.

Idiomas y voces

¿Necesitas un idioma o una voz que no esté en el catálogo público? Cuéntale a nuestro equipo sobre tus requerimientos y las opciones disponibles.

Entrega e integración

Webhooks, envío a tu propia cola, entrega directa a tu S3, endpoints personalizados. Cuéntanos cómo quieres alimentar tu flujo.

Volumen y capacidad

El tamaño de los lotes, los idiomas de destino por acción y la prioridad de procesamiento son términos contractuales, no límites fijos del producto.

Seguridad y alojamiento

La residencia de datos, SSO y SAML, las reglas de retención y el soporte para revisión de seguridad se gestionan como parte de la incorporación para empresas.
Casos de uso

Quién usa una API de traducción de video

Plataformas con video integrado

Plataformas de LMS y educación para clientes, plataformas de creadores y de video, herramientas de seminarios web y eventos virtuales, SaaS de alojamiento y flujos de trabajo de video, plataformas de adopción digital, compras en vivo y herramientas de video con AI que ayudan a los usuarios a crear videos o generarlos a partir de texto. Tus usuarios ya suben contenido de video a tu producto. Con la API, traducen videos en el mismo lugar a varios idiomas, y la traducción de video se convierte en una de tus funciones de pago.

Agencias de localización y producción

Conecta la traducción de video al flujo de trabajo de entrega que ya usas y mantén tu paso de revisión humana. Los lingüistas revisan el texto traducido segmento por segmento, para que tu equipo entregue más idiomas a los clientes con las mismas personas.

Producción interna de video continua

Retail y comercio electrónico internacional, franquicias globales, editoriales de medios, universidades corporativas. Integra la traducción en tu flujo de publicación para que los videos de capacitación y el contenido de productos lleguen a todos los mercados en diferentes idiomas, y vuelve a generar una versión en otro idioma cada vez que cambie el video original.
Casos de éxito

Equipos reales, resultados medibles

Cómo las empresas localizan videos con Rask, en sus propios números.
flecha
flecha
Código

Ejemplos de código de la API de traducción de video

Un ejemplo completo en cada idioma: autentícate, sube el archivo una vez, crea un proyecto por cada idioma de destino, espera y recopila el video traducido y los archivos de subtítulos.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

TARGETS = ["es-mx", "de-de", "ja-jp", "pt-br"]

async def translate(client, video_id, lang):
    job = await client.create_project(
        data=schemas.ProjectCreate(video_id=video_id, dst_lang=lang))
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)
    return job

async def main():
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

    video = await client.create_media_link(
        data=schemas.MediaCreateLink(link="https://youtu.be/..."))
    while video.status is not enums.MediaStatus.READY:
        await asyncio.sleep(5)
        video = await client.get_media(media_id=video.id)

    jobs = await asyncio.gather(*(translate(client, video.id, l) for l in TARGETS))
    for j in jobs:
        print(j.dst_lang, j.translated_video, j.translation_srt_path)

asyncio.run(main())
github.com/braskai/rask-sdk
Python 3.8+, async
import time, requests

AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
API  = "https://api.rask.ai"

token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

video = requests.post(f"{API}/api/library/v1/media/link", headers=h,
                      json={"link": "https://youtu.be/..."}).json()
while video["status"] != "ready":
    time.sleep(5)
    video = requests.get(f"{API}/api/library/v1/media/{video['id']}", headers=h).json()

ids = [requests.post(f"{API}/v2/projects", headers=h,
                     json={"video_id": video["id"], "dst_lang": lang}).json()["id"]
       for lang in ["es-mx", "de-de", "ja-jp", "pt-br"]]

for pid in ids:
    while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
        time.sleep(10)
    print(p["dst_lang"], p["translated_video"], p["translation_vtt_path"])
requests + polling
no SDK required
// no dependencies, Node 18+ global fetch
const API = 'https://api.rask.ai';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
  method: 'POST',
  headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
  body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then((r) => r.json());

const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };
const get = (path) => fetch(API + path, { headers: h }).then((r) => r.json());
const post = (path, body) => fetch(API + path, { method: 'POST', headers: h, body: JSON.stringify(body) }).then((r) => r.json());

let video = await post('/api/library/v1/media/link', { link: 'https://youtu.be/...' });
while (video.status !== 'ready') { await sleep(5000); video = await get(`/api/library/v1/media/${video.id}`); }

const results = await Promise.all(['es-mx', 'de-de', 'ja-jp', 'pt-br'].map(async (dst_lang) => {
  let p = await post('/v2/projects', { video_id: video.id, dst_lang });
  while (p.status !== 'merging_done') { await sleep(10000); p = await get(`/v2/projects/${p.id}`); }
  return p;
}));

results.forEach((p) => console.log(p.dst_lang, p.translated_video, p.translation_srt_path));
fetch, Node 18+
plain HTTP
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);

$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$video = $json($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']]));
while ($video['status'] !== 'ready') {
    sleep(5);
    $video = $json($http->get("/api/library/v1/media/{$video['id']}", ['headers' => $h]));
}

foreach (['es-mx', 'de-de', 'ja-jp', 'pt-br'] as $lang) {
    $p = $json($http->post('/v2/projects', ['headers' => $h,
        'json' => ['video_id' => $video['id'], 'dst_lang' => $lang]]));
    while ($p['status'] !== 'merging_done') {
        sleep(10);
        $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
    }
    echo $lang, ' ', $p['translation_srt_path'], PHP_EOL;
}
POST /v2/projects
OAuth 2.0 client credentials
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);

$auth = json_decode((new Client)->post(
    'https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret],
     'form_params' => ['grant_type' => 'client_credentials']]
)->getBody(), true);

$h = ['Authorization' => 'Bearer ' . $auth['access_token']];

$media = json_decode($http->post('/api/library/v1/media/link',
    ['headers' => $h, 'json' => ['link' => 'https://youtu.be/...']])->getBody(), true);

$project = json_decode($http->post('/v2/projects',
    ['headers' => $h, 'json' => ['video_id' => $media['id'], 'dst_lang' => 'es-mx']])->getBody(), true);

while ($project['status'] !== 'merging_done') {
    sleep(10);
    $project = json_decode($http->get("/v2/projects/{$project['id']}",
        ['headers' => $h])->getBody(), true);
}
Guzzle 7
plain HTTP
Python es el SDK oficial. Las pestañas de Node, PHP y cURL son ejemplos de HTTP plano para los mismos endpoints.
Progreso

Cómo se reporta el progreso de la traducción

Cada proyecto pasa por una serie de estados documentados, para que tus usuarios puedan seguir el proceso en una barra de progreso real y por etapas para cada versión de idioma. Solo necesitas gestionar tres grupos.

Éxito, detente aquí

merging_done
La traducción ha terminado. Vuelve a consultar el proyecto para obtener los enlaces de descarga disponibles.

En progreso, continúa consultando

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Además del equivalente _done estados.

Error, detener y reportar

failed
upload_failed
transcription_failed
translation_failed
voiceover_failed
merging_failed
no_audio
no_words
forbidden_link
no_audio, no_words and forbidden_link are specific enough to show directly to your own user. Every error also returns a machine-readable slug for error handling.
Observed run, 3:47 source video, en → es-mx
GET /v2/projects/{project_id}
   0s  created
  11s  transcription_started
  87s  translation_started
  99s  voiceover_started
 154s  merging_started
 165s  merging_done

O puedes omitir el sondeo por completo

Apúntanos a un endpoint de webhook y cada cambio de estado llegará como una petición POST, para que tu cola de tareas reaccione a cada cambio en el momento en que ocurre. La entrega por webhook forma parte de la incorporación para empresas (enterprise).
Leer la documentación
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Resultado

Video traducido, audio y subtítulos

Descarga el video traducido y los subtítulos en formato SRT y VTT para cada idioma de destino. En los planes elegibles, también puedes descargar la voz traducida sola o mezclada con el audio de fondo original.
Campo
Formato
Qué es
translated_video
MP4
El video con doblaje, listo para publicar
voiceover
WAV
Solo la voz traducida, sin fondo, para tu propia mezcla
translated_audio
WAV
Voz traducida mezclada con el audio de fondo original
translation_srt_path
.srt
Subtítulos en el idioma de destino
translation_vtt_path
.vtt
Mismos subtítulos en formato WebVTT para reproductores web
original_video
MP4
Tu archivo de origen guardado como referencia
Control

Revisa el texto traducido y vuelve a hacer el doblaje solo de lo que cambió

Empieza con la traducción automática o trae tu propia traducción aprobada como archivo SRT al crear el proyecto. Revisa el guion antes de publicar y vuelve a generar solo lo que cambie. El redoblaje por API se cobra según los segmentos modificados.

Edición por segmentos

Edición por segmentos
Cada proyecto muestra su transcripción en segmentos, con el texto original y el traducido uno al lado del otro, de modo que corregir algo requiere una sola solicitud de patch.
Obtén la transcripción y sus segmentos
Actualiza el texto original y nosotros volvemos a hacer la traducción
Modifica el texto traducido directamente para conservar tus propias palabras
Ajusta las marcas de tiempo, agrega segmentos o elimínalos
Cambia la voz asignada a cualquier hablante

Glosarios para tu terminología

Glosarios para tu terminología
Adjunta un glosario a un proyecto para que los nombres de marcas, productos y términos técnicos se traduzcan igual en todas las versiones de idiomas, o para que se queden sin traducir a propósito.

Un glosario cubre un par de idiomas y se aplica a todas las variantes regionales de ese idioma de destino; por lo tanto, un solo glosario en español funciona para es-mx y es-es por igual. El proyecto registra glossary_version, de modo que las ediciones posteriores nunca modifiquen el trabajo finalizado en segundo plano.
Entrada

Formatos de archivo compatibles

Sube cualquiera de los siete formatos de video y cuatro de audio, o envía una URL. Si el archivo no es compatible, el sistema lo rechaza por tipo de contenido antes de descontar minutos de traducción.

Video

7 formatos
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

Audio

4 formatos
.mp3
.wav
.flac
.m4a

Metadatos antes de gastar

El endpoint de multimedia devuelve la duración, el tamaño del archivo, el códec de video, la velocidad de cuadros, la resolución, el códec de audio, la frecuencia de muestreo y la distribución de canales. Valida un archivo y calcula el costo por adelantado, ya que la traducción de video se cobra por minuto.
Seguridad y cumplimiento normativo

Listos para tu revisión de seguridad

Brask Inc cuenta con la certificación SOC 2 Tipo II, opera bajo el RGPD y publica el estado de sus controles en tiempo real en su Trust Center. Tu contenido de video se procesa en un entorno de IA cerrado.

Certificaciones

SOC 2 Type II
GDPR
Miembro de CAI y C2PA

Cifrado

TLS 1.2 en tránsito
AES-256 en reposo
Llaves administradas SSE-S3
Rotación de llaves al menos cada 12 meses

Tu contenido

Entorno de AI cerrado
Nunca se usa para entrenar modelos generales
Exportación completa, sin ataduras

Acceso

SSO y SAML
Control de acceso basado en roles
Credenciales de cliente OAuth 2.0

Empresa

Opciones de residencia de datos
SLA personalizados
Gerente de cuenta dedicado

Derechos de voz

Voces sintéticas con derechos de uso
Clonación de voz basada en consentimiento
Controles de seguridad de AI, supervisión humana
Comparación

Rask API frente a un sistema creado por ti

Una API de traducción de texto traduce caracteres. La traducción de video también requiere reconocimiento de voz, sincronización, voces y mezcla de audio. Aquí tienes la misma funcionalidad armada de dos formas distintas.
Lo que necesitas
Rask API
Armado por partes
Transcripción, traducción, síntesis, mezcla
Una sola llamada
De tres a cuatro proveedores y el código para conectarlos
Sincronizar la traducción con el video
Incluido
Tu propia lógica de alineación
Detección de locutores y voces independientes
Incluido
Un proveedor de diarización más tu propia lógica de asignación de voz
Música de fondo y efectos preservados
Incluido
Un paso de separación de fuentes que debes construir y ajustar
Subtítulos en formato .srt y .vtt
Incluido
Generado a partir de tus propios datos de tiempo
Sincronización labial
Opcional, se cobra por separado
Un proveedor independiente
Corregir una línea traducida
Vuelve a hacer el doblaje de ese segmento y paga solo por él
Vuelve a procesar el flujo y paga por el archivo
Consistencia en la terminología
Glosarios con versiones
Procesamiento previo y posterior que tú controlas
Límites de velocidad
Ninguno
Lo que exija tu proveedor más estricto
Un idioma fuera del catálogo
A consultar con nuestro equipo
Depende de cada proveedor
Preguntas frecuentes

API de traducción de video: preguntas frecuentes

¿No encuentras lo que buscas? Ponte en contacto con el departamento de ventas.

¿Existe una API que traduzca videos de forma automática?

¿Cómo obtengo acceso a la API y una clave de API?

¿Cómo me autentico en la API de traducción de video?

¿La API es síncrona o asíncrona?

¿Cuáles son los límites de velocidad?

¿A cuántos idiomas puedo traducir mis videos?

¿Puedo traducir un video a varios idiomas al mismo tiempo?

¿Cuánto tiempo toma la traducción de video?

¿Qué formatos de archivo son compatibles?

¿Obtengo subtítulos además del video traducido?

¿Puedo editar el texto traducido antes de publicarlo?

¿ChatGPT puede traducir un video?

¿Cuánto cuesta la traducción de video?

Empieza a hacer doblaje en una sola tarde

Haz tu primera solicitud hoy y habla con nosotros cuando necesites tarifas por volumen o un idioma que nadie más tenga.