API de tradução de vídeo para mais de 135 idiomas

Envie um vídeo e receba-o de volta em todos os idiomas que você precisar. A API REST de tradução de vídeo transcreve a fala, traduz e dubla, e depois retorna o vídeo traduzido, os arquivos de legendas e o texto traduzido para revisão.
Mais de 135 idiomas de destino
Legendas em .srt e .vtt
REST + SDK para Python
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
Usado por equipes globais
Recursos

O que a API de tradução de vídeo faz em um único projeto

Transcreva, traduza e duble seus vídeos automaticamente por meio de uma única API. Revise o texto traduzido, mantenha a consistência da terminologia com glossários e baixe o formato de saída que cada plataforma precisa. Adicione sincronização labial opcional, cobrada separadamente.

Tradução para mais de 135 idiomas

Envie um vídeo e um idioma de destino para traduzir vídeos para pt-br, es-mx, fr-ca ou qualquer outro local compatível. O idioma de origem é detectado automaticamente.

Detecção de locutores e vozes por locutor

Os locutores são separados automaticamente e cada um recebe uma voz no idioma de destino, para que entrevistas e painéis continuem fáceis de acompanhar. Substitua qualquer atribuição ou informe a quantidade, se você souber.

Vozes originais ou vozes de IA

Use a voz original de cada locutor com a Clonagem de voz instantânea ou reaproveite uma Clonagem de voz personalizada salva para ter uma voz de apresentador consistente em todos os vídeos. Ambas as opções estão disponíveis nos idiomas de destino compatíveis; as predefinições de voz de IA cobrem o restante.

Sincronização labial

Ative a sincronização labial para ajustar o movimento da boca à fala traduzida, como uma tarefa opcional em qualquer projeto concluído, cobrada separadamente. A detecção de rosto é executada primeiro, para que você a aplique apenas onde ela funcionar.

Áudio de fundo preservado

Música, som ambiente e efeitos são separados da fala e misturados novamente sob a nova locução, para que os espectadores ouçam a produção original em um idioma diferente.

Legendas em .srt e .vtt

Cada vídeo traduzido vem com um arquivo de legenda em ambos os formatos, no idioma de destino e sincronizado com a fala traduzida.

Controle de terminologia com glossários

Nomes de marcas, nomes de produtos e termos técnicos são traduzidos da mesma forma em todos os vídeos e idiomas, ou permanecem no idioma original de propósito.

Texto traduzido que você pode editar

Acesse a transcrição com o texto original e o traduzido lado a lado, corrija uma linha ou um carimbo de data/hora e gere novamente. Os revisores corrigem o texto e ninguém precisa gravar áudio novamente.

Cresça sem limites

Sem limites de taxa, sem cota de concorrência e sem limitação por chave. Envie seu catálogo completo e traduza grandes volumes para vários idiomas em paralelo.
Veja na prática

O que a API de tradução de vídeo retorna

O mesmo clipe, traduzido por meio do fluxo de trabalho nesta página. Locutores originais na fonte, fala traduzida em francês, alemão, português e espanhol, com o áudio de fundo intacto.
Bandeira do Reino Unido
En
Bandeira da França
Sex
Bandeira da Alemanha
De
Bandeira de Portugal
Pt
Bandeira da ES
É
Fluxo de trabalho

Três etapas do envio ao vídeo traduzido

A criação de um projeto inicia a tradução. Use o endpoint /generate mais tarde para dublar um projeto novamente após editá-lo.
1

Carregue seu vídeo

Envie um arquivo como dados de formulário multipart ou publique um link do YouTube, Google Drive, S3, Vimeo ou qualquer URL de download direto. Você obtém um ID de mídia e os metadados técnicos antes de gastar qualquer coisa.

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

Crie um projeto por idioma

Passe o ID de mídia como video_id e um idioma de destino. Crie um projeto para cada idioma necessário a partir do mesmo envio, com sua própria transcrição ou um glossário, caso tenha um.

POST /v2/projects
3

Atribua vozes e faça um novo dublagem

Leia o status até que ele alcance merging_done e, em seguida, baixe o vídeo traduzido e os arquivos de legenda para esse idioma.

GET /v2/projects/{project_id}
O tempo de processamento varia conforme o projeto. Para tradução em lote, crie um projeto por idioma de destino a partir do mesmo envio, acompanhe cada um pela API e baixe os arquivos quando tudo estiver pronto.
Criado para você

Precisa de mais do que o catálogo? Fale com a nossa equipe.

Novos idiomas, vozes personalizadas, seu próprio método de entrega, maior capacidade: quando uma integração de tradução de vídeo precisa de algo fora do catálogo público, nossa equipe analisa suas necessidades e as opções disponíveis.

