Communitygithub.com

lançamento-de-vídeo-skills

Criação de vídeos de lançamento SaaS sem necessidade de API, a partir de um site de produto: HTML/CSS → quadros do Playwright → ffmpeg + TTS Kokoro local.

O que é lançamento-de-vídeo-skills?

Esta skill permite gerar vídeos de lançamento de produtos SaaS diretamente a partir do site do produto, sem depender de APIs externas. Ela usa Playwright para capturar o site (headline, subhead, nomes de recursos, exemplos de UI, etc.), reconstrói a interface em HTML/CSS puro, e combina ffmpeg com um motor de texto-para-fala local (Kokoro) para produzir o vídeo final. A skill é ideal para desenvolvedores que desejam criar vídeos promocionais de alta qualidade sem depender de serviços pagos ou de API, mantendo controle total sobre o processo. Ela suporta Node 18+, Python 3.10+ e ffmpeg, e inclui comandos para setup, scaffolding de novos projetos, renderização e loop de revisão com verificação de sincronia e áudio. O pacote `launch-video-skills` npm gerencia todo o fluxo: desde a extração de assets do site até a renderização final, com suporte a múltiplos workers e análise de qualidade (volume, sincronia de fala, continuidade visual).

Funciona com~Claude Code✓Codex CLI✓Cursor
npx skills add anudeepadi/launch-video-skills

Perguntar na sua IA favorita

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

Documentação

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/lvk na primeira execução de voz.
  • npx launch-video-skills new <nome>: cria launch-videos/scenes/<nome>/index.html com launch-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

  1. 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.
  2. Roteiro, depois storyboard. Uma ou duas linhas curtas por cena, extraídas do texto do site; total de 20–40 s. Use say quando 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.
  3. Escreva launch-videos/scenes/<nome>/index.html com referência a ../../kit/kit.css e kit.js. Comece a partir do modelo gerado. Marque as cenas com data-shot="id" sem --in/--out codificados. As falas de voz vão em SCENE.voice.lines (chave, shot, texto/say, at/depois, pausa pause batidas). Vincule batidas à fala com data-on="key", data-on="key:palavra", data-edge="e". Chame K.layout() após definir SCENE, depois derive as batidas JS a partir de K.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. Nenhum filter: blur grande, backdrop-filter ou modos de mesclagem em tela cheia.
  4. 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 com say e 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,t2 para 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.
  5. 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).
  6. Entrega. Entregue o caminho do MP4. Nunca sobrescreva um corte anterior (mv -n ou 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 do lib/tts.py do pacote; mencione apenas se o usuário quiser uma leitura mais humana.

Individual skills in this repo

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

Habilidades Relacionadas