Vídeo de lançamento
Renderizador: 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. Os pesos do Kokoro (~350 MB) e whisper small.en (~480 MB) são baixados para~/.cache/lvkna primeira execução de voz.npx launch-video-skills new <nome>: crialaunch-videos/scenes/<nome>/index.htmlcomlaunch-videos/kit/ao lado.npx launch-video-skills render <scene.html> [flags]: escreve em./out/.- Se o download do Chromium travar →
export LVK_CHROME=/caminho/para/chrome-headless-shell(qualquer build local). - Python do macOS falha com SSL →
export SSL_CERT_FILE=$(python3 -c 'import certifi;print(certifi.where())').
O que diferencia um bom vídeo de lançamento de "AI slop" está em references/craft.md. Leia antes de storyboard.
Etapas
- Marca e fatos do produto ao vivo. Busque o site com Playwright. Registre headline, subhead, nomes de recursos, exemplos de conteúdo do próprio site (threads de demonstração, prompts, código, listas de issues) e CTAs. Leia estilos computados para família da fonte/weight/letter-spacing e cores de pixel de amostra para bg/text/accent (variáveis CSS ficam desatualizadas). Salve o SVG do logotipo e quaisquer imagens em
launch-videos/scenes/<nome>/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 no pacote (Inter, JetBrains Mono, Space Grotesk). Nunca invente métricas, clientes, integrações ou UI. Se algo estiver marcado como planejado/preview, omita ou rotule. Se não conseguir obter exemplos reais de UI, pare e informe. 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 cena, extraídas do texto do site; total de 20–40 s. Use
sayquando a forma falada diferir (pontos, siglas:say: 'Build A.I. agents'). 5–6 cenas, uma ideia cada: gancho (produto ou headline 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 suaves (0.2–0.6). Ferramentas de desenvolvedor:'pulse'e batidas. Voz é opcional; apenas música é comum no X. - Escreva
launch-videos/scenes/<nome>/index.htmlcom referência a../../kit/kit.cssekit.js. Comece a partir do modelo gerado. Marque as cenas comdata-shot="id"sem --in/--out codificados. As falas de voz vão emSCENE.voice.lines(chave, shot, texto/say, at/depois, pausapausebatidas). Vincule batidas à fala comdata-on="key",data-on="key:palavra",data-edge="e". ChameK.layout()após definir SCENE, depois derive as batidas JS a partir deK.at/K.end/K.shot: velocidade de digitação = comprimento do texto / duração da fala, clique do cursor na palavra-chave, dicas sonoras 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. Nenhumfilter: blurgrande,backdrop-filterou modos de mesclagem em tela cheia. - Loop de revisão.
npx launch-video-skills render launch-videos/scenes/<nome>/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 uma audição humana). Leia o PNG da folha para: texto sobre imagens ocupadas, legibilidade de texto pequeno, quadros vazios, colisões em transições, digitação terminando antes do fim da cena, realce de sintaxe quebrado.--stills t1,t2para verificações em resolução total. Itere com notas de gosto ("muito rápido", "não ficou claro o que aconteceu") em vez de tentativas únicas. - Renderize e verifique.
npx launch-video-skills render launch-videos/scenes/<nome>/index.html --workers 4. Em seguida:ffprobe: h264 + aac, duração esperada.volumedetect: média entre −19 e −17 dB, máximo abaixo de −1 dB.- Sincronia: transcreva o MP4 final com carimbos de tempo de palavras do faster-whisper small.en; a primeira palavra de cada linha dentro de ~0,2 s da linha do tempo impressa no log. As palavras-chave coincidem com as batidas visuais.
- Continuidade: compare quadros entre fronteiras de workers (contagem de quadros / workers).
- Entrega. 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 humano. Ofereça texto de post que evite alegações de "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.