Vídeo de lançamento
Renderer: o pacote npm launch-video-skills. Contrato completo da cena: https://github.com/anudeepadi/launch-video-skills#scene-contract
npx launch-video-skills setup: uma vez por máquina (Chromium headless + pacotes de voz Python). Requer Node 18+, Python 3.10+, ffmpeg. Pesos Kokoro (~350 MB) e whisper small.en (~480 MB) baixados para~/.cache/lvkna primeira execução de voz.npx launch-video-skills new <name>: crialaunch-videos/scenes/<name>/index.htmlcomlaunch-videos/kit/ao lado.npx launch-video-skills render <scene.html> [flags]: escreve em./out/.- Download do Chromium trava →
export LVK_CHROME=/path/to/chrome-headless-shell(qualquer build local). - Python do python.org no macOS falha SSL →
export SSL_CERT_FILE=$(python3 -c 'import certifi;print(certifi.where())').
O que separa um bom vídeo de lançamento de "AI slop" está em references/craft.md. Leia antes de storyboard.
Passos
- Marca e fatos do produto ao vivo. Busque o site com Playwright. Grave texto literal do título, subtítulo, nomes de recursos, conteúdo de exemplo do próprio site (threads de demonstração, prompts, código, listas de issues) e CTAs. Leia estilos computados para família/peso/ espaçamento de fonte e amostras de cores de pixel para fundo/texto/destaque (variáveis CSS ficam obsoletas). Salve o logotipo SVG e quaisquer imagens em
launch-videos/scenes/<name>/assets/. Use a fonte do site apenas se sua licença permitir redistribuição; caso contrário, use a fonte mais próxima incluída (Inter, JetBrains Mono, Space Grotesk). Nunca invente métricas, clientes, integrações ou UI. Se algo está marcado como planejado/pré-visualização, omita ou rotule. Se você não conseguir obter exemplos reais de UI, pare e diga. Coloque a URL de origem e a data em um comentário no topo da cena. - Roteiro, depois storyboard. Uma ou duas linhas curtas por tomada, extraídas do texto do site; 20–40 s no total. Use
sayquando a forma falada diferir (pontos, acrônimos:say: 'Build A.I. agents'). 5–6 tomadas, uma ideia cada: gancho (produto ou título na tela em até 2 s) → primeiro momento de uso → produto em ação (UI real reconstruída em HTML a partir do exemplo do próprio site, nunca uma captura de tela) → segunda capacidade → 3 pilares ou como funciona → CTA com logotipo. Marcas calmas:music.style: 'ambient', SFX suave (0,2–0,6). Ferramentas de desenvolvedor:'pulse'e hits. Voz é opcional; só música é comum no X. - Escreva
launch-videos/scenes/<name>/index.htmlem relação a../../kit/kit.cssekit.js. Comece a partir do modelo scaffolded. Marque as tomadasdata-shot="id"sem --in/--out codificados. Linhas de voz vão emSCENE.voice.lines(key, shot, text/say, at/after,pausebeats). Prenda beats à fala comdata-on="key",data-on="key:word",data-edge="e". ChameK.layout()após definir SCENE, então derive beats JS deK.at/K.end/K.shot: velocidade de digitação = comprimento do texto / duração falada, clique do cursor na palavra chave, dicas de som de digitação a partir das mesmas constantes.onFrame(t)deve ser puro em t. Transformações JS vão em wrappers sem classe de animação CSS. Semfilter: blur,backdrop-filtergrandes ou modos de mesclagem em tela cheia. - Loop de revisão.
npx launch-video-skills render launch-videos/scenes/<name>/index.html --sheet 1. Cada linha<- ASR heard:é uma possível pronúncia incorreta: reescreva comsaye verifique novamente (whisper às vezes ouve incorretamente áudio correto; sinalize para audição humana). Leia o PNG da planilha para: texto sobre imagens ocupadas, legibilidade de texto pequeno, quadros vazios, colisões durante transições, digitação terminando antes do fim da tomada, destaque de sintaxe quebrado.--stills t1,t2para verificações em resolução total. Itere com observações de gosto ("muito rápido", "não está claro o que aconteceu") em vez de uma única tentativa. - Renderize e verifique.
npx launch-video-skills render launch-videos/scenes/<name>/index.html --workers 4. Então:ffprobe: h264 + aac, duração esperada.volumedetect: média cerca de −19 a −17 dB, máximo abaixo de −1 dB.- Sincronia: transcreva o MP4 final com timestamps de palavras faster-whisper small.en; a primeira palavra de cada linha dentro de ~0,2 s da linha do tempo impressa no log. Palavras chave chegam nos beats visuais.
- Continuidade: compare quadros entre limites de worker (contagem de quadros / workers).
- Entregue. Entregue o caminho do MP4. Nunca sobrescreva um corte anterior (
mv -nou um novo--out). Diga claramente que voz e música são sintetizadas e não foram verificadas por ouvido. Ofereça texto pós que evite alegações "feito em um prompt". Vozes pagas (ElevenLabs, OpenAI, Google) são uma troca dentro dolib/tts.pydo pacote; mencione apenas se o usuário quiser uma leitura mais humana.