API de Rask AI para doblaje de video, traducción y transcripción

Una sola API para todo el proceso de localización de videos: transcribe la voz, tradúcela, dóblala con voces de IA o clones de voz, añade sincronización de labios y descarga subtítulos. Sube el contenido una vez, crea un proyecto para cada idioma de destino y obtén el video, las pistas de audio, los subtítulos y la transcripción.
Clonación de voz
Sincronización de labios y subtítulos
REST + SDK de Python
three requests, start to finish
OAuth 2.0
# 1. exchange your client id and secret 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 - file, or a YouTube, Drive, S3, Vimeo or direct link
curl -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"link": "https://youtu.be/...", "name": "Q3 launch"}'

# 3. create the project - transcription, translation and dubbing start
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\": \"es-mx\"}"
GET /v2/projects/{project_id}
polling, 10s
# Poll until merging_done, then collect the files
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  | jq '{status, translated_video, voiceover, translation_srt_path}'
Utilizado por equipos globales
Funciones

Todo lo que hace la API de Rask AI

Una sola API cubre todo el proceso del video. Cada función opera con el mismo proyecto, la misma autenticación y la misma facturación por minuto, y cada una cuenta con su propia página con detalles y código.

Doblaje con IA

Transcripción, traducción, voces y mezcla en un solo proyecto. Envía un video y el idioma de destino para recibir el video doblado.

Traducción de video

Traduce videos a más de 135 idiomas y variantes regionales con una sola carga, y revisa el texto traducido en cada idioma.

Clonación de voz

Conserva la voz de cada hablante con la Clonación de Voz Instantánea o reutiliza una Clonación de Voz Personalizada guardada, en los idiomas compatibles con esta función.

Sincronización labial

Sincroniza el movimiento de los labios con el discurso doblado como una tarea independiente en un proyecto con doblaje, tras una verificación de rostro. Se cobra por separado por cada video generado por completo.

Voz a texto y transcripción de video

Transcripciones con etiquetas de los hablantes y marcas de tiempo por segmentos en 75 idiomas de origen, con detección automática de idioma.

Subtítulos en formato .srt y .vtt

Ambos formatos en cada proyecto terminado, en el idioma de destino, listos para tu reproductor, aplicación o software de edición.

Localización de video

Opciones de idiomas regionales y glosarios para términos de marca y traducciones aprobadas, para que cada mercado reciba su propia versión.

Texto a voz para video

Envía tu propio guion con marcas de tiempo y obtén una locución sincronizada con la imagen, ya sea con voces de IA o con clones de voz.

Crece sin límites

Sin límites de velocidad, cuotas de concurrencia ni restricciones por clave. Procesa todo tu catálogo y cada idioma de destino en paralelo.
Velo en acción

Lo que devuelve la API de Rask AI

Un clip de origen, doblado a través de la API al inglés, francés, alemán, portugués y español, con las voces clonadas de los hablantes y el audio de fondo original.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
Flujo de trabajo

Tres solicitudes desde la carga hasta el video finalizado

Todos los flujos de trabajo de la API de Rask AI siguen el mismo patrón y al crear el proyecto se inicia el proceso completo. Usa el endpoint /generate para volver a generar el contenido después de editar la transcripción o las voces.
1

Sube tu video

Envía un archivo de video o audio como datos de formulario multipart, o publica un enlace de YouTube, Google Drive, S3, Vimeo o cualquier URL directa. Obtendrás un ID de contenido multimedia y los metadatos del archivo antes de gastar nada.

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

Crear el proyecto

Envía el identificador del video como video_id y un idioma de destino. Opcionalmente, puedes adjuntar tu propia transcripción o un glosario. El procesamiento comienza de inmediato.

POST /v2/projects
3

Obtén el resultado

Consulta el estado hasta que llegue a merging_done; después, descarga el video doblado, las pistas de audio, los archivos de subtítulos y la transcripción.

GET /v2/projects/{project_id}
El tiempo de procesamiento varía según la duración del video, la cantidad de oradores y el idioma de destino. En una prueba, un video de 3:47 se dobló en 165 segundos.
Diseñado a tu medida

¿Necesitas algo que no está en el catálogo? Habla con nuestro equipo.

Si buscas un idioma, una voz, un método de entrega o una capacidad que el catálogo público aún no incluye, nuestro equipo revisa tus necesidades y las opciones disponibles contigo.

Idiomas y voces

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

Entrega e integración

Webhooks, integración con tu propia fila, entrega directa a tu S3 y puntos de conexión personalizados. Cuéntanos cómo quieres recibir tus datos.

Volumen y capacidad

El tamaño de los lotes, los idiomas de destino por acción y la prioridad de procesamiento se definen por contrato, no son límites fijos del producto.

Seguridad y alojamiento

El almacenamiento de datos, el inicio de sesión único (SSO y SAML), las reglas de retención y el soporte para revisiones de seguridad se gestionan durante la incorporación empresarial.
Casos de uso

Quiénes usan la API de Rask AI

Plataformas con contenido en video

