Início → Blog → Legendas SRT e VTT automáticas a partir de vídeos e webinars
Legendas SRT e VTT automáticas a partir de vídeos e webinars
Legendas aumentam o tempo assistido, tornam o conteúdo acessível sem som e ajudam os buscadores a entender o vídeo. Digitá-las à mão é lento — veja como obter arquivos SRT e VTT prontos de forma automática.
A diferença entre SRT e VTT
Os dois formatos são texto com marcações de tempo, e as diferenças são mínimas:
- SRT é o mais difundido: YouTube, editores de vídeo e a maioria dos players entendem. O tempo usa vírgula:
00:00:12,500. - VTT (WebVTT) é o padrão da web e do player HTML5, e aceita estilos e posicionamento. O tempo usa ponto:
00:00:12.500.
A regra é simples: para subir em plataformas de vídeo, use SRT; para o player do seu próprio site, VTT.
Passo 1. Extraia o áudio do vídeo
Não é preciso enviar o vídeo inteiro — a faixa de áudio basta e é dezenas de vezes menor. Um comando resolve:
ffmpeg -i webinar.mp4 -vn -acodec libmp3lame -q:a 5 webinar.mp3
Um webinar de uma hora fica com cerca de 25 MB depois dessa conversão — exatamente dentro do limite de tamanho por requisição.
Passo 2. Gere as legendas em uma requisição
O formato é definido pelo parâmetro response_format — o serviço devolve o arquivo pronto, sem que você precise quebrar o texto em falas:
from openai import OpenAI
client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="sua chave")
with open("webinar.mp3", "rb") as f:
srt = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="srt",
)
open("webinar.srt", "w", encoding="utf-8").write(srt)
Para a web, muda uma palavra:
vtt = client.audio.transcriptions.create(
model="whisper-1", file=f, response_format="vtt",
)
Pelo terminal é igualmente curto:
curl https://voicesscribe.com/v1/audio/transcriptions \
-H "Authorization: Bearer sua chave" \
-F file=@webinar.mp3 -F model=whisper-1 -F response_format=srt \
-o webinar.srtPasso 3. Ligue as legendas ao player
No HTML5 basta uma linha dentro da tag de vídeo:
<video controls src="webinar.mp4">
<track kind="subtitles" src="webinar.vtt" srclang="pt" label="Português" default>
</video>
Nas plataformas de vídeo, o arquivo SRT é enviado na seção de legendas — depois é só revisar o texto reconhecido.
Gravações longas: como contornar o limite
Se a gravação não cabe em 25 MB, divida-a e junte as legendas deslocando as marcações de tempo:
ffmpeg -i longo.mp3 -f segment -segment_time 1800 -c copy parte%03d.mp3
Envie cada parte separadamente e, ao juntar, some o deslocamento do trecho aos tempos. Para blocos de meia hora são poucas linhas de código, e o limite deixa de atrapalhar.
Como deixar as legendas legíveis
- Dê a terminologia. Nomes de produtos e dos palestrantes vão no
prompt— nas legendas eles aparecem escritos corretamente. - Informe o idioma se ele é único:
language="pt"elimina erros raros de detecção. - Revise o resultado. Legendas automáticas economizam horas, mas o ajuste final de pontuação e termos rende mais feito a olho.
- Use verbose_json se quiser suas próprias regras de quebra de linha: ali estão os segmentos com o tempo exato de início e fim.
Teste com as suas próprias gravações. O cadastro leva um minuto e os minutos gratuitos bastam para avaliar a qualidade.
Obter uma chave de API grátisPerguntas frequentes
Posso enviar o arquivo de vídeo diretamente?
É mais prático extrair a faixa de áudio: ela é dezenas de vezes menor e sobe muito mais rápido. Um comando do ffmpeg resolve.
As legendas servem para o YouTube?
Sim, o formato SRT é aceito pelo YouTube e por outras plataformas de vídeo sem conversão.
E se a gravação tiver mais de uma hora?
Divida em partes de 20 a 30 minutos, transcreva cada uma e junte as legendas deslocando as marcações de tempo.
As marcações de tempo são precisas?
São precisas o bastante para assistir: as falas coincidem com o áudio. Para precisão quadro a quadro em edição, o ajuste fino costuma ser feito à mão.
Há suporte a legendas em outros idiomas?
Sim, 99 idiomas são reconhecidos e o idioma é detectado sozinho. Em gravações bilíngues, o melhor é processar os trechos separadamente.
Leitura relacionada
- Como transcrever gravações de reuniões e ter atas utilizáveis — Transforme gravações do Zoom, Teams e Meet em texto pesquisável e atas estruturadas: onde está o arquivo, como transcrevê-lo e como extrair decisões e tarefas.
- Transcrição de podcast: show notes, capítulos e episódios encontráveis — Como transcrever um episódio automaticamente e transformar o texto em show notes, capítulos e uma página que os buscadores conseguem ler. Com código e checklist.
- Como transcrever a gravação de uma chamada — Guia passo a passo para transformar a gravação de uma ligação em texto pela API em poucos minutos. Com exemplos em Python e C# e a lista de erros mais comuns.