Gerador de legenda para vídeo
Gera legenda para vídeo automaticamente: o motor escuta a fala, converte em texto e devolve um arquivo de legenda com os tempos de cada trecho, pronto para subir no YouTube ou usar em qualquer player. Aceita vídeos de até 60 minutos e 500 MB, pagando por minuto processado.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Por que legenda deixou de ser opcional
Muita gente assiste vídeo no celular, em lugar público, com o som desligado — sem legenda, a mensagem não chega. Legenda também abre o conteúdo para pessoas surdas ou com baixa audição, ajuda quem está aprendendo o idioma e entrega texto para os buscadores indexarem. Em plataforma de curso, em rede social ou no site da empresa, o vídeo legendado trabalha mais. Fazer isso à mão, porém, é lento: transcrever, cronometrar e sincronizar linha por linha.
Do arquivo de vídeo ao SRT pronto
Você envia o vídeo em uma chamada de API. O motor separa o áudio, reconhece a fala e distribui o texto em blocos com tempo de entrada e de saída, no ritmo em que as frases acontecem. O resultado é um arquivo de legenda sincronizado, pronto para acompanhar o vídeo no YouTube, num player de curso ou num editor. O processamento é assíncrono: a chamada devolve um task_id e você busca o resultado quando terminar.
SRT ou VTT: qual escolher
SRT é o formato clássico, aceito praticamente em todo lugar — YouTube, players de desktop, editores de vídeo. VTT (WebVTT) é o padrão da web moderna, usado pelos players HTML5. Na dúvida, SRT resolve; se o vídeo vai rodar embutido no seu site, VTT tende a se encaixar melhor. Os dois carregam o mesmo conteúdo — texto e tempos — e você pode converter um no outro sem perder nada.
Revisar antes de publicar vale o esforço
O reconhecimento de fala acerta a maior parte, mas nomes próprios, marcas e termos técnicos podem sair trocados — ainda mais com áudio de qualidade irregular. A boa notícia: SRT e VTT são arquivos de texto simples, que abrem em qualquer editor. Uma passada de cinco minutos corrigindo os pontos sensíveis deixa a legenda com cara de trabalho profissional, e é bem mais rápido que legendar do zero.
Quanto custa e quando chega
O preço publicado é US$ 0,079 por chamada mais US$ 0,01 por minuto de vídeo: legendar meia hora fica em torno de US$ 0,38, sempre em dólares. Os limites são 500 MB e 60 minutos por arquivo. A capacidade está em fase de implantação — a página já mostra as condições reais, mas o envio de tarefas ainda não foi aberto. Sem cadastro nem assinatura quando abrir: compra direta, uso avulso.
Casos de uso
Reels e vídeos curtos com legenda
Márcia Regina Oliveira, nutricionista em Curitiba, publica vídeos de dicas no Instagram. A legenda automática garante que quem rola o feed no ônibus, sem som, entenda tudo — e o engajamento agradece.
Curso online acessível
Uma escola de idiomas de Belo Horizonte legendou as videoaulas do curso inteiro para atender alunos com deficiência auditiva e cumprir requisitos de acessibilidade da plataforma onde vende.
Vídeo institucional da empresa
A Distribuidora Horizonte Verde apresenta a operação logística em vídeo no site. Com o arquivo VTT no player, o conteúdo funciona em qualquer navegador, com ou sem áudio ligado.
Palestra gravada de evento
Carlos Eduardo Souza organiza encontros de tecnologia em Porto Alegre e publica as palestras no YouTube. Cada vídeo de 45 minutos ganha legenda por cerca de US$ 0,53, sem trabalho manual.
Perguntas frequentes
A legenda sai em português?
Sim: a legenda reproduz o idioma falado no vídeo. Fala em português gera legenda em português, com a grafia e os tempos organizados automaticamente.
Posso corrigir a legenda depois de gerada?
Pode e deve, quando houver nomes próprios ou termos técnicos: SRT e VTT são texto puro, editáveis no bloco de notas ou em qualquer editor de legendas.
Qual é o preço para legendar meia hora de vídeo?
US$ 0,079 pela chamada mais 30 vezes US$ 0,01, total de US$ 0,379 — cobrado por uso, em dólares, sem pacote mínimo.
O que acontece com meu vídeo depois que a legenda é gerada?
Ele cumpre a função dentro da tarefa e ponto: não vai para nenhuma galeria, não treina nada e não é compartilhado. Tratamento de dado restrito à finalidade, como manda a LGPD.
A ferramenta já aceita envios?
Ainda não: está em fase de implantação. O preço e os limites publicados aqui já são os definitivos, e não existe fila paga nem acesso antecipado — é aguardar a abertura.
E se eu quiser a legenda gravada na própria imagem?
Isso é outra capacidade do KIT: ela recebe o vídeo e o arquivo SRT e devolve tudo embutido nos quadros, para redes sociais que não aceitam legenda separada.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/video/subtitles \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio":"https://ejemplo.com/audio.mp3"}'const res = await fetch("https://api.kit.forhosting.com/video/subtitles", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio": "https://ejemplo.com/audio.mp3"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/subtitles",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio": "https://ejemplo.com/audio.mp3"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/subtitles", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio":"https://ejemplo.com/audio.mp3"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio":"https://ejemplo.com/audio.mp3"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/subtitles", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"audio": "https://ejemplo.com/audio.mp3"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.subtitles",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |