Communitygithub.com

svemyh/launch-video

Cria um vídeo de lançamento de produto 1080p60 em palco escuro a partir de dois insumos: um post do X (URL ou texto) e uma URL de site ou perfil de marca, usando um modelo Remotion autossuficiente. Inclui abertura com mosaico hexagonal, apresentação da marca, sequências de destaque do produto com telhas hexagonais do ecossistema, cartão de declaração principal, cartão de CTA com clique, explosão hexagonal, final com domínio digitado e trilha sonora sincronizada automaticamente. Use quando solicitado a criar um vídeo de lançamento a partir de um post e um site, transformar um tópico de funcionalidades em um anúncio de produto ou renderizar um vídeo de lançamento de marca.

O que é launch-video?

O skill `svemyh/launch-video` é uma ferramenta completa para criar vídeos de lançamento de produto no formato 1920x1080 60 fps, com duração entre 25 e 40 segundos, a partir de um post do X (URL ou texto) e do site ou perfil da marca. Ele utiliza o framework Remotion, armazenando todas as escolhas criativas em dois arquivos JSON (`brand.json` e `launch.json`), tornando o processo determinístico. O vídeo gerado inclui abertura com mosaico hexagonal, apresentação da marca, beat sequences (até 6 cenas) combinando capturas de tela e ecrãs hexagonais do ecossistema, um cartão de declaração principal, um cartão de CTA com clique de cursor, uma explosão hexagonal, um final com o domínio digitado e uma trilha sonora automaticamente sincronizada com os beats. O workflow envolve a leitura do post do X, a criação manual do perfil da marca (com curadoria visual de logotipos, capturas de tela e paleta de cores), a definição da estrutura do vídeo em `launch.json` e a renderização de um rascunho rápido para inspeção antes da versão final 1080p60. É necessário ter Bun, ffmpeg, ffprobe e ImageMagick instalados. O skill é ideal para transformar threads de funcionalidades em anúncios de produto ou criar vídeos de lançamento de marca a partir de um post e um site, com suporte para personalização completa da trilha sonora (síntese automática, perfil da marca, silencioso ou arquivo personalizado).

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/svemyh/public-skills/tree/HEAD/launch-video

Perguntar na sua IA favorita

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

Documentação

Vídeo de Lançamento

Transforma um post do X (URL ou texto) mais o site de uma marca (ou perfil salvo em brand.json) em um filme de lançamento H.264 de 25 a 40 segundos em 1920x1080 60 fps com áudio. Todas as escolhas criativas residem em dois pequenos arquivos JSON (brand.json e launch.json); a compilação, o layout, a síntese da trilha sonora e a renderização Remotion são determinísticos.

Pré-requisitos

  • Bun (bun >= 1.1)
  • ffmpeg e ffprobe no PATH (para codificação H.264/AAC, masterização loudnorm e inspeção de contato)
  • ImageMagick (magick no PATH, recomendado para conversão WebP, corte de transparência e recortes de janela)

<SKILL_DIR> abaixo se refere ao diretório que contém este SKILL.md (por exemplo ~/.claude/skills/launch-video ou ~/.agents/skills/launch-video).

Fluxo de Trabalho Completo

1. Ler o post do X (se fornecida uma URL)

bun <SKILL_DIR>/scripts/post.ts "https://x.com/<handle>/status/<id>"

Obtém o texto do post, autor, estatísticas e mídias anexadas através do endpoint público fxtwitter (sem necessidade de login ou chave de API).

2. Inicializar ou carregar o perfil da marca (brand.json)

