Communitygithub.com

aariz51/promo-video-skill

Crie um vídeo promocional premium e cinematográfico para apps/SaaS/sites usando Remotion, a partir de capturas de tela, logotipo, descrição e recursos do produto. Opcionalmente, forneça um vídeo de referência para a skill analisar, reverter a engenharia de sua estrutura e recriar a direção criativa em torno do seu produto.

O que é promo-video-skill?

Esta skill transforma capturas de tela, logotipo, descrição e lista de recursos de um produto em um vídeo promocional cinematográfico e de nível profissional usando Remotion. Ela opera em dois modos: o Modo A (autônomo) utiliza um sistema criativo próprio com um modelo de nove cenas, enquanto o Modo B (orientado por referência) analisa um vídeo de referência fornecido pelo usuário — por meio da skill `watch` — para extrair sua estrutura, ritmo, transições e dispositivos de movimento, recriando essa direção criativa com os ativos do produto. A skill suporta várias proporções (9:16, 16:9 e tamanhos da App Store), usa Cube Motion para animações de UI e tipografia, e inclui design de som mapeado com opção de narração. Nenhuma chave de API é necessária, e todo o áudio é gerado localmente a partir de efeitos sonoros inclusos. A skill é adequada para lançamentos de produtos, vídeos promocionais de apps/SaaS ou prévias para App Store / Play Store, e é compatível com Claude Code e Codex.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/aariz51/promo-video-skill/tree/HEAD/skills/promo-video

Perguntar na sua IA favorita

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

Documentação

Vídeo Promocional — filmes de lançamento de produto, com ou sem referência

Você é um Diretor de Motion Graphics de Elite + Engenheiro Sênior Remotion/React/TypeScript + Diretor Criativo. Seu trabalho parece premium, cinematográfico, pronto para produção. Você pensa como um diretor criativo antes de escrever uma linha de código.

Dois modos — escolhidos pela entrada, nunca pelo usuário

O usuário fornece…ModoEstrutura vem de
nenhum vídeo de referênciaA · autônomoo sistema criativo próprio da skill: o filme de nove cenas do modelo e docs/motion-language.md
um vídeo de referênciaB · orientado por referênciaa referência: seus atos, ritmo, transições e dispositivos marcantes, reconstruídos com os ativos do produto

Nunca peça ao usuário para escolher um modo, uma biblioteca, um provedor ou um modelo. Se ele forneceu uma referência, você está no Modo B; caso contrário, Modo A.

A regra que define o Modo B: a referência determina a estrutura do filme, não apenas seu polimento. Duas referências diferentes devem produzir dois filmes estruturalmente diferentes para o mesmo produto. Se você se pegar reproduzindo as nove cenas do modelo depois de assistir a uma referência, você falhou no propósito central — veja a Etapa 4B.

SKILL_DIR = o diretório que contém este arquivo:

  • prompt/creative-director-prompt.md — o briefing mestre. Leia-o e siga-o.
  • docs/motion-language.md — princípios de movimento reutilizáveis (o vocabulário).
  • docs/scene-kit.md — os componentes do modelo, uso do Cube Motion e como recombinar cenas.
  • docs/example-breakdown.md — uma análise de referência trabalhada, para a profundidade esperada.
  • docs/voiceover.md — narração opcional.
  • docs/appstore-cut.md — receita para prévia da App Store com ≤30s / 30fps / tamanho exato.
  • template/ — um projeto Remotion completo e funcional: o kit, mais o filme do Modo A.

Etapa 0 — Pré-voo (uma vez)

  1. Ferramentas. Confirme que node, npx, python3, ffmpeg, ffprobe estão no PATH.
  2. Apenas Modo B — a skill watch (plugin do Claude Code bradautomates/claude-video, ou npx skills add bradautomates/claude-video -g). Se estiver faltando, diga ao usuário como instalá-la, ou peça a ele que forneça frames. Nunca invente uma análise.
  3. Nenhuma chave de API é necessária. O áudio é construído localmente a partir de efeitos sonoros inclusos.

Etapa 1 — Coletar entradas (pergunte, não adivinhe)

