API de localización de video para todos los mercados

Convierte un video original en una versión localizada para cada mercado: el idioma regional correcto, términos de marca consistentes, las voces de los hablantes, subtítulos y sincronización labial opcional. Una sola API ejecuta el flujo de trabajo de localización y tu equipo revisa el guion antes de publicar.
Más de 135 idiomas y variantes regionales
Glosarios y revisión
REST + Python SDK
one source, two Spanish markets
OAuth 2.0
# 1. one Spanish glossary - it applies to every Spanish regional variant
curl -X POST https://api.rask.ai/v2/glossaries \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"name": "Brand terms", "src_lang": "en", "dst_lang": "es",
       "entries": {"Rask Studio": "Rask Studio", "onboarding": "incorporación"}}'

# 2. a localized version per market, both with the same glossary
for lang in es-mx es-es; do
  curl -X POST https://api.rask.ai/v2/projects \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"$lang\", \"glossary_id\": \"$GLOSSARY_ID\"}"
done
GET /v2/projects/{project_id}/transcription
review
# Review: source and translated text, segment by segment
curl -s https://api.rask.ai/v2/projects/$ID/transcription \
  -H "Authorization: Bearer $TOKEN" \
  | jq '.segments[] | {speaker, src: .src.text, dst: .dst.text}'
Utilizado por equipos globales
Funciones

Qué incluye la API de localización de video

La localización es más que una pista de audio traducida. La API integra opciones de idioma regional, control de terminología, voces, subtítulos y revisión en un solo flujo de trabajo por mercado. Agrega sincronización labial opcional, facturada por separado.

Más de 135 idiomas y variantes regionales

Localiza para una región específica: es-mx o es-es, pt-br o pt-pt, fr-ca o fr-fr. Cada proyecto utiliza un idioma de destino y el idioma original se detecta automáticamente.

Control de terminología

Los glosarios mantienen los nombres y términos de marca idénticos en cada versión localizada. Un solo glosario cubre todas las variantes regionales de un idioma y cada proyecto registra la versión del glosario que utilizó.

Tu traducción aprobada

Comienza con la traducción automática o trae una traducción que tus revisores ya hayan aprobado en formato SRT y deja que Rask genere las voces.

Sincronización labial para videos con personas en cámara

Adapta el movimiento de los labios al discurso localizado cuando aparece una persona real en cámara. Es opcional y cada generación de video completo se factura por separado.

Audio de fondo preservado

La música, el sonido ambiental y los efectos del audio original se mantienen en la mezcla bajo el discurso localizado, para que todos los mercados escuchen la misma producción.

Subtítulos

Cada versión localizada incluye subtítulos en formatos SRT y VTT, en el idioma de destino y sincronizados con el discurso localizado.

Las voces de los hablantes en distintos mercados

En entrevistas y diálogos, la clonación instantánea de voz mantiene la voz de cada hablante en los idiomas compatibles, y una clonación de voz personalizada guardada le otorga a un presentador recurrente una voz uniforme. Los preajustes de voz AI cubren el resto.

Revisión antes de publicar

Los revisores leen el texto original y el traducido lado a lado, corrigen lo que no se adapte al mercado y vuelven a doblar únicamente los fragmentos modificados.

Escala sin límites

Sin límites de velocidad, sin cuotas de concurrencia y sin restricciones por clave. Genera cientos de versiones localizadas en paralelo cuando un lanzamiento llegue a todos los mercados.
Míralo en acción

Un video original, localizado para cuatro mercados

El mismo clip localizado en francés, alemán, portugués y español: discurso traducido con las voces clonadas de los hablantes y el audio de fondo original intacto.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flujo de trabajo

Tres pasos en el flujo de trabajo de localización de video

Establece las reglas una vez y localiza cada video nuevo con ellas. Crear un proyecto inicia la localización; usa el endpoint /generate después de revisar las ediciones.
1

Configura tus reglas de localización

Crea un glosario para cada par de idiomas, guarda voces personalizadas para los presentadores recurrentes y elige la variante regional para cada mercado en el que publiques.

POST /v2/glossaries
2

Crea una versión por mercado

Sube el video original una vez y luego crea un proyecto para cada mercado de destino con tu glosario o con una traducción aprobada importada desde un archivo SRT.

POST /v2/projects
3

Revisa y publica

Lee el texto traducido lado a lado, edita lo que los revisores señalen, vuelve a hacer el doblaje de los segmentos modificados y descarga el video localizado junto con los subtítulos.

GET /v2/projects/{id}/transcription
El tiempo de procesamiento varía según el proyecto. El nuevo doblaje después de la revisión se cobra según la duración combinada de los segmentos modificados, con un mínimo de un minuto por ejecución.
Diseñado a tu medida

¿Haces localización a gran escala? Planifica el flujo de trabajo con nuestro equipo