Idiomas e vozes

Precisa de um idioma ou voz que não está no catálogo público? Fale com a nossa equipe sobre o que você precisa e conheça as opções disponíveis.

Entrega e integração

Webhooks, envio para a sua própria fila, entrega direto no seu S3 e endpoints personalizados. Diga-nos como o seu sistema prefere receber os dados.

Volume e capacidade

Tamanhos de lote, idiomas de destino por ação e prioridade de processamento são termos contratuais, e não limites fixos do produto.

Segurança e hospedagem

A residência de dados, SSO e SAML, regras de retenção e suporte a revisões de segurança são gerenciados como parte da integração empresarial.
Casos de uso

Quem usa uma API de tradução de vídeo

Plataformas com vídeo integrado

Plataformas de LMS e educação de clientes, plataformas de criadores e vídeos, ferramentas de webinars e eventos virtuais, SaaS de hospedagem de vídeos e fluxo de trabalho, plataformas de adoção digital, live shopping e ferramentas de vídeo com IA que ajudam os usuários a criar vídeos ou gerá-los a partir de texto. Seus usuários já enviam conteúdos em vídeo para o seu produto. Com a API, eles traduzem os vídeos no mesmo lugar, para vários idiomas, e a tradução de vídeos se torna um dos seus recursos pagos.

Agências de localização e produção

Conecte a tradução de vídeo ao fluxo de trabalho que você já usa e mantenha a etapa de revisão humana. Os linguistas revisam o texto traduzido segmento por segmento, para que sua equipe entregue conteúdos em mais idiomas para os clientes com as mesmas pessoas.

Produção de vídeo contínua interna

Varejo internacional e e-commerce, franquias globais, editoras de mídia, universidades corporativas. Integre a tradução ao seu fluxo de publicação para que os vídeos de treinamento e os conteúdos de produtos cheguem a todos os mercados em diferentes idiomas, e regenere uma versão em outro idioma sempre que o vídeo original mudar.
Histórias de clientes

Equipes reais, resultados mensuráveis

Como as empresas localizam vídeos com o Rask, em seus próprios números.
seta
seta
Código

Exemplos de código da API de tradução de vídeo

Um exemplo completo em cada idioma: autentique, faça o upload uma vez, crie um projeto por idioma de destino, aguarde e colete o vídeo traduzido e os arquivos de legenda.
# 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 é o SDK oficial. As abas Node, PHP e cURL são exemplos simples de HTTP para os mesmos endpoints.
Progresso

Como o progresso da tradução é informado

Cada projeto passa por uma máquina de estados documentada, para que seus usuários acompanhem o processo em uma barra de progresso real e dividida em etapas para cada versão de idioma. Você só precisa agir em três grupos.

Sucesso, pare por aqui

merging_done
A tradução foi concluída. Consulte o projeto mais uma vez para obter os links de download disponíveis para ele.

Em andamento, continue verificando

created
uploading
transcription_started
separate_background_started
determine_speakers_started
translation_started
voiceover_started
merging_started
Mais o correspondente _done estados.

Erro, parar e relatar

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

Ou pule as consultas completamente

Aponte para um endpoint de webhook e cada mudança de estado chega como um POST, para que sua fila reaja a cada alteração no momento em que ela acontece. O envio por webhook faz parte da integração empresarial.
Ler a documentação
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
Saída

Vídeo, áudio e legendas traduzidos

Baixe o vídeo traduzido e as legendas em SRT e VTT para cada idioma de destino. Nos planos elegíveis, você também pode baixar a voz traduzida separadamente ou misturada com o áudio de fundo original.
Campo
Formato
O que é
translated_video
MP4
O vídeo dublado, pronto para ser publicado
voiceover
WAV
Apenas a fala traduzida, sem fundo, para a sua própria mixagem
translated_audio
WAV
Fala traduzida misturada com o áudio de fundo original
translation_srt_path
.srt
Legendas no idioma de destino
translation_vtt_path
.vtt
As mesmas legendas em formato WebVTT, para players web
original_video
MP4
Seu arquivo de origem armazenado, para referência
Controle

revise o texto traduzido e faça a redublagem apenas do que mudou

Comece com a tradução automática ou traga sua própria tradução aprovada como um arquivo SRT ao criar o projeto. Revise o roteiro antes de publicar e regenere apenas o que mudou. A redublagem via API é cobrada com base nos segmentos alterados.

Edição por segmentos

Edição por segmentos
Cada projeto exibe sua transcrição em segmentos, com o texto original e o traduzido lado a lado, para que uma correção exija apenas uma solicitação de patch.
Obtenha a transcrição e seus segmentos
Atualize o texto original e nós fazemos a tradução novamente
Edite o texto traduzido diretamente para manter as suas próprias palavras
Ajuste os tempos, adicione segmentos ou exclua segmentos
Altere a voz associada a qualquer falante

