Vídeo de lançamento de site
Responda no idioma do usuário. O texto do vídeo em inglês, a menos que solicitado de outra forma.
Saída: <marca>_launch.mp4 no diretório de trabalho (1920x1080, 30fps, H.264 + AAC).
Custo: sem créditos de geração. Nunca chame generate_video / generate_audio para este fluxo de trabalho – tudo é renderizado com código no sandbox Higgsfield.
Requisitos
- Conector MCP Higgsfield (fornece
sandbox_exec,media_upload,media_confirm,get_workflow_instructions). - Uma ferramenta de navegador (navegador embutido ou Claude no Chrome) para ler o site.
Informações a obter (pergunte apenas se estiver faltando)
- URL do site (obrigatório).
- Opcional: cupom/desconto, se é produto próprio do usuário ou promoção paga (promoção → lembre-o de adicionar
#adao publicar), estilo musical, vertical 9:16.
Passo 1 – Ler o site
- Navegue até a URL, então execute JS
document.body.innerText(aguarde ~2s para SPAs). Colete: H1, subtítulo, 4-6 títulos de funcionalidades, preço, texto de oferta/cupom, linha de garantia/confiança, rótulo do CTA. - Faça captura de tela e role 2-3 vezes para ver o estilo visual (cards, pills, sobrancelhas, botões, cores de palavras de destaque).
- Pegue os estilos computados:
fontFamily,color,backgroundColor,letterSpacing,fontWeightde body/h1/h2/button, além de uma contagem de frequência de todas as cores de fundo e texto. - Se a página renderizar sem estilo (CSS bloqueado), puxe o CSS no sandbox em vez disso:
curl -sL -A "Mozilla/5.0" URL -o index.html; grep -o '/_next/static/[^"]*\.css' index.html(ou qualquer<link rel=stylesheet>), faça curl deles paraall.css, entãogrep -oE -- '--(background|foreground|brand|primary|accent|muted|border|card|surface|ink)[a-z-]*:[^;}]*' all.css | sort -uegrep -o 'font-family:[^;}]*' all.css | sort -u. - Logo:
<img>no cabeçalho (ex.:/logo.png) ou/android-chrome-512x512.png//apple-touch-icon.png. Logos de parceiros em SVG →convert -background none -density 1200 x.svg -resize 400x400 x.png.
Passo 2 – Tokens de design
Mapeie o site para os tokens do template: BG, INK (título), MUTED (cinza do corpo), BRAND (destaque), BRAND_SOFT (tom de destaque para chips), PANEL (fundo do card cinza), WHITE (card). Site escuro → BG escuro, INK claro, sem sombra suave. Espelhe os padrões do site: títulos de duas linhas com destaque na linha 2 se o site fizer isso, chips de rótulo/sobrancelha, botões pill com seta, painel cinza com cards brancos.
Passo 3 – Fontes
TTF estático por peso do fontsource (qualquer fonte Google):
curl -sf -o font-800.ttf https://cdn.jsdelivr.net/fontsource/fonts/<slug-da-fonte>@latest/latin-800-normal.ttf (slug = minúsculo, espaços → traços, ex.: bricolage-grotesque, urbanist). Use via typography={{fontAssetId: handle.id}} após await p.add("font-800.ttf"). O subconjunto latino não tem glifos → ✓ ★ – use icon("arrow-right") etc. Famílias embutidas (Inter, DM Sans, Montserrat…) podem usar higgsedit fonts add . Inter:400 Inter:700 + fontFamily.
Passo 4 – Roteirizar o vídeo
Carregue o fluxo de trabalho video-editing do Higgsfield uma vez por sessão (get_workflow_instructions {workflow:"video-editing"}) antes do trabalho Higgsedit.
Comece de reference/template.jsx. Estrutura padrão, ~25s:
| # | Cena | Tempo | Conteúdo |
|---|---|---|---|
| 1 | Gancho | 0-3.3 | a dor em 2 linhas, sobrancelha "Para <público>" |
| 2 | Apresentação | 3.3-7 | logo + marca, H1 do site, subtítulo, botão CTA aparece |
| 3-6 | Funcionalidades | ~3.7s cada | sobrancelha = rótulo da seção do site, título = título original da funcionalidade do site, um mock nativo de UI (cards de estatística com contadores, linhas com tags, grade de heatmap, lista de fila, card de review, pílulas de dia…) |
| 7 | CTA | últimos ~4.3s | logo + domínio, card de preço/oferta, pílula de cupom + botão, linha de garantia |
Regras:
- Use o texto real do site e números de exemplo reais. Informe ao usuário quais valores de demonstração são ilustrativos. Nunca invente contagens de usuários ou depoimentos.
- Recrie a UI nativamente (frames/texto/ícones). Não use screenshots de baixa resolução ou UI gerada por IA.
- Mantenha os tempos de início das cenas – a música precisa deles (
cuts= início das cenas 2..7).
Passo 5 – Construção no sandbox & pré-visualização
Fatos do sandbox: arquivos desaparecem quando ele é reiniciado (baixe novamente os assets se cd falhar); um comando ≤ 16.000 caracteres (escreva URLs de upload em arquivos em uma chamada separada do heredoc longo cat > edit.jsx); renders longos → background:true depois consulte.
- Faça
media_uploaddas saídas antecipadamente (umasheet.pngde pré-visualização e o.mp4final) e salve cadaupload_urlem um.txtno sandbox. URLs pré-assinadas são de uso único: um segundo PUT retorna 412 – solicite uma nova. - Construção + folha de contato + upload em uma chamada:
higgsedit build edit.jsx 2>&1 | grep -iE "error|missing"; higgsedit sheet . --times <ponto médio de cada cena + fim do CTA> --cols 3 --out renders/sheet.png; curl -s -o /dev/null -w "%{http_code}" -X PUT -H "Content-Type: image/png" --upload-file renders/sheet.png "$(cat sheet_url.txt)" media_confirm, baixe a URL pública retornada localmente e olhe para ela. Corrija problemas de layout antes do render final.
Pegadinhas do Higgsedit:
paddingé um número ou{left,right,top,bottom}, nunca um array.- Token
motion={{by:"word"|"character"}}em texto centralizado causa refluxo (o texto pula da esquerda). Useanimate={pop}para texto centralizado; token motion apenas para texto "digitando" alinhado à esquerda. - Um
targetde timeline deve ser um frame filho nomeado imediato, não ele mesmo – anime ele mesmo com keyframesanimate(delayPop). - Contadores: frame
layout="none"de tamanho fixo com um texto estático; sem separadores de milhares. animateé sempre um array;motionde frame é um objeto.
Passo 6 – Renderizar
higgsedit render . --out renders/promo.mp4 --quality final (≈1 min para 25s).
Passo 7 – Música (diferente a cada vez)
scripts/music.py = música procedural numpy, royalty-free. Estilos: pop (120bpm vibrante), lofi (82bpm chill jazz), synthwave (105bpm retrô), house (124bpm fora do ritmo), cinematic (90bpm épico), marimba (110bpm amigável). Cada faixa: um whoosh antes de cada corte, um impacto no CTA, fade-out de 1.6s.
Escolha o estilo – nunca repita os dois últimos:
- Leia
music-history.lognesta pasta da skill (crie se não existir). - Combine com a vibe: dev/AI/tech → synthwave ou house; criador/escrita/produtividade → lofi ou marimba; lançamento grande/premium → cinematic; consumidor/divertido → pop. Pule estilos usados nas últimas 2 entradas, a menos que o usuário peça um.
--seedaleatório → tom e progressão aleatórios, então mesmo o mesmo estilo soa diferente.- Acrescente
YYYY-MM-DD <site> <estilo> seed=<n>amusic-history.log.
Para colocar music.py no sandbox (primeira execução): media_upload com nome de arquivo music.py → da máquina local curl -X PUT -H "Content-Type: application/octet-stream" --data-binary @scripts/music.py '<upload_url>' → media_confirm type:file → salve a URL pública retornada em music_url.txt nesta pasta da skill. Execuções posteriores: curl -sf -o music.py "$(cat music_url.txt)" dentro do sandbox (re-upload se der 404 ou music.py mudar).
Mixagem:
python3 music.py --style <estilo> --duration <segundos do vídeo> --cuts <c2,c3,...,c7> --seed <n> --out music.wav
ffmpeg -y -v error -i renders/promo.mp4 -i music.wav -filter:a "loudnorm=I=-15:TP=-1.5:LRA=11" -c:v copy -c:a aac -b:a 192k -map 0:v -map 1:a -shortest final.mp4
Duração: ffprobe -v error -show_entries format=duration -of csv=p=0 renders/promo.mp4.
Passo 8 – Entregar
Faça upload de final.mp4 (URL nova) → media_confirm type:video → baixe localmente como <marca>_launch.mp4 → entregue o arquivo ao usuário. Relate: o que corresponde ao site (bg/cores/fonte/logo), a lista de cenas, o estilo musical, quais valores são ilustrativos. Ofereça uma versão 9:16 ou um estilo musical diferente.
Variante 9:16
size: "1080x1920", W=1080 / H=1920, empilhe linhas verticalmente (cards em uma coluna), tamanhos de título ×0.75, mesmos tempos e música.