Volumen recurrente, varios revisores, tu propio CMS o LMS: nuestro equipo puede ayudarte a diseñar el flujo de trabajo de localización, configurar la terminología y las etapas de revisión, y agregar control de calidad humano donde tu equipo no pueda revisar cada video.

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énes usan 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 y compras en vivo. Ofrece versiones localizadas con opciones de idioma regional dentro de tu producto para que tus usuarios lleguen a una audiencia global y a un nuevo mercado sin salir de tu plataforma.

Agencias de localización y producción

Realiza la localización para varios clientes con un glosario por marca y un paso de revisión por proyecto. Integra las traducciones que tus lingüistas aprobaron como archivos SRT y entrega videos con doblaje, subtítulos y sincronización labial opcional desde un solo flujo de trabajo de localización de video.

Producción interna de video continua

Retail y comercio electrónico internacional, franquicias globales, medios de comunicación y universidades corporativas. Localiza videos de marketing, anuncios en video, e-learning y contenido de video de productos para cada región manteniendo la consistencia en los términos de marca, y crea una versión actualizada cuando 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 localización de video

Un ejemplo completo en cada idioma: crea un glosario, localiza un video original para dos mercados de habla hispana y lee el texto traducido para su revisión.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

MARKETS = ["es-mx", "es-es"]

async def localize(client, video_id, locale, glossary_id):
    job = await client.create_project(data=schemas.ProjectCreate(
        video_id=video_id, dst_lang=locale, glossary_id=glossary_id))
    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)

    glossary = await client.create_glossary(data=schemas.GlossaryCreate(
        name="Brand terms", src_lang="en", dst_lang="es",
        entries={"Rask Studio": "Rask Studio", "onboarding": "incorporación"}))

    jobs = await asyncio.gather(*(localize(client, VIDEO_ID, m, glossary.id) for m in MARKETS))

    for job in jobs:   # review before publishing
        script = await client.get_project_transcription(project_id=job.id)
        for seg in script.segments[:3]:
            print(job.dst_lang, seg.speaker, seg.src.text, "->", seg.dst.text)

asyncio.run(main())
github.com/braskai/rask-sdk
async, typed models
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}"}

glossary = requests.post(f"{API}/v2/glossaries", headers=h, json={
    "name": "Brand terms", "src_lang": "en", "dst_lang": "es",
    "entries": {"Rask Studio": "Rask Studio", "onboarding": "incorporación"}}).json()

ids = [requests.post(f"{API}/v2/projects", headers=h, json={
          "video_id": VIDEO_ID, "dst_lang": locale, "glossary_id": glossary["id"]}).json()["id"]
       for locale in ["es-mx", "es-es"]]

for pid in ids:
    while requests.get(f"{API}/v2/projects/{pid}", headers=h).json()["status"] != "merging_done":
        time.sleep(10)
    script = requests.get(f"{API}/v2/projects/{pid}/transcription", headers=h).json()
    for seg in script["segments"][:3]:
        print(seg["src"]["text"], "->", seg["dst"]["text"])
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 call = (method, path, body) => fetch(API + path, { method, headers: h, body: body && JSON.stringify(body) }).then((r) => r.json());

const glossary = await call('POST', '/v2/glossaries', {
  name: 'Brand terms', src_lang: 'en', dst_lang: 'es',
  entries: { 'Rask Studio': 'Rask Studio', onboarding: 'incorporación' },
});

for (const dst_lang of ['es-mx', 'es-es']) {
  let p = await call('POST', '/v2/projects', { video_id: VIDEO_ID, dst_lang, glossary_id: glossary.id });
  while (p.status !== 'merging_done') { await sleep(10000); p = await call('GET', `/v2/projects/${p.id}`); }
  const { segments } = await call('GET', `/v2/projects/${p.id}/transcription`);
  segments.slice(0, 3).forEach((s) => console.log(dst_lang, s.src.text, '->', s.dst.text));
}
fetch, Node 18+
plain HTTP
# 1. token (valid 1 hour - cache and reuse it)
TOKEN=$(curl -s -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" -d "grant_type=client_credentials" | jq -r .access_token)

# 2. import the translation your reviewers approved (source and translated .srt)
TRANSCRIPT_ID=$(curl -s -X POST "https://api.rask.ai/v2/transcriptions/srt?src_lang=en&dst_lang=es-mx" \
  -H "Authorization: Bearer $TOKEN" \
  -F "src=@source_en.srt" -F "dst=@approved_es-mx.srt" | jq -r .id)

# 3. create the localized version from it - Rask voices the approved script
curl -s -X POST https://api.rask.ai/v2/projects \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d "{\"video_id\": \"$VIDEO_ID\", \"dst_lang\": \"es-mx\", \"transcript_id\": \"$TRANSCRIPT_ID\"}"
POST /v2/transcriptions/srt
approved translation from SRT
<?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']];

$glossary = $json($http->post('/v2/glossaries', ['headers' => $h, 'json' => [
    'name' => 'Brand terms', 'src_lang' => 'en', 'dst_lang' => 'es',
    'entries' => ['Rask Studio' => 'Rask Studio', 'onboarding' => 'incorporación'],
]]));

foreach (['es-mx', 'es-es'] as $locale) {
    $p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
        'video_id' => $videoId, 'dst_lang' => $locale, 'glossary_id' => $glossary['id']]]));
    while ($p['status'] !== 'merging_done') {
        sleep(10);
        $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
    }
    $script = $json($http->get("/v2/projects/{$p['id']}/transcription", ['headers' => $h]));
    echo $locale, ': ', $script['segments'][0]['dst']['text'], PHP_EOL;
}
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 reporta el progreso cada versión localizada