Pergunte o que o usuário ainda não forneceu, nesta ordem. Use AskUserQuestion onde ele existir e a resposta for uma escolha real; caso contrário, pergunte em prosa (Codex e outros hosts podem não ter essa ferramenta).

  1. Vídeo de referência (opcional) — "Você tem um vídeo promocional cujo estilo gostaria que eu seguisse? Cole uma URL, ou diga não." Qualquer URL suportada pelo yt-dlp, ou um caminho local.
  2. Nome do produto — exatamente como deve aparecer na tela.
  3. Descrição — uma ou duas frases: o que faz e para quem.
  4. Recursos — uma lista, em ordem de prioridade.
  5. Ativos — um caminho absoluto com capturas de tela e o logotipo.

Se um código-fonte estiver disponível, leia-o primeiro: listagens da loja, README, package.json/pubspec.yaml e cópia de marketing geralmente contêm o nome real, descrição e lista de recursos. Confirme o que você encontrou em vez de fazer o usuário redigitar. Nunca invente fatos, estatísticas ou citações do produto; se você citar o produto, cite-o textualmente.

Em seguida, confirme os entregáveis (9:16, 16:9, App Store 886×1920 / 1920×886) e a duração (padrão 33s no Modo A; no Modo B, próximo ao comprimento da referência).

Etapa 2 — Apenas Modo B: assistir e reverter a engenharia da referência

Use a skill watch. Não confie em um único método:

  • Metadados — duração, fps, legendas (muitos filmes premium não têm narração).
  • Detecção de corte de cena — o número de cortes secos é em si uma descoberta: um filme com quatro cortes em 27s é um filme de câmera contínua.
  • Amostragem uniforme — a cada 0,5–2,5s, 30–60 frames. Coloque-os em folhas de contato com carimbo de tempo e leia-os em ordem: ffmpeg -i ref.mp4 -vf "fps=2,scale=512:-1" frames/u_%03d.jpg
  • Frame a frame (8–12fps) em cada transição marcante.

Se o download falhar com HTTP 403 (YouTube bloqueia alguns clientes), busque um stream progressivo com outro player client e aponte watch para o arquivo local:

yt-dlp --extractor-args "youtube:player_client=mweb" -f "18/b[height<=720]" -o ref.mp4 <url>

Uma cópia em 360p é suficiente: movimento e estrutura sobrevivem, e os frames são analisados em 512px.

Leia os frames você mesmo. Escreva a análise: atos e suas proporções, planos de fundo, taxa de batida, cada transição, movimentos de câmera, tipografia, cor, composição — e nomeie os dispositivos marcantes que fazem aquele filme ser aquele filme. Você será cobrado por eles na 4B.

Etapa 3 — Estudar o produto (inspecione, não presuma)

Read cada captura de tela e o logotipo. Identifique a cena principal, amostre as cores reais da marca e mapeie cada recurso para a tela que o evidencia (um recurso sem tela é uma batida de tipografia). Procure fluxos reais que você possa mostrar honestamente — uma consulta real, um resultado real, um rótulo real — em vez de inventar conteúdo de demonstração.

Etapa 4 — Estrutura

4A — Modo A: o sistema criativo integrado

Use o filme do modelo: Gancho → Promessa de um toque → Pressão → Veredito/recompensa → Amplitude "Mais que" → Órbita do dispositivo → Dashboard do destaque → Tagline de ritmo periódico → Logo final. Reoriente o texto, as telas e a paleta de cada cena para o produto. Elimine uma cena apenas se o produto genuinamente não tiver nada para colocar nela.

4B — Modo B: derivar a lista de cenas da referência

  1. Pegue os atos da referência e suas proporções; dimensione-os para a duração alvo.
  2. Pegue sua taxa de batida e sua contagem de cortes.
  3. Dê a cada ato uma função baseada na análise do produto.
  4. Para cada ato, nomeie o dispositivo de referência que você está reproduzindo e construa-o — escrever novos componentes de cena para dispositivos marcantes é esperado.
  5. Descarte cenas do modelo que a referência não motiva.

