Communitygithub.com

legenda-impacto

Legenda "impacto" para vídeos verticais 9x16 no Premiere Pro — gráficos editáveis (.mogrt), animação palavra por palavra aleatória, linha pequena + linha grande (branca ou vermelha) alternando com legenda reta, fonte condensada em maiúscula, sempre dentro da margem segura. Use quando o usuário pedir para legendar/editar um vídeo com "legenda impacto", "o modelo de legenda" ou "o padrão de legenda". Funciona a partir da transcrição do Premiere e serve para qualquer vídeo.

O que é legenda-impacto?

O skill "legenda-impacto" automatiza a criação de legendas de alto impacto para vídeos verticais 9x16 (Reels, Shorts, TikTok) diretamente no Premiere Pro. Ele gera blocos de texto com animação palavra por palavra, alternando entre linhas pequenas e grandes, com a opção de texto reto (plain), e aplica a cor vermelha (#F2381C) em palavras fortes ou números. O skill utiliza ExtendScript para interagir com o Premiere e Python para processamento offline (planejamento de blocos, geração de scripts e verificação de margens). A saída são arquivos .mogrt (Essential Graphics) que garantem editabilidade, e todo o texto é mantido dentro da margem de segurança de 80%. É útil para criadores de conteúdo que desejam legendas dinâmicas e estilizadas sem edição manual repetitiva. Suporta apenas Premiere Pro (versão 2027/27.0 ou superior) e requer a instalação de fontes como Impact e Anton.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/gbrand-lab/premiere-legendas-skills/tree/HEAD/skills/legenda-impacto

Perguntar na sua IA favorita

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

Documentação

Legenda Impacto

Modelo de legenda de alto impacto para Reels/Shorts/TikTok. Quando o usuário pedir para legendar um vídeo com este modelo, aplique-o conforme descrito abaixo, sem pedir os parâmetros novamente.

Pré-requisitos

  • Premiere Pro (testado no 2027/27.0; usa ExtendScript) e Python 3.9+ com pip install -r requirements.txt (Pillow).
  • Uma forma de executar ExtendScript no Premiere: um MCP do Premiere (execute_extendscript) ou o bridge de arquivos CEP — veja docs/PREMIERE-BRIDGE.md na raiz do repositório.
  • Fontes: Impact (vem no Windows e no macOS) e, opcional, Anton. Se a fonte não for encontrada, defina CAPTION_FONT_DIR.
  • Pacote de .mogrt palavra por palavra (*_WbW.mogrt) em assets/ — não vem no repositório (veja assets/LEIA-ME.md). São modelos Essential Graphics com os controles "Anim Speed"/"Out Animation" e um campo de texto.

Parâmetros (fonte da verdade: style.json e scripts/plan_blocks.py)

  • Formato 9x16 (1080x1920). Texto em MAIÚSCULO, centralizado, y_center 0,54 (um pouco abaixo do meio).
  • Fonte Impact. Linha pequena 56 px (branca), linha grande 140 px, reta 76 px; encolhe para caber (min 60%).
  • Bloco de 1 a 6 palavras, cortado por pontuação, pausa > 0,45 s ou duração > 3,3 s; nunca termina em palavra solta (o, de, que...).
  • Tipos de bloco: big_below (pequena em cima + grande embaixo, padrão), big_above (palavra forte grande em cima), single_big, single_small e reta (1 linha, ou 2 se for longa, tamanho padrão, branca). Cada bloco vira reta com 40% de chance, no máximo 2 seguidos do mesmo tipo.
  • Vermelho #F2381C na linha grande quando tem número/dinheiro/palavra forte (lista strong), no máximo 2 vermelhos seguidos, força 1 se passaram 4 blocos sem.
  • Animação: .mogrt palavra por palavra, sorteada por bloco entre os que existirem em assets/, nunca repetindo a anterior; as duas linhas do mesmo bloco usam a mesma. Saída em corte seco (Out Animation desligada). Anim Speed 150 (200 se o bloco < 1 s).
  • Margem segura (regra fixa): nada de texto fora do title safe do Premiere (80% x 80% = 10% de margem em cada lado). Implementado em make_graphics_script.py (layout_text + clamp_y; safe_margin_x/y e safe_tolerance no style.json): largura útil = 1 - 2*0,10 - 0,02 = 78% da largura (842 px em 1080). Linha que não cabe: 1) encolhe até min_scale (60%); 2) se ainda não couber, quebra em 2 (até 3) linhas com corte equilibrado e encolhe só o necessário; o tamanho é arredondado para BAIXO, então a linha mais larga nunca passa da margem. O bloco inteiro também fica entre 10% e 90% da altura.
  • Entrega: editar direto na sequência que o usuário indicar (sem criar cópia), a menos que ele peça cópia.