Cada versión de mercado es un proyecto con su propio estado documentado, para que puedas seguir un lanzamiento completo en diferentes mercados desde una sola vista. Solo necesitas gestionar tres grupos.

Éxito, detente aquí

merging_done
La localización ha finalizado. Consulta el proyecto una vez más para obtener los enlaces de descarga disponibles para tu proyecto.

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, una secuencia por versión de mercado.

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 y forbidden_link son lo suficientemente específicos como para mostrárselos directamente a tu propio usuario.
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, audio y subtítulos localizados para cada mercado

Cada versión de mercado incluye el video localizado y los subtítulos en formato SRT y VTT. En los planes elegibles, también puedes descargar la voz localizada por separado o mezclada con el audio original para tu propia edición o distribución.
Campo
Formato
Qué es
translated_video
MP4
El video localizado, listo para publicar
voiceover
WAV
Solo la voz localizada, 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

Mantén la consistencia en los términos de marca y la redacción en todos los mercados

La calidad de la localización proviene de un proceso de revisión. Los revisores verifican cada segmento, corrigen las palabras que no se adaptan al mercado y vuelven a hacer el doblaje solo de esos segmentos. Los glosarios aplican esas decisiones al siguiente video y mantienen la consistencia de la marca en todos los mercados.

Edición por segmentos

Edición por segmentos
Cada proyecto muestra su transcripción dividida en segmentos con el texto original y el traducido, por lo que la corrección de un revisor se aplica con una simple solicitud de actualización.
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
Agrega un glosario a cada proyecto para que los nombres de marca y los términos de productos se traduzcan de la misma manera en cada versión localizada, o se mantengan en el idioma original 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. El contenido exclusivamente de audio, como los podcasts, también se puede localizar; la sincronización labial aplica para las grabaciones que muestran un rostro en pantalla.

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 de cada versión para el mercado por adelantado, ya que la localización se cobra por minuto.
Seguridad y cumplimiento normativo

Listo para compras corporativas en cualquier mercado

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 Centro de Confianza. Las opciones de residencia de datos forman parte de la incorporación para empresas.

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

API de Rask frente a un flujo de trabajo de localización armado por ti

La localización de video reúne la traducción, la voz, los subtítulos, la terminología y la revisión en un solo flujo de trabajo de producción. Aquí tienes el mismo flujo de trabajo armado de dos maneras.
Lo que necesitas
Rask API
Armado por partes
Opciones de idiomas regionales
Más de 135 idiomas y variantes regionales
Soporte de localización que varía según el proveedor
Términos de marca en cada versión
Glosarios con versiones por par de idiomas
Scripts de buscar y reemplazar que tú mantienes
Traducciones aprobadas por tus revisores
Importados como SRT y luego sonorizados
Alineación manual con el video
Las voces de los hablantes en distintos mercados
Clones de voz instantáneos y personalizados
Un proveedor de voz diferente por idioma
Música de fondo y efectos
Mantenido debajo del discurso localizado
Un paso de separación de fuentes que tú configuras
Subtítulos en .srt y .vtt
Incluido
Generado a partir de tus propios datos de tiempo
Sincronización labial para videos con personas en cámara
Opcional, cobrado por la generación del video completo
Un proveedor independiente
Corregir una línea después de la revisión
Volver a hacer el doblaje solo de los segmentos modificados
Volver a procesar toda la versión
Límites de velocidad
Ninguno
Lo que exija tu proveedor más estricto
Diseño de flujo de trabajo y control de calidad humano
Disponible con nuestro equipo
Contratado y gestionado por separado
Preguntas frecuentes

API de localización de video: preguntas frecuentes

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

¿Qué es una API de localización de video?

¿En qué se diferencia la localización de video de la traducción de video?

¿Puedo localizar un video para varias regiones del mismo idioma?

¿Cómo mantengo los nombres de marca consistentes en las versiones localizadas?

¿Puedo usar traducciones que ya aprobamos?

¿La API maneja referencias culturales?

¿La API traduce el texto en pantalla?

¿Qué idiomas y regiones son compatibles?

¿Puedo conservar la voz del hablante en todos los mercados?

¿Cómo encaja la sincronización labial en un flujo de trabajo de localización?

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

¿Rask puede ayudar a diseñar nuestro flujo de trabajo de localización?

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

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.