Communitygithub.com

rendydev404/product-motion-ad

Crie um vídeo de anúncio motion graphic para qualquer produto (SaaS, app, produto digital, físico) usando Remotion + voice over e efeitos sonoros ElevenLabs. O fluxo do anúncio segue a jornada de uso do produto e cada cena comprova uma vantagem. Use quando o usuário pedir para "criar um motion graphic / anúncio em vídeo / promo / explainer de produto", fornecer um vídeo de referência de estilo de transição, ou pedir VO/SFX para vídeo de produto.

O que é product-motion-ad?

Esta skill especializada gera automaticamente vídeos de anúncio motion graphic de 30 a 45 segundos para qualquer tipo de produto (SaaS, aplicativo, digital, físico) utilizando Remotion para composição de vídeo e ElevenLabs para narração e efeitos sonoros. O vídeo segue rigorosamente o fluxo de uso do produto, com cada cena destacando uma vantagem específica e provando-a visualmente com elementos da interface do usuário. A skill coleta informações sobre o produto (texto de landing page, onboarding, features), extrai cores e fontes da marca, analisa vídeos de referência para capturar o estilo de transição e produze um vídeo final em MP4 1920×1080 30 fps, entregue ao usuário via `SendUserFile`. O processo inclui a criação de roteiro e storyboard, projeto Remotion, geração de áudio realistico via ElevenLabs com uma única tomada de narração, e renderização com verificação de qualidade automática. A skill é compatível com qualquer repositório de código ou projeto externo e inclui diretrizes estritas para evitar armadilhas comuns como narração robótica, blur persistente, e falhas de renderização.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/rendydev404/open-skill/tree/HEAD/skills/product-motion-ad

Perguntar na sua IA favorita

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

Documentação

Product Motion Ad (Remotion + ElevenLabs)

Resultado final: MP4 1920×1080 30 fps, 30–45 segundos, hook forte, VO no idioma alvo que soa humano, SFX profissional, transições rápidas estilo referência, e fluxo = fluxo do produto original. Entregue ao usuário com SendUserFile.

Template testado está em template/ (pasta desta skill). Exemplo completo de 13 cenas de projetos reais está em references/example-scenes-threads-automation.tsx.txt e references/example-promo-threads-automation.tsx.txt. Leia references/script-and-storyboard.md antes de escrever o roteiro e references/elevenlabs.md antes de criar o áudio.

Princípios que não podem ser violados

  1. O produto deve estar claro nos primeiros 8 segundos: nome do produto + "faz o que para quem".
  2. Ordem das cenas = ordem do fluxo de uso do produto (registro/login -> setup -> processo principal -> resultado -> funcionalidades avançadas -> prova de resultado -> CTA). Não aleatório.
  3. Uma frase de VO = uma cena = uma vantagem + sua prova visual (UI em movimento: formulário sendo preenchido, botão clicado, cartão de resultado aparecendo, números subindo). Não apenas texto.
  4. Fatos da fonte do produto, não invenção: leia o código/landing/onboarding/página "como funciona". Números de exemplo (visualizações, pontuações) podem ser ilustrativos, mas informe ao usuário que são ilustração.
  5. Ritmo rápido como na referência: transições de 10 frames (T = 10), animações dentro da cena aceleradas speed 1.5–3. Não desacelere a cena para preencher VO lento — corrija o VO.
  6. VO humanizado: uma única tomada completa, estilo conversa, ritmo rápido, sem tags de emoção em cada linha. Não frases separadas (isso que deixa robótico).
  7. Siga as regras de performance do usuário: meça uma vez no início e no final, não renderize repetidamente sem motivo.

Fluxo de trabalho

1. Coletar materiais (em paralelo quando possível)

  • Produto: no repositório, procure texto de landing, onboarding, página de como funciona/funcionalidades, nomes de features na UI (Grep por strings da UI). Fora do repositório: peça descrição/URL. Escreva tabela fluxo de vantagens: Etapa | Ação do usuário | Vantagem | Prova visual (UI exibida).
  • Marca: cores e fontes do CSS (globals.css, tema Tailwind, CSS da landing), logo de public/. Preencha template/src/theme.ts (C, GRADIENT, font, BRAND).
  • Referência de estilo (se houver vídeo): extraia frames com ffmpeg nativo do Remotion e veja a contact sheet: npx remotion ffmpeg -v error -i "<video>" -r 3 -s 340x192 <dir>/f%03d.png (filtros fps=/tile NÃO estão disponíveis no ffmpeg do Remotion; use -r e scripts/contact-sheet.cjs). Anote: fundo (blob borrado/grid de pontos), como o texto aparece, cortes secos, UI 3D, clique do cursor, glow, ritmo.