Passo a passo

  1. Conferir o projeto: confirme com o usuário qual projeto/sequência está aberta e deixe a sequência alvo ativa (o ExtendScript trabalha na sequência ATIVA).
  2. Transcrição: o usuário exporta o JSON do Premiere (Texto > Transcrição > menu ... > Exportar; fica em Documentos, ".json").
  3. Plano: PYTHONIOENCODING=utf-8 python -I <skill>/scripts/plan_blocks.py <transcricao.json> <pasta>/blocks.json. Mostre o resumo e as palavras [conferir] (confiança < 0,75). Corrija erros no blocks.json (campos small/big).
  4. Trilhas: liste as trilhas de vídeo. V1 = vídeo. Use V2 (índice 1) para linhas pequenas, V3 (índice 2) para grandes/retas e uma trilha NOVA acima de tudo (índice = número atual de trilhas) para as vermelhas. Se houver clipes de legenda/título antigos cobrindo o quadro, desligue-os.
  5. Gerar lotes: python -I <skill>/scripts/make_graphics_script.py blocks.json <pasta>/lote.js --tracks 1,2,<indiceVermelha> [--seed N] -> lote_01.js... (8 clipes cada) e lote_clips.json.
  6. Conferir a margem ANTES de rodar: python -I <skill>/scripts/check_margins.py <pasta>/lote_clips.json — tem que dar fora da margem: 0 (maior largura <= 78%).
  7. Rodar cada lote no Premiere (ExtendScript, campo script, IIFE com return, só JSON.parse/stringify), um de cada vez, esperando ok=8/8. Se o bridge oscilar, verifique a conexão antes de CADA lote. Nunca mande tudo junto (dezenas de clipes de uma vez travam o Premiere).
  8. Vermelho: liste os clipes da trilha vermelha e aplique o efeito "Equilíbrio de cor (RGB)" (em inglês "RGB Color Balance") com Vermelho 242, Verde 56, Azul 28. Só uma vez por clipe — reaplicar duplica o efeito e escurece o vermelho (se rodar de novo, apague e recrie os clipes da trilha vermelha).
  9. Conferir: leia de volta texto/fonte/tamanho/posição dos clipes e rode check_margins.py de novo; exporte 3-4 quadros (um vermelho, um reto, um de 2 linhas) se o export de frame funcionar, senão peça ao usuário para olhar com as guias de margem ligadas. Salve o projeto.
  10. Entregar: diga o que foi feito, as palavras duvidosas e que não viu em movimento.

Ajustes rápidos

QueroMexer em
Tamanhos/fonte/posiçãostyle.json (mogrt_size_small/big/plain, mogrt_font, y_center, gap)
Margemsafe_margin_x/y, safe_tolerance no style.json
Mais/menos legenda reta--plain-prob (padrão 0,4)
Outra aleatoriedade--seed
Mais/menos vermelho, blocos maiores/menoresRULES em plan_blocks.py ou --config regras.json
Corrigir textoblocks.json e refazer os lotes

Alternativa: vídeo transparente (só se o Premiere não aceitar .mogrt)

render_captions.py blocks.json out.mov --duration <s> --fps 30 gera ProRes 4444 com alfa (entrada "pop" de 5 quadros, vermelho nativo, não editável). Colocar na timeline como mídia importada. Render de 45 s leva ~5 min.

Limites conhecidos

  • A animação roda no tempo do template, não no instante exato de cada palavra falada.
  • Palavrão censurado ("P*RRA") não é automático (editar no blocks.json).
  • Corte de frase pode ficar estranho; revisar a lista de blocos antes de rodar.
  • A cor do .mogrt não é alterável por script (por isso o efeito de cor nos vermelhos).

Individual skills in this repo

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

Habilidades Relacionadas