Se você já possui um brand.json curado, reutilize-o. Quando apontado para um site ativo (por exemplo https://fomo.family ou https://acme.dev), inicialize primeiro uma pasta da marca:

bun <SKILL_DIR>/scripts/bootstrap.ts "https://fomo.family" --out ./work/brand

Em seguida, faça a curadoria visual de ./work/brand/brand.json (não pule esta etapa):

  1. Marca (mark): Inspecione inline-*.svg, favicon.svg e mark.png. O palco é escuro (#000000 ou o fundo escuro do site, como #060510), portanto a mark deve ser branca/clara sobre fundo transparente (PNG32 ou SVG). Se o ícone do site estiver sobre um quadrado escuro opaco, extraia a marca clara para transparência com ImageMagick (magick raw.png -colorspace gray -level 6%,92% alpha.png && magick -size WxH xc:white alpha.png -compose CopyOpacity -composite -trim +repage PNG32:mark-white.png) e inspecione uma amostra de visualização.
  2. Capturas de tela (screens): Veja cada imagem baixada em screens/ (ou capture rotas de produto ao vivo em DPI 2x com Playwright headless). Mantenha apenas capturas reais de interface do produto (4–8 telas), exclua texturas de fundo decorativas e escreva uma description precisa para cada tela. Adicione crop: {x, y, w, h} se uma captura de desktop tiver margens de papel de parede externas. PNGs transparentes (telefones flutuantes, cartões, notificações) são automaticamente cortados e renderizados sem moldura.
  3. Logotipos de parceiros/ecossistema (logos): Adicione ícones SVG/PNG nítidos para quaisquer plataformas, redes, modelos ou ferramentas mencionados nos beats (logos/x.svg, logos/apple.svg, logos/slack.svg, etc.). Defina "fill": "#F2F2F2" em ícones raster monocromáticos escuros para que se destaquem nas telhas hexagonais.
  4. Paleta e CTA: Confirme palette.bg, palette.fg, palette.accent, mosaicColors (6–10 tons de marca + neutros acinzentados, sem gradientes roxos), website (domínio simples, ex.: "fomo.family") e cta (big, title, body, button).

3. Escrever launch.json

{
  "brand": "./brand/brand.json",
  "open": { "tagline": "Onde traders se tornam lendas." },
  "beats": [
    { "id": "spot", "headline": "Veja no X, negocie.", "screen": "desktop-terminal", "hexes": ["x", "solana"] },
    { "id": "social", "headline": "Siga o que os melhores traders compram.", "screen": "social-feed" },
    { "id": "alerts", "headline": "Alertas em tempo real antes de movimentar.", "screen": "live-alerts" },
    { "id": "sync", "headline": "Telefone e desktop, em sincronia.", "screen": "desktop-and-phone" },
    { "id": "fund", "headline": "Financie instantaneamente com Apple Pay.", "screen": "apple-pay", "hexes": ["apple", "solana", "base"], "hexLayout": "top" }
  ],
  "cta": {},
  "outro": { "seconds": 6.5 },
  "music": "profile"
}

Regras para beats nítidos (veja references/format-guide.md):

  • Tagline (open.tagline): 5 palavras ou menos nomeando o que o produto é.
  • 4 a 6 beats: Comece com o gancho do post do X no Beat 1 e depois percorra superfícies concretas do produto. Mantenha cada headline com 2 a 5 palavras terminando em ponto para que fique em uma única linha a 64 px.
  • Correspondência exata de tela: Cada headline deve corresponder visualmente ao que é mostrado em sua screen. Nunca emparelhe um headline com uma captura de tela não relacionada.
  • Layout de hexágonos (hexLayout): "auto" (padrão: 3 logotipos empilham-se limpos à left; 1–2 ficam em sides), "top" (linha horizontal acima de uma captura y = 340) ou "sides".
  • Áudio (music): "profile" usa o arquivo music de brand.json quando configurado e, caso contrário, sintetiza uma base eletrônica minimalista de 92 bpm sincronizada com os beats e masterizada em -15 LUFS; "synth" sempre sintetiza; "none" renderiza sem áudio; ou passe um caminho para um arquivo .m4a/.mp3/.wav personalizado.

4. Renderizar um rascunho rápido, inspecionar quadros e depois renderizar o full 1080p60

# Rascunho em meia escala para QA visual (~20-40s)
bun <SKILL_DIR>/scripts/render.ts ./work/launch.json --out ./work/draft.mp4 --scale 0.5
ffmpeg -v error -y -i ./work/draft.mp4 -vf "fps=1,scale=480:-1,tile=6x6:padding=2:color=gray" -frames:v 1 ./work/draft-sheet.png

Inspecione ./work/draft-sheet.png e quadros completos dos beats principais:

  • O Quadro 0 mostra o mosaico hexagonal de borda a borda; a marca está nítida e visível no palco escuro.
  • Cada headline cabe em uma linha com margens amplas e corresponde à sua captura.
  • Renderizações de produto transparentes flutuam limpas sem caixa de borda cinza; as telhas hexagonais têm espaço de respiro limpo da captura.
  • O cursor do CTA pousa limpo no botão pill no quadro do clique.
  • O outro explode de uma parede hexagonal completa e segura o domínio digitado de forma nítida.

Corrija qualquer problema de cópia, corte ou layout em brand.json / launch.json e depois renderize na qualidade full 1920x1080 60 fps:

bun <SKILL_DIR>/scripts/render.ts ./work/launch.json --out ./work/launch.mp4
ffprobe -v error -show_entries format=duration:stream=codec_name,width,height,r_frame_rate -of default=noprint_wrappers=1 ./work/launch.mp4

Relate o caminho absoluto completo de ./work/launch.mp4 e a tabela de beats.

Habilidades Relacionadas