Communitygithub.com

Legendas e Subtítulos

Crie, edite, traduza e grave legendas – transcreva fala com Whisper, escreva arquivos SRT/VTT/ASS, estilize-os e grave legendas com destaque de palavra para Shorts, Reels e TikTok. Use para qualquer solicitação de legendagem, subtítulo, transcrição ou acessibilidade.

O que é Legendas e Subtítulos?

Esta skill capacita agentes de IA a lidar com todo o fluxo de trabalho de legendas e subtítulos: desde a transcrição de áudio com modelos Whisper (openai-whisper ou faster-whisper) até a criação de arquivos SRT, VTT e ASS, estilização avançada com karaokê e gravação (burn-in) usando FFmpeg. Ela suporta legendas com destaque de palavra para vídeos verticais curtos (Shorts, Reels, TikTok) e oferece regras de legibilidade como limites de linhas, velocidade de leitura e quebra em frases. A skill também cobre tradução de texto de legendas mantendo a temporização original. É útil para qualquer projeto que exija legendas acessíveis, traduzidas ou estilizadas, integrando-se perfeitamente a pipelines de edição de vídeo.

Funciona com~Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/iamaanahmad/agents-video-editing-skills/tree/HEAD/skills/captions-subtitles

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que Legendas e Subtítulos faz?

A maioria dos vídeos sociais é assistida sem som. Legendas são parte da edição, não um extra.

1. Transcrever

# openai-whisper (pip install openai-whisper)
whisper audio.mp3 --model small --language en --output_format srt --output_dir captions/

# faster-whisper (pip install faster-whisper): mais rápido, menos memória, timestamps por palavra
python - <<'PY'
from faster_whisper import WhisperModel
model = WhisperModel("small", compute_type="int8")
segments, info = model.transcribe("audio.mp3", word_timestamps=True, vad_filter=True)
for s in segments:
    for w in s.words:
        print(f"{w.start:.2f}\t{w.end:.2f}\t{w.word}")
PY

Extraia áudio limpo primeiro para melhores resultados:

ffmpeg -i video.mp4 -vn -ac 1 -ar 16000 audio.wav

O tamanho do modelo troca precisão por velocidade: base < small < medium < large. Use small ou medium para inglês, large para sotaques difíceis ou outros idiomas.

Se o roteiro já existir (você gerou a narração a partir dele), não confie na redação da transcrição. Use o texto do roteiro e use o Whisper apenas para o timing (alinhamento forçado). Isso mantém nomes e números exatos.

2. Corrigir o texto

Revise nomes próprios, nomes de produtos, números. O Whisper frequentemente os interpreta errado. Pergunte ao usuário por um glossário quando o tópico for técnico.

3. Escrever arquivos de legenda

SRT:

1
00:00:00,000 --> 00:00:02,400
A maioria dos builds falha na sexta-feira.

2
00:00:02,400 --> 00:00:05,100
Aqui está o porquê.

Regras de legibilidade:

  • Máximo 2 linhas, cerca de 42 caracteres por linha (cerca de 20 para vídeo vertical).
  • Velocidade de leitura abaixo de 17 caracteres por segundo; duração mínima do cue de 1 segundo.
  • Quebre em frases, não no meio da frase. Nunca divida um nome entre cues.
  • Os cues não devem se sobrepor. Mantenha uma lacuna de 2 frames ou nenhuma.

4. Gravar (burn-in)

# Estilização suave via force_style (SRT)
ffmpeg -i in.mp4 -vf "subtitles=captions.srt:force_style='FontName=Arial,FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=2,Alignment=2,MarginV=60'" -c:a copy out/captioned.mp4

# ASS dá controle total (destaque de palavra tipo karaokê, posições, animação)
ffmpeg -i in.mp4 -vf "ass=captions.ass" -c:a copy out/captioned.mp4

Problema de caminho no Windows: em filtros, escape o dois-pontos da unidade e use barras normais (subtitles='C\:/work/captions.srt'), ou execute o FFmpeg da pasta que contém o arquivo e use um caminho relativo.

5. Estilo com destaque de palavra para formato curto

Gere um arquivo ASS com um evento por grupo de palavras (2 a 4 palavras) e use a tag de karaokê \k ou substituição de cor por palavra para que a palavra ativa mude de cor. Aparência típica: sem serifa em negrito, texto branco, contorno preto de 3 a 4 px, palavra ativa em uma cor de destaque da marca, posicionada no terço inferior médio, não no fundo (a IU da plataforma o cobre).

Cabeçalho ASS mínimo para começar:

[Script Info]
ScriptType: v4.00+
PlayResX: 1080
PlayResY: 1920

[V4+ Styles]
Format: Name,Fontname,Fontsize,PrimaryColour,SecondaryColour,OutlineColour,BackColour,Bold,Italic,Underline,StrikeOut,ScaleX,ScaleY,Spacing,Angle,BorderStyle,Outline,Shadow,Alignment,MarginL,MarginR,MarginV,Encoding
Style: Default,Arial,72,&H00FFFFFF,&H0000D7FF,&H00000000,&H64000000,-1,0,0,0,100,100,0,0,1,4,0,2,60,60,520,1

[Events]
Format: Layer,Start,End,Style,Name,MarginL,MarginR,MarginV,Effect,Text
Dialogue: 0,0:00:00.00,0:00:01.20,Default,,0,0,0,,{\k30}Most {\k40}builds {\k30}fail

Cores no ASS são &HAABBGGRR (ordem azul-verde-vermelho, alfa primeiro).

6. Entregar

  • Versão com burn-in para plataformas sociais.
  • Um arquivo .srt ou .vtt separado para YouTube, LinkedIn e players web (espectadores podem ativar/desativar e traduzir).
  • Faixa de legenda suave em MP4: -i captions.srt -c copy -c:s mov_text.

Traduzir

Traduza o texto do cue, não o timing. Mantenha os limites de linha por idioma (alemão e finlandês são mais longos, então reajuste). Peça a um nativo para verificar quando o vídeo estiver público.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas