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

Una sola API para todo el proceso de localización de video: transcribe el audio, tradúcelo, doblalo con voces de IA o clones de voz, añade sincronización labial y descarga los subtítulos. Sube el archivo 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 labial 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 flujo de trabajo de 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 un idioma de destino para recibir de vuelta el video doblado.

Traducción de video

Traduce videos a más de 135 idiomas y opciones regionales con una sola subida, 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 un clon de voz personalizado guardado en los idiomas compatibles.

Sincronización labial

Sincroniza el movimiento de los labios con el discurso doblado como una tarea independiente en un proyecto de doblaje, previa verificación de rostros. Se factura por separado por cada generación de video completo.

De voz a texto y transcripción de video

Transcripciones con etiquetas de hablantes y marcas de tiempo por segmento 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, para tu reproductor, aplicación o software de edición.

Localización de video

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

De 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 clones de voz.

Escala sin límites

Sin límites de velocidad, sin cuotas de concurrencia y sin restricciones por clave. Procesa todo tu catálogo y cada idioma de destino en paralelo.
Míralo 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, utilizando las voces clonadas de los hablantes y conservando 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 subida hasta el video finalizado

Cada flujo de trabajo de la API de Rask AI sigue el mismo patrón, y la creación del proyecto inicia todo el proceso. Utiliza el endpoint /generate para volver a generar el contenido después de editar la transcripción o las voces.
1

Sube tu vídeo

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

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

Crea el proyecto

Pasa el ID de medios como video_id y un idioma de destino. Opcionalmente, adjunta tu propia transcripción o un glosario. El procesamiento comienza de inmediato.

POST /v2/projects
3

Recoge el resultado

Consulta el estado hasta que llegue a merging_done; luego descarga el video con doblaje, 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 observada, 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.

Un idioma, una voz, un método de entrega o un volumen que el catálogo público aún no cubra: nuestro equipo analiza tus requerimientos 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 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 desarrollan con la API de Rask AI

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 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 entrega que ya utilizas: doblaje, clonación de voz, subtítulos y sincronización labial para los videos de tus clientes, con la opción de que tus revisores editen la transcripción antes de la entrega.

Producción de video interna y continua

Retail y comercio electrónico internacional, franquicias globales, medios editoriales y universidades corporativas. Localiza videos de capacitación, de productos y de marketing para cada mercado a través de una sola integración.
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 de la API de Rask AI

Un ciclo completo en cada idioma: autenticar, subir, crear un proyecto, esperar y recopilar los archivos. Cada página de funciones 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 son ejemplos simples de HTTP que usan los mismos puntos de conexión.
Progreso

Cómo reporta el progreso un proyecto de la API de Rask AI

Cada proyecto, sin importar para qué lo uses, pasa por los mismos estados documentados. Muéstrales a tus usuarios una barra de progreso por etapas y toma acción únicamente en tres grupos.

Éxito, detente aquí

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

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. Estos se adaptan perfectamente a una interfaz de progreso por etapas.

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 usuario. Cada error también devuelve un identificador legible por máquina.
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, subtítulos y transcripción desde un solo proyecto

Un proyecto terminado ofrece el video con doblaje, dos pistas de audio, dos archivos de subtítulos y la transcripción. En los planes elegibles, la voz traducida viene por separado en formato WAV, junto con 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 planes elegibles, 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
/transcription
JSON
Texto original, traducción, etiqueta del 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 conserva 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 ejecución.

Edición a nivel de segmento

Edición a nivel de segmento
Cada proyecto expone su transcripción como segmentos accesibles, por lo que una corrección requiere una simple solicitud de actualización en lugar de un proyecto nuevo.
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 para que los nombres de marcas, los nombres de productos y los términos técnicos se traduzcan de la misma manera en cada proyecto, o manténlos 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

Siete formatos de video y cuatro de audio, además de enlaces de YouTube, Google Drive, S3, Vimeo y URL directas. Cualquier archivo incompatible se rechaza antes de consumir minutos.

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 multimedia devuelve la duración, el tamaño del archivo, el códec de video, la velocidad de fotogramas, 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 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, opera bajo el RGPD y publica el estado en vivo de sus controles en su Centro de Confianza para tu equipo de seguridad.

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

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

La transcripción, la traducción, las voces, la sincronización labial y los subtítulos suelen provenir de proveedores diferentes. Así es como funciona el mismo proceso de video armado de dos maneras distintas.
Lo que necesitas
Rask API
Armado por partes
Transcripción con etiquetas de orador
Incluido
Una API de conversión de voz a texto
Traducción a más de 135 idiomas y opciones regionales
Incluido
Una API de traducción
Voces AI y clonación de voz
Incluido
Un proveedor de conversión de texto a voz y otro de clonación de voz
Audio de fondo debajo de la nueva voz
Mezclado automáticamente
Separación de fuentes más tu propia mezcla
Sincronización labial
Una tarea separada en el mismo proyecto
Un proveedor de sincronización labial
Subtítulos en formato .srt y .vtt
Incluido
Tu propio generador de archivos
Corregir una línea
Regenerar los segmentos modificados
Volver a ejecutar el proceso para el archivo
Control de terminología
Glosarios
Posprocesamiento personalizado
Facturación
Por minuto de video, una sola bolsa de minutos
Por carácter, por hora y por solicitud entre diferentes proveedores
Límites de velocidad
Ninguno
Lo que cada proveedor establezca
Por favor, rellena este formulario y el equipo de « Rask AI » se pondrá en contacto contigo en breve.
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?

¿Cómo se calcula el precio de la API de Rask AI?

¿Existen 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 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.