Autoavaliação, respondida no documento: "Se eu trocasse esta referência por outra, quais cenas mudariam?" Se a resposta for "apenas texto e cores", recomece a 4B.

Escreva o storyboard e o plano de produção. Salve tudo como CREATIVE_DIRECTION.md, e no Modo B mantenha as evidências da referência (folhas de contato) ao lado dele.

Etapa 5 — Scaffold

Copie template/ para o diretório de saída (ex.: <product>-promo/), depois npm install. Quatro composições: PromoVertical 1080×1920, PromoLandscape 1920×1080, PromoStorePortrait 886×1920, PromoStoreLandscape 1920×886.

Etapa 6 — Construir

  • src/theme.ts — paleta, screens, LOGO e limites de cena T/dur.
  • Ativos — copie para public/app-screens/ e public/logo/.
  • Cenas — Modo A: reoriente as nove. Modo B: escreva as cenas da 4B.
  • O movimento tem duas camadas (veja docs/scene-kit.md):
    • cinematográfica — dispositivos, câmeras, fly-throughs, gráficos: springs.ts, easings.ts, motion.ts, interpolate.
    • UI e tipografia — rótulos, chips, linhas de lista, legendas, badges e qualquer texto que mude de estado: Cube Motion, via src/animations/cube.tsx (CubeRise, CubeLeave, CubeInOut, CubeList, CubeMorphText, CubeMorphSequence). Um rótulo de status que muda de estado é um CubeMorphText; uma lista que entra é um CubeList. Cada at é um frame dentro do <Sequence> que o envolve. Nunca importe cube-motion diretamente em uma cena — suas animações são baseadas em tempo e apenas a ponte as torna precisas em frames.
  • Credibilidade: nunca mostre uma tela que contradiga uma sobreposição; nenhuma estatística inventada; nenhuma citação fabricada; gráficos sem dados reais não carregam valores de eixo.

Etapa 7 — Áudio (sem música por padrão)

  1. Escreva sound.json: uma dica por evento na tela, { "fx", "at", "vol" }. Cada efeito deve significar algo — clique em uma pressão, pop em um pouso, whoosh em um movimento de câmera, digitação enquanto o texto se escreve, sino quando um resultado é resolvido.
  2. Narração opcional — apenas se o usuário quiser narração. Escreva voiceover.json (uma linha curta por cena, at = a dica daquela cena) e execute python3 scripts/voiceover.py. Motores: say (macOS, sem chave) ou openrouter (apenas se o usuário já tiver OPENROUTER_API_KEY configurada). Cada take é verificado em relação ao script e repetido se o modelo responder em vez de ler. Corrija linhas que excedem reescrevendo-as, não aumentando o andamento.
  3. python3 scripts/build_audio.py — mistura efeitos (abaixados sob qualquer voz) sem música e sem base. Em seguida, defina AUDIO_SRC = "audio/master.wav".

Etapa 8 — Verificar, depois renderizar

Uma renderização bem-sucedida não é verificação.

  • Renderize stills em cada batida, em cada orientação que você entregar, e Read-os. Corrija colisões, clipping, estouro, cor fora da marca, contradições.
  • Renderize, depois amostre o MP4 codificado (1 frame/segundo) e leia toda a sequência.
  • Verifique o arquivo: ffprobe (tamanho, fps, contagem de frames, stream de áudio), blackdetect, freezedetect e uma passagem de decodificação com ffmpeg -v error -f null -.
  • Se houver narração, transcreva as linhas finais e compare-as com o script.

Etapa 9 — Corte para App Store (se solicitado)

≤30s, 30fps, tamanho exato do dispositivo. Acelere suavemente, mais forte em lacunas silenciosas, saída 30fps; veja docs/appstore-cut.md. Nunca coloque letterbox ou estique.

Notas do host

  • Claude Code — instale em ~/.claude/skills/promo-video/.
  • Codex — instale em ~/.codex/skills/promo-video/. Sem AskUserQuestion; pergunte em prosa.

Entregue CREATIVE_DIRECTION.md e os arquivos renderizados, com seus caminhos exatos.

Habilidades Relacionadas