API de localización de video para cada mercado

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 oradores, 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 cualquier contenido.
Más de 135 idiomas y variantes regionales
Glosarios y revisión
REST + SDK de Python
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 idiomas regionales, 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 de origen 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

Empieza con la traducción automática o sube una traducción que tus revisores ya hayan aprobado en un archivo SRT y deja que Rask se encargue del doblaje.

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

Alinea el movimiento de los labios con el discurso localizado cuando aparezca una persona 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 conservan en la mezcla debajo de la voz localizada, para que todos los mercados escuchen la misma calidad de producción.

Subtítulos y leyendas

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

Voces de los oradores en todos los mercados

En entrevistas y diálogos, la clonación instantánea de voz conserva la voz de cada orador en los idiomas compatibles, y una clonación de voz personalizada guardada le da a un presentador recurrente una voz consistente. 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 cuota de concurrencia y sin restricciones por clave. Genera cientos de versiones localizadas en paralelo cuando un lanzamiento esté dirigido 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 oradores 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

Define las reglas una vez y utilízalas para localizar cada video nuevo. La creación de un proyecto inicia el proceso de localización; usa el endpoint /generate después de revisar y editar.
1

Establece tus reglas de localización

Crea un glosario para cada par de idiomas, guarda voces personalizadas para los presentadores recurrentes y elige la región 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 bien 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

¿Necesitas localization a gran escala? Planifica tu 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 añadir control de calidad humano en los casos 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 al equipo tus necesidades y las opciones disponibles.

Entrega e integración

Webhooks, envío a tu propia cola, entrega directa a tu S3 y endpoints personalizados. Cuéntanos cómo quieres que funcione tu sistema.

Volumen y capacidad

Los tamaños de los lotes, los idiomas de destino por acción y la prioridad de procesamiento son términos del contrato, 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 empresarial.
Casos de uso

Quiénes usan una API de localización de video

Plataformas con video integrado

Plataformas de LMS y educación para clientes, plataformas de creadores y de video, herramientas para 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 doblados, subtítulos y sincronización labial opcional desde un solo flujo de trabajo de localización de video.

Producción de video interna y continua

Comercio minorista y electrónico internacional, franquicias globales, editoriales de medios, universidades corporativas. Localiza videos de marketing, anuncios en video, e-learning y contenido de video de productos para cada región manteniendo la coherencia de los términos de marca, y crea una versión actualizada cuando el video original cambie.
Casos de éxito de clientes

Equipos reales, resultados cuantificables

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

Ejemplos de código para 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 simples de HTTP que usan los mismos puntos de conexión.
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 dar seguimiento a un lanzamiento completo en todos los mercados desde una sola vista. Solo necesitas ocuparte de tres grupos.

Éxito, detente aquí

merging_done
La localización ha finalizado. Vuelve a consultar el proyecto para obtener los enlaces de descarga disponibles para este.

En progreso, continúa consultando

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Más la coincidencia _done estados, una secuencia por cada 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 mostrarlos directamente a tus propios usuarios.
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

Indícanos un punto de enlace de webhook y cada cambio de estado llegará como una petición POST, para que tu fila de tareas reaccione a cada cambio en el momento en que ocurre. La entrega por webhook forma parte de la incorporación empresarial.
Leer la documentación
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Salida

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
Los mismos subtítulos en formato WebVTT para reproductores web
original_video
MP4
Tu archivo de origen tal como se guardó, para referencia
Control

Mantén la coherencia 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 únicamente en esos segmentos. Los glosarios aplican sus decisiones en el siguiente video y mantienen la coherencia de la marca en todos los mercados.

Edición a nivel de segmento

Edición a nivel de segmento
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 realiza mediante una sola solicitud de actualización.
Obtén la transcripción y sus segmentos
Actualiza el texto original y nosotros nos encargaremos de traducirlo de nuevo
Modifica el texto traducido directamente para conservar tus propias palabras
Ajusta las marcas de tiempo, agrega segmentos o elimina segmentos
Reasigna la voz asignada a cualquier hablante

Glosarios para terminología

Glosarios para terminología
Adjunta un glosario a cada proyecto para que los nombres de marca y los términos de producto se traduzcan igual 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 que un solo glosario en español funciona es-mx y es-es por igual. El registro del proyecto glossary_version, para que las modificaciones posteriores nunca alteren en silencio el trabajo ya terminado.
Entrada

Formatos de archivo compatibles

Sube cualquiera de los siete formatos de video y cuatro de audio, o envía una URL. El contenido que solo tiene audio, como los podcasts, también se puede localizar; la sincronización labial se aplica a las grabaciones que muestran un rostro en pantalla.

Vídeo

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

Audio

4 formatos
.mp3
.wav
.flac
.m4a

Metadatos antes de gastar

El endpoint de medios 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 por mercado por adelantado, ya que la localización se cobra por minuto.
Seguridad y cumplimiento normativo

Listo para la contratación en cualquier mercado

Brask Inc cuenta con la certificación SOC 2 Tipo II, opera bajo las normas del GDPR y publica el estado de sus controles en vivo en su Trust Center. 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 IA cerrado
Nunca se usa para entrenar modelos generales
Exportación completa, sin ataduras

Acceda a

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

Empresas

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 IA, humano en el circuito
Comparación

Rask API en comparación con un flujo de trabajo de localización creado 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 todas las versiones
Glosarios con versiones por par de idiomas
Guiones de buscar y reemplazar que tú mantienes
Traducciones aprobadas por tus revisores
Importado como SRT y luego sonorizado
Alineación manual con el video
Voces de los oradores en todos los mercados
Clones de voz instantáneos y personalizados
Un proveedor de voz diferente por idioma
Música de fondo y efectos
Se mantiene debajo del audio localizado
Un paso de separación de fuentes que debes crear
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, se cobra por cada video generado por 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 renderizar la versión completa
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
Se contratan y gestionan 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 hayamos aprobado?

¿La API maneja referencias culturales?

¿La API traduce el texto en pantalla?

¿Qué idiomas y regiones son compatibles?

¿Puedo conservar la voz del locutor 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 tarde

Haz tu primera solicitud hoy y contáctanos cuando necesites términos para grandes volúmenes o un idioma que nadie más tenga.