2. Roteiro & storyboard

Siga references/script-and-storyboard.md: hook de 3 batidas (curiosity gap), 1 linha ≤ 10 palavras por cena, estilo conversa, primeira frase iniciada com palavra de abertura ("Eh,") para que a palavra-chave não seja pronunciada errada no segundo 0, CTA curto. Mostre o roteiro + sequência resumida de cenas ao usuário apenas se o briefing for ambíguo; caso contrário, vá direto para a execução.

3. Projeto Remotion

  • Copie template/ para uma nova pasta no repositório do usuário (ex. promo-video/), npm install.
  • Se estiver dentro de outro repositório Next.js/TS: adicione essa pasta ao exclude no tsconfig.json raiz e ao globalIgnores do ESLint. A pasta já tem .gitignore (node_modules, out).
  • Copie o logo para promo-video/public/ e defina BRAND.logo.
  • Escreva cenas por produto em src/scenes.tsx (use o padrão dos exemplos: useFrame(), useRise/rise, glass/white, StepTag, Words, typed+Caret, Cursor, BlurFilter). Cena genérica makeFeature é apenas para protótipo.
  • Preencha DEFS em src/Promo.tsx: ordem das cenas, cue (frase de abertura da fala VO), beats (hook), speed, transições, dark, sfx.

4. Áudio ElevenLabs (veja references/elevenlabs.md)

  • VO em uma tomada -> public/vo/full.mp3; transcrição Scribe por palavra -> public/vo/words.json. Verifique a transcrição (palavra pronunciada errada? linha faltando?).
  • Pacote SFX de 10 arquivos -> public/sfx/*.mp3.
  • Timeline automática: cena começa 6 frames antes da frase cue ser pronunciada; SFX são colocados no tempo de design da cena (dividido por speed).

5. Render & verificação

  • npm run typecheck e depois npm run render (porta 3456 — porta 3000 frequentemente ocupada pelo dev server Next, a renderização falhará com "not a valid Remotion project").
  • Execute a renderização em background se > 2 minutos.
  • Verifique o visual: node <skill>/scripts/contact-sheet.cjs out/promo.mp4 <scratchpad>/chk e leia a sheet. Para segundos específicos, forneça uma lista de segundos. (A amostragem -r do ffmpeg frequentemente exibe frames iniciais vazios falsos — verifique segundos específicos se tiver dúvida.)
  • Verifique: texto sem blur permanente, não cortado/quebrado, etiqueta de etapa não coberta pelo painel, animações-chave concluídas antes da troca de cena, texto na tela = palavras do VO.
  • Envie com SendUserFile (exiba render), informe duração, tamanho, e o que não foi verificado (ex. nível de áudio não ouvido diretamente).

Armadilhas já ocorridas (evite)

ProblemaCausaSolução
Texto do hook com blur contínuovalor de blur da fase anterior (out1) permaneceu 1calcule blur por fase: apenas entrada/saída
Vídeo ficou lentocena esticada para acompanhar VO lentoVO mais rápido e roteiro mais curto; speed mantido
VO robóticoclipes por frase + tag [excited] em cada linha + linguagem formaluma tomada, estilo conversa, sem tags repetidas
Primeira palavra pronunciada errada ("akun"->"kurun")v3 frequentemente erra na primeira palavracomece com "Eh," / "Nah," e verifique a transcrição Scribe
Render falhou "getStaticCompositions undefined"porta 3000 ocupada pelo Next dev--port=3456
Erro fps=/tileffmpeg do Remotion limitado-r + contact-sheet.cjs (sharp)
Frase quebrada em 2 linhas e avatar cortadoflex item encolheuflexWrap: "nowrap", reduza a fonte
Painel cobrindo etiqueta de etapatranslateY da câmera muito grandelimite o movimento da câmera, scale(0.92)
Chip/cartões colidindoposições polares muito próximasverifique a contact sheet, ajuste ângulo/raio
useId() em url(#id) quebrouid contém :useFilterId() (sanitização)
MCP ElevenLabs não carregou após loginnova ferramenta aparece apenas em nova sessãouse a ferramenta diretamente se disponível; senão, claude -p headless (veja referências)
MCP falhou "Protected resource ... does not match"host regionclaude mcp add -s user --transport http elevenlabs https://api.us.elevenlabs.io/v1/mcp

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Habilidades Relacionadas