Como embutir legenda no vídeo
Embute a legenda no próprio vídeo: você envia o arquivo e a legenda em SRT, e recebe o vídeo com o texto gravado na imagem. Como a legenda vira parte dos quadros, aparece em qualquer player, rede social ou WhatsApp — sem depender de botão de CC.
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.
Legenda embutida ou arquivo separado?
A legenda em arquivo separado é flexível: o espectador liga e desliga, e dá para trocar o idioma. Mas ela depende do player aceitar — e status do WhatsApp, stories e muitos feeds simplesmente ignoram arquivos de legenda. A legenda embutida resolve isso na marra: o texto está pintado na imagem e aparece sempre, em qualquer aparelho. O custo dessa garantia é não poder desligar depois. Para conteúdo de rede social, quase sempre compensa.
O que acontece com o seu arquivo
A tarefa recebe duas coisas: o vídeo e o arquivo SRT com os tempos. O motor desenha cada linha de texto sobre os quadros correspondentes e gera um vídeo novo, com a legenda fazendo parte da imagem. O processamento é assíncrono — você envia pela API, recebe um task_id e busca o resultado quando estiver pronto, ou aponta um webhook para ser avisado. O arquivo final sai pronto para publicar onde quiser.
Onde a legenda gravada salva o dia
No status do WhatsApp e nos stories, que não têm suporte a legenda externa. No feed, onde o vídeo roda mudo por padrão e ninguém toca no volume. Na TV da recepção da empresa, que exibe o vídeo institucional em loop sem áudio. No arquivo encaminhado de grupo em grupo, que precisa se explicar sozinho. Se o vídeo vai circular fora do seu controle, a legenda embutida é a única que com certeza chega junto.
Custo por minuto e disponibilidade
O preço é por uso: US$ 0,077 por chamada mais US$ 0,0045 por minuto de vídeo — embutir legenda em uma hora inteira fica em torno de US$ 0,35, em dólares. Cada arquivo pode ter até 500 MB e 60 minutos. Importante ser claro: a capacidade está em fase de implantação e ainda não aceita execuções; o que você vê aqui são as condições reais de lançamento, não promessa de marketing.
Casos de uso
Promoção no status do WhatsApp
A Padaria Pão Dourado grava um vídeo curto anunciando a promoção de sexta e publica no status. Com a legenda embutida, quem espia o status no trabalho, sem som, entende a oferta do mesmo jeito.
Entrega de social media
Thiago Barbosa Lima edita vídeos para clientes em Recife. Antes de entregar, embute a legenda aprovada em cada corte — o cliente publica direto, sem descobrir depois que a plataforma ignorou o SRT.
Aula que roda em qualquer lugar
Uma professora de curso preparatório distribui as aulas por link direto. Com o texto gravado na imagem, a legenda aparece igual no celular antigo do aluno e na TV da sala.
Vídeo institucional em loop
A TecnoSul Soluções Digitais exibe um vídeo de apresentação na TV da recepção, sem áudio. A legenda embutida conta a história completa para quem espera na sala.
Perguntas frequentes
Preciso já ter o arquivo de legenda?
Sim: esta tarefa recebe o vídeo mais um SRT e junta os dois. Se você ainda não tem a legenda, o KIT tem uma capacidade que gera o SRT a partir da fala — depois é só embutir aqui.
Dá para tirar a legenda depois?
Não: o texto vira parte da imagem, quadro a quadro. Guarde sempre o vídeo original sem legenda — é ele que permite gerar novas versões no futuro.
O vídeo perde qualidade no processo?
O arquivo é reprocessado para gravar o texto, e o objetivo é manter a qualidade visual próxima do original. Em tela de celular, onde esse tipo de vídeo costuma viver, a diferença tende a passar despercebida.
Vocês emitem nota fiscal do valor pago?
A cobrança é internacional, em dólares, via PayPal — você recebe o comprovante do PayPal, não uma nota fiscal brasileira. Se o gasto é da empresa, vale alinhar com seu contador a forma de lançamento.
Meu vídeo legendado fica acessível para outras pessoas?
Não. O resultado é entregue a você dentro da tarefa; nada é publicado em link aberto nem reutilizado para outro fim.
Por que ainda não consigo executar?
Porque a capacidade está em implantação: preço, limites e comportamento já estão definidos e publicados, mas a fila de execução ainda não foi aberta ao público.
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/burn-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/burn-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/burn-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/burn-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/burn-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.burn_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. |