Glossários para termos específicos

Glossários para termos específicos
Anexe um glossário a um projeto para que nomes de marcas, nomes de produtos e termos técnicos sejam traduzidos da mesma forma em todas as versões de idiomas ou permaneçam sem tradução de propósito.

Um glossário funciona para um par de idiomas e vale para todas as variações regionais desse idioma de destino, ou seja, um único glossário em espanhol atende pt-br e pt-pt igualmente. O registro do projeto versão_do_glossário, garantindo que edições futuras nunca alterem o que já foi finalizado sem que você perceba.
Entrada

Formatos de arquivo compatíveis

Envie qualquer um dos sete formatos de vídeo e quatro de áudio, ou cole um link. Arquivos não suportados são rejeitados na hora, antes de consumir qualquer minuto de tradução.

Vídeo

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

Áudio

4 formatos
.mp3
.wav
.flac
.m4a

Informações antes de gastar

O sistema informa a duração, o tamanho, o formato do vídeo, a taxa de quadros, a resolução e os detalhes do áudio. Valide o arquivo e saiba o custo antes de começar, já que a tradução de vídeos é cobrada por minuto.
Segurança e conformidade

Pronto para a sua avaliação de segurança

A Brask Inc possui certificação SOC 2 Tipo II, segue as normas da GDPR e atualiza o status de segurança em tempo real na Central de Confiança. Seus vídeos são processados em um ambiente de IA totalmente seguro e fechado.

Certificações

SOC 2 Tipo II
GDPR
Membro da CAI e C2PA

Criptografia

TLS 1.2 em trânsito
AES-256 em repouso
Chaves gerenciadas SSE-S3
Rotação de chaves a cada 12 meses no mínimo

Seu conteúdo

Ambiente de IA fechado
Nunca usado para treinar modelos gerais
Exportação completa, sem retenção de dados

Acesso

SSO e SAML
Controle de acesso baseado em funções
Credenciais de cliente OAuth 2.0

Corporativo

Opções de residência de dados
SLAs personalizados
Gerente de contas dedicado

Direitos de voz

Vozes sintéticas com direitos de uso
Clonagem de voz baseada em consentimento
Controles de segurança de IA, humano no circuito
Comparação

Rask API comparada a um sistema criado por você

Uma API de texto comum traduz apenas palavras. Traduzir vídeos exige reconhecimento de fala, sincronização de tempo, vozes e edição de áudio. Veja como fazer isso de duas maneiras diferentes.
O que você precisa
Rask API
Montado a partir de partes
Transcrição, tradução, síntese, mixagem
Uma chamada
De três a quatro fornecedores e todo o código para integrá-los
Sincronizar a tradução com o vídeo
Incluído
Sua própria lógica de sincronização
Detecção de locutores e vozes por locutor
Incluído
Um fornecedor de diarização mais sua própria lógica de atribuição de voz
Música de fundo e efeitos preservados
Incluído
Uma etapa de separação de fontes que você cria e ajusta
Legendas em .srt e .vtt
Incluído
Gerado a partir dos seus próprios dados de tempo
Sincronização labial
Opcional, cobrado à parte
Um fornecedor diferente
Corrigir apenas uma linha traduzida
Reduble esse trecho e pague apenas por ele
Execute o processo novamente e pague pelo arquivo
Consistência de terminologia
Glossários versionados
Pré e pós-processamento mantidos por você
Limites de taxa
Nenhum
O que for exigido pelo seu fornecedor mais rigoroso
Um idioma fora do catálogo
Discutido com nossa equipe
Depende de cada fornecedor
Perguntas frequentes

API de tradução de vídeo: dúvidas frequentes

Não conseguiu encontrar o que procura? Entre em contato com o departamento de vendas.

Existe alguma API que traduz vídeos de forma automática?

Como obtenho acesso à API e uma chave de API?

Como faço a autenticação na API de tradução de vídeos?

A API é síncrona ou assíncrona?

Quais são os limites de taxa?

Para quantos idiomas posso traduzir meus vídeos?

Posso traduzir o mesmo vídeo para vários idiomas de uma só vez?

Quanto tempo leva a tradução de vídeos?

Quais formatos de arquivo são compatíveis?

Recebo legendas além do vídeo traduzido?

Posso editar o texto traduzido antes de publicar?

O ChatGPT pode traduzir um vídeo?

Quanto custa a tradução de vídeos?

Comece a dublar em uma tarde

Faça sua primeira solicitação hoje e fale conosco quando precisar de condições para grande volume ou de um idioma que mais ninguém tem.