Plataformas de educación y LMS, plataformas de creación y video, herramientas de seminarios web y eventos virtuales, SaaS de flujo de trabajo y alojamiento de video, plataformas de adopción digital y compras en vivo. Ofrece doblaje, subtítulos y transcripciones en otros idiomas como funciones de tu propio producto.

Agencias de localización y producción

Conecta Rask al flujo de trabajo que ya utilizas: doblaje, voces clonadas, subtítulos y sincronización de labios para los videos de tus clientes, con la opción de que tus revisores editen la transcripción antes de la entrega.

Producción continua de video interna

Comercio electrónico internacional, franquicias globales, medios de comunicación y universidades corporativas. Adapta videos de capacitación, productos y marketing para cada mercado mediante una sola integración.
Casos de éxito

Equipos reales, resultados medibles

Cómo las empresas localizan sus videos con Rask AI, en sus propias palabras y números.
flecha
flecha
Código

Ejemplos de código de la API de Rask AI

Un ciclo completo en cada idioma: autenticación, carga, creación de proyecto, espera y descarga de archivos. Cada página de función incluye ejemplos para su propio flujo de trabajo.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

async def main():
    # the client exchanges your credentials for tokens and refreshes them
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

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

    job = await client.create_project(data=schemas.ProjectCreate(video_id=media.id, dst_lang="es-mx"))
    while job.status is not enums.ProjectStatus.MERGING_DONE:
        await asyncio.sleep(10)
        job = await client.get_project(project_id=job.id)

    print(job.translated_video, job.translation_srt_path, job.translation_vtt_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}"}

with open("launch.mp4", "rb") as f:
    media = requests.post(f"{API}/api/library/v1/media", headers=h,
                          params={"kind": "video"}, files={"data": f}).json()
while media["status"] == "processing":
    time.sleep(5)
    media = requests.get(f"{API}/api/library/v1/media/{media['id']}", headers=h).json()

pid = requests.post(f"{API}/v2/projects", headers=h,
                    json={"video_id": media["id"], "dst_lang": "de-de"}).json()["id"]
while (p := requests.get(f"{API}/v2/projects/{pid}", headers=h).json())["status"] != "merging_done":
    time.sleep(10)

for field in ("translated_video", "translated_audio", "translation_srt_path"):
    print(field, p[field])   # presigned links, valid for one hour
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());

let media = await call('POST', '/api/library/v1/media/link', { link: 'https://youtu.be/...' });
while (media.status === 'processing') { await sleep(5000); media = await call('GET', `/api/library/v1/media/${media.id}`); }

let p = await call('POST', '/v2/projects', { video_id: media.id, dst_lang: 'ja-jp' });
while (p.status !== 'merging_done') { await sleep(10000); p = await call('GET', `/v2/projects/${p.id}`); }

