Communitygithub.com

kelvinmacaco/montagem-short

Use quando o criador enviar o MP3 da narração de um Short já roteirizado. Transcreve e nivela a voz, busca vídeos gratuitos (Pexels) e trilha sonora (Pixabay sem Content ID), corta os clipes, escreve o generate.py das cenas com lib_short, aplica a fita VHS, verifica os quadros, renderiza com HyperFrames e entrega o vídeo na Área de Trabalho.

Qu'est-ce que montagem-short ?

Esta skill automatiza a montagem de um vídeo curto (Short) a partir de um áudio de narração já roteirizado. Ela é parte do fluxo `short-start` e utiliza ferramentas como HyperFrames para renderização, `lib_short` para elementos visuais e scripts Python para transcrição e nivelamento de voz. O processo começa com a cópia do MP3, transcrição das palavras e nivelamento do áudio. Em seguida, busca vídeos gratuitos no Pexels via ferramenta automatizada e baixa trilhas sonoras do Pixabay que estejam livres de Content ID. Os clipes são cortados no formato vertical (1080×1920) ou em janela de TV (1000×750) e organizados em cenas. O `build/generate.py` é gerado a partir de um template, usando a biblioteca `lib_short` para adicionar texto, animações, legendas e um índice personalizado com o handle do criador. A skill também aplica efeitos de fita VHS e loops no final do vídeo. Após a geração, são feitas verificações automáticas com o HyperFrames, correção de erros comuns, snapshots para conferência visual e renderização final com parâmetros de qualidade específicos (CRF 19, AAC 192k). O vídeo é então copiado para a Área de Trabalho e entregue com títulos, descrição e comentários para as plataformas TikTok e YouTube. Plataformas suportadas: ambiente Windows com PowerShell, HyperFrames CLI, FFmpeg, Node.js e Python.

Compatible avec✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kelvinmacaco/kit-shorts-virais/tree/HEAD/.claude/skills/short-build

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Montagem de um Short

Faz parte do fluxo short-start. Detalhes de mídia na short-media, de animação na short-animation e de conferência e render na short-review. Apoio: hyperframes, hyperframes-cli e media-use.

Leia antes RULES.md e o ROTEIRO.md do projeto. O kit.json do projeto precisa ter o handle (o @ escolhido pelo criador). Se estiver vazio ou for "@SEU_CANAL", pergunte ao criador antes de continuar.

1. Narração

  • Copie o mp3 para assets\audio\narracao_raw.mp3.
  • Procure pausas longas com silencedetect=n=-40dB:d=0.6. Encurte as que caírem no gancho e, se o tom for energético, as maiores que 0,8 s. Use a receita de emenda em tools\ffmpeg_recipes.md.
  • Transcreva com build\transcribe.py, gerando assets\audio\narracao_words.json com o tempo de cada palavra.
  • Nivele: python -I -X utf8 build\level_voice.py <mp3> <words.json> video\assets\audio\narracao.mp3.
  • Copie hyperframes.json, package.json, meta.json, AGENTS.md e CLAUDE.md de template\video\ para video\. Ajuste o id do meta.json.

2. Mídia

  • Rode tools\pexels_search.js no navegador embutido, numa página do pexels.com, com várias buscas de uma vez.
  • Baixe as miniaturas, monte uma folha (ffmpeg tile) e olhe antes de escolher.
  • Descarte logos, marcas, camisas de time e o que não combina com a fala.
  • Baixe com curl -L -A "Mozilla/5.0" -e https://www.pexels.com/ para assets\video\stock\.
  • Trilha: do Pixabay, só faixas sem "Content ID Registered", em video\assets\audio\musica.mp3.
  • Efeitos sonoros: veja tools\sfx\README.md; ficam em video\assets\sfx\.
  • Corte os clipes com as receitas (vertical 1080×1920 ou janela de TV 1000×750) em video\assets\video\. Faça o clipe invertido do gancho para o loop.
  • Não chame uma função de shell de cut, porque isso esconde o comando cut do sistema.

3. Cenas (build\generate.py)

  • Parta do template\build\generate.py, que é comentado. Use SCENES = [(nome, início, fim)] com os tempos das palavras; dentro de cada cena os tempos são locais (0 = início da cena).
  • Use as peças do lib_short:
    • texto: kline/words_js/slam/punch/shake/label;
    • números: contadores com onUpdate;
    • like e compartilhar: like_block/plane_svg;
    • interação: comment_card/follow_card/step_badge.
  • Animação em toda cena. Se a lista pedir progresso, faça um indicador temático como cena sobreposta (ex.: pavio_scene da biblioteca, um pavio que queima a cada item e explode no clímax).
  • Legendas: write_captions(WORDS, TOTAL, SKIP, alt_from, alt_top). O SKIP cobre os trechos em que a tipografia da cena já mostra a fala.
  • Índice: write_index(TOTAL, SCENES, SFX, dur_voz, 0.1, handle=HANDLE). O HANDLE vem do kit.json, via build.ps1.
  • A marca @ fica abaixo da legenda (WM_TOP). Não posicione a marca à mão.
  • Loop: a última cena termina com o clipe invertido no quadro 0 do gancho e o mesmo título.
  • O final segue o tom do vídeo: num vídeo pesado, escuro e lento, sem estouros.
  • Regras do HyperFrames:
    • class="clip" + data-start/data-duration;
    • não anime visibility ou opacity do próprio clip, só de um elemento interno;
    • use immediateRender:false em fromTo posteriores;
    • cada <audio> tem id e track próprios;
    • vídeos sempre muted;
    • linhas SVG com pathLength="1" para o efeito de desenhar.

4. Gerar, conferir e renderizar

  • Ajuste $alvos no build\build.ps1: as cenas com filmagem, .fv (tela cheia) e .tv (janela de TV).
  • Rode powershell -ExecutionPolicy Bypass -File build\build.ps1 -Duracao <TOTAL>. Nunca passe a saída por Select-Object -First.
  • npx --yes hyperframes@<versão> check --json: corrija os erros. São esperados, e podem ficar:
    • contraste da marca translúcida;
    • título do loop curto.
  • Tire snapshots (snapshot -o <pasta> --no-end --at "...") e olhe as folhas de contato. Procure:
    • texto saindo da tela;
    • legenda ilegível;
    • elementos encobertos;
    • cena parada.
  • Renderize com render --quality standard -o renders\<nome>_master.mp4 e meça com ebur128=peak=true (meta: cerca de −13,5 LUFS, pico abaixo de −2 dBTP).
  • Copie para a Área de Trabalho com x264 CRF 19, AAC 192k e +faststart.
  • Confira o loop: o quadro 0 e o último lado a lado (hstack) devem ser iguais.
  • Escreva video\REVIEW.md com as decisões, o que foi medido e o que foi só olhado ("ninguém ouviu o som").

5. Entrega

Envie o vídeo, os títulos (TikTok e YouTube, com 5 # cada), a descrição e o comentário para fixar. Lembre o horário de postagem e peça os prints de 48 h.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills associés