const { translated_video, voiceover, translation_vtt_path } = p;
console.log({ translated_video, voiceover, translation_vtt_path });
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. upload by link
VIDEO_ID=$(curl -s -X POST https://api.rask.ai/api/library/v1/media/link \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"link": "https://youtu.be/..."}' | jq -r .id)

# 3. create the project once the media status is ready
ID=$(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\": \"pt-br\"}" | jq -r .id)

# 4. wait for merging_done, then read the links
until [ "$(curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" | jq -r .status)" = merging_done ]; do
  sleep 10
done
curl -s https://api.rask.ai/v2/projects/$ID -H "Authorization: Bearer $TOKEN" \
  | jq '{translated_video, translated_audio, translation_srt_path}'
shell script
token to download
<?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']];

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

$p = $json($http->post('/v2/projects', ['headers' => $h, 'json' => [
    'video_id' => $media['id'], 'dst_lang' => 'fr-fr']]));
while ($p['status'] !== 'merging_done') {
    sleep(10);
    $p = $json($http->get("/v2/projects/{$p['id']}", ['headers' => $h]));
}
echo $p['translated_video'], PHP_EOL, $p['translation_srt_path'], PHP_EOL;
Guzzle 7
plain HTTP
Python es el SDK oficial. Las pestañas de Node, PHP y cURL muestran ejemplos sencillos de HTTP usando los mismos puntos de conexión.
Progreso

Cómo un proyecto de la API de Rask AI muestra su progreso

Sin importar para qué lo uses, cada proyecto pasa por los mismos estados documentados. Muestra a tus usuarios una barra de progreso por etapas y concéntrate en solo tres grupos.

Proceso exitoso, aquí termina

merging_done
Todos los archivos de salida están listos. Vuelve a solicitar el proyecto para obtener los enlaces de descarga, que son válidos durante una hora.

En proceso, continúa consultando

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Más los correspondientes _done estados. Estos se adaptan perfectamente a una interfaz de usuario de progreso por etapas.

Error, detén el proceso e informa

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 claros como para mostrárselos directamente a tu usuario. Además, cada error incluye un código legible por máquinas.
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 bien, omite las consultas por completo

Indícanos un punto de enlace webhook y cada cambio de estado llegará como un POST, para que tu fila responda a cada cambio al instante. El envío por webhook forma parte de la incorporación para empresas.
Leer la documentación
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Resultado

Video, audio, subtítulos y transcripción desde un solo proyecto

Un proyecto finalizado incluye el video doblado, dos pistas de audio, dos archivos de subtítulos y la transcripción. En los planes compatibles, la voz traducida viene en formato WAV independiente, además de la mezcla completa con el fondo original.
Campo
Formato
Qué es
translated_video
MP4
El video doblado, listo para publicar
voiceover
WAV
Solo voz traducida, en los planes compatibles, para tu propia mezcla
translated_audio
WAV
Voz traducida mezclada con el audio de fondo original
translation_srt_path
.srt
Subítulos en el idioma de destino
translation_vtt_path
.vtt
Los mismos subtítulos en formato WebVTT para reproductores web
/transcription
JSON
Texto original, traducción, etiqueta de orador y marcas de tiempo por segmento
Control

Edita la transcripción y vuelve a generar solo lo que cambió

La automatización hace la mayor parte del trabajo y tu equipo toma la decisión final. Corrige una línea, una marca de tiempo o una voz, vuelve a generar y paga solo por los segmentos modificados, con un mínimo de un minuto por proceso.

Edición por fragmentos

Edición por fragmentos
Cada proyecto divide su transcripción en segmentos accesibles, por lo que hacer una corrección es tan sencillo como enviar una solicitud de actualización en lugar de crear un proyecto nuevo.
Obtén la transcripción y sus fragmentos
Modifica el texto original y nosotros lo volvemos a traducir
Modifica el texto traducido directamente para conservar tus propias palabras
Ajusta las marcas de tiempo, agrega fragmentos y elimina fragmentos
Reasigna la voz asignada a cualquier locutor

Glosarios de terminología

Glosarios de terminología
Adjunta un glosario para asegurarte de que los nombres de marcas, productos y términos técnicos se traduzcan igual en cada proyecto, o bien para mantenerlos en su 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 para es-mx y es-es por igual. El proyecto registra glossary_version, por lo que las ediciones posteriores nunca modifican en segundo plano el trabajo ya terminado.
Entrada

Formatos de archivo compatibles

Siete formatos de video y cuatro de audio, además de enlaces de YouTube, Google Drive, S3, Vimeo y URL directas. Si un archivo no es compatible, se rechaza antes de consumir minutos.

Video

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

Audio

4 formatos
.mp3
.wav
.flac
.m4a

Información antes de gastar

El sistema indica la duración, el tamaño, el códec de video y audio, la velocidad de fotogramas, la resolución y los canales. Valida el archivo y calcula el costo de antemano, ya que los proyectos se cobran por minuto.
Seguridad y cumplimiento normativo

Listo para compras y revisión de seguridad

Brask Inc cuenta con la certificación SOC 2 Tipo II, cumple con el RGPD y publica el estado de sus controles en tiempo real en su Centro de confianza para tu equipo de seguridad.

Certificaciones

SOC 2 Tipo II
RGPD
Miembro de CAI y C2PA

Cifrado

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

Tu contenido

Entorno de IA 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
Acuerdos de nivel de servicio (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 con supervisión humana
Comparación

API de Rask AI frente a un proceso creado con varios proveedores

La transcripción, la traducción, las voces, la sincronización de labios y los subtítulos suelen requerir proveedores distintos. Así funciona el mismo flujo de video hecho de dos maneras.
Lo que necesitas
Rask API
Armado por partes
Transcripción con identificación de hablantes
Incluido
Una API de voz a texto
Traducción a más de 135 idiomas y variantes regionales
Incluido
Una API de traducción
Voces de IA y clonación de voz
Incluido
Un proveedor de conversión de texto a voz y otro de clonación
Audio de fondo debajo de la nueva voz
Mezclado de forma automática
Separación de pistas y mezcla propia
Sincronización labial
Una tarea independiente en el mismo proyecto
Un proveedor de sincronización de labios
Subtítulos en formato .srt y .vtt
Incluido
Tu propio sistema para guardar archivos
Corregir una sola línea
Volver a generar solo los fragmentos modificados
Volver a procesar todo el archivo
Control de términos
Glosarios
Edición posterior personalizada
Facturación
Por minuto de video, en una sola plataforma
Por carácter, por hora y por solicitud en todos los proveedores
Límites de uso
Ninguno
Lo que establezca cada proveedor
Por favor, llena este formulario y el equipo de Rask AI se pondrá en contacto contigo pronto.
Preguntas frecuentes

API de Rask AI: preguntas frecuentes

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

¿Qué es la API de Rask AI?

¿Qué API forman parte de la API de Rask AI?

¿Cómo puedo obtener acceso a la API de Rask AI?

¿Cómo funciona la autenticación?

¿Hay un SDK disponible?

¿Qué idiomas admite la API?

¿Cuál es el precio de la API de Rask AI?

¿Hay límites de velocidad?

¿La API es compatible con webhooks?

¿Qué formatos de archivo puedo subir?

¿Puedo usar mi propia transcripción o traducción?

¿La API funciona en tiempo real?

¿Es segura la API de Rask AI?

Empieza a doblar 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.