Communitygithub.com

Hakam02-doom/music-promo-video

Construa um vídeo promocional vertical e polido para um app de música, artista, álbum, playlist ou música (estilo anúncio do Spotify, reel, edit do TikTok/Instagram). Ele começa pedindo de 3 a 4 referências de estilo que moldam o resultado, depois monta o vídeo em código a partir do logo do usuário, capturas de tela do app, músicas, efeitos sonoros e clipes de videoclipe.

O que é music-promo-video?

Esta skill cria vídeos promocionais verticais (1080×1920, 60/120 fps) de alta qualidade para música, combinando marca, capturas de tela, arte de capa, músicas e videoclipes em uma única peça contínua e premium. Ela foca em referências visuais (3-4 vídeos, reels ou imagens) que definem paleta, ritmo, tipografia e transições. Suporta animações de partículas, zoom suave, tipografia cinética, sincronia com batidas e integração de múltiplas faixas com transições suaves de baixa para alta energia. O processo é automatizado via Python e FFmpeg, com scripts para análise de batidas, sincronia áudio/vídeo e QA de movimento. Ideal para desenvolvedores que desejam gerar anúncios, edits de redes sociais ou vídeos promocionais sem usar editores visuais tradicionais.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Hakam02-doom/music-promo-video/tree/HEAD

Perguntar na sua IA favorita

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

Documentação

Vídeo promocional de música

Faça um vídeo promocional vertical (padrão 1080×1920) que pareça uma peça contínua e premium. Um logo abre o vídeo. Páginas de app, capas e players fluem uns nos outros através de movimentos suaves de câmera. Músicas tocam sob a imagem no ritmo da batida. Um cartão final correspondente fecha o vídeo, para que ele faça loop.

Esta skill empacota um fluxo de trabalho refinado ao longo de várias rodadas de feedback real de usuários. As regras em references/direction.md são esse feedback, transformado em princípios. Leia-as antes de projetar qualquer coisa: elas são a diferença entre "legal" e "era isso que eu queria".

0. Coleta inicial: peça referências primeiro

Antes de planejar ou construir qualquer coisa, peça ao usuário de 3 a 4 referências que devem moldar a saída. As referências decidem o visual, então o vídeo depende delas. Pergunte em uma mensagem amigável, junto com a lista de verificação de ativos abaixo, para que o usuário responda uma vez.

Pergunte por:

  • 3–4 referências: vídeos (melhor: eles carregam movimento e ritmo), reels, imagens ou links para eles. Para cada um, pergunte o que eles gostam: o visual, a cor, a tipografia, as transições, o ritmo, o som. Se o usuário oferecer apenas links que você não consegue abrir (Instagram, Pinterest, TikTok), peça o arquivo baixado ou capturas de tela. Nunca afirme ter assistido algo que você não conseguiu abrir.
  • Se eles enviarem menos de 3, pergunte mais uma vez e explique que mais referências dão um resultado mais próximo. Se ainda assim não conseguirem, prossiga com o que tem e diga quais escolhas você fez por conta própria.
  • Se eles enviarem mais de 4, pergunte quais 4 são mais importantes, ou pondere as primeiras.

Lista de verificação de ativos (pergunte na mesma mensagem e aceite "você escolhe" para qualquer item):

  1. Logo (PNG com transparência é melhor).
  2. Capturas de tela do app (tela inicial, biblioteca, tocando agora), que mostram o que é real.
  3. Músicas: os arquivos de áudio mais o horário de início e fim do refrão para cada uma (os usuários conhecem o refrão; não adivinhe pela letra).
  4. Pacote de efeitos sonoros (opcional).
  5. Arquivos oficiais de videoclipe (opcional, para clipes sincronizados).
  6. Formato, duração alvo, taxa de quadros (padrão 1080×1920, 60 fps) e onde será postado.

Em seguida, estude as referências apropriadamente (veja references/references-analysis.md): folhas de contato e sequências densas de quadros para movimento. Escreva um briefing de referências curto: paleta, papéis da tipografia, ritmo (cortes por compasso), tipos de transição, textura (grão, bloom, papel ou nenhum), como texto e imagens interagem e o caráter do som. Mostre o briefing ao usuário em algumas linhas com seu plano, depois construa sem esperar por mais aprovação, a menos que algo o bloqueie.

Quando as referências entrarem em conflito com uma regra em references/direction.md, siga primeiro as palavras explícitas do usuário, depois as referências, depois os padrões.

1. Verifique o ambiente

Você precisa de ffmpeg e Python com numpy, pillow, opencv-python-headless e scipy (crie um venv na pasta de trabalho). As fontes são fontes do sistema; verifique se cada um dos três papéis de tipo é resolvido. Se uma capacidade essencial estiver faltando, diga exatamente o que e pare a etapa dependente; não apresente um plano como um vídeo finalizado.

2. Obtenha e verifique os ativos

  • Arte da capa: nunca use cortes de capturas de tela como capa visível. Eles são muito suaves, e os usuários percebem. Encontre a arte oficial online com scripts/find_cover.py, que pesquisa Apple/iTunes (até 3000 px) e JioSaavn e corresponde cada candidato ao corte da captura de tela. Aceite apenas correspondências de cerca de 0,98 ou superior, e registre a proveniência (URL de origem, título, artista, pontuação de correspondência) em covers/provenance.json. Se nada corresponder (por exemplo, mixes ou rádios gerados pelo Spotify), redesenhe uma versão vetorial nítida quando for um design simples (Músicas Curtidas) ou deixe esse item de fora.
  • Músicas: copie-as, depois execute scripts/beat_grid.py em cada uma: andamento, tempos fortes, energia por meio segundo e o maior salto de energia (o drop). Peça ao usuário os horários do refrão em vez de inferi-los da transcrição.
  • Videoclipe: scripts/av_sync.py fornece o deslocamento entre o áudio do vídeo e o arquivo de música, para que a imagem e a música permaneçam em sincronia labial. scripts/shot_cuts.py encontra os próprios cortes do vídeo, para que o corte possa seguir o assunto por cena.
  • Efeitos sonoros: caracterize cada arquivo (duração, posição de pico, brilho), atribua um papel (toque/clique, whoosh, riser, pop, chim, zumbido, especial) e anote o deslocamento de pico de cada arquivo para que os cues caiam no pico.

3. Planeje a linha do tempo na grade de batidas

  • Trate o tempo do filme como tempo da música enquanto uma música toca (filme t = música t + deslocamento). Coloque as mudanças de cena nos tempos fortes, e os pops e passos de stop-motion nas batidas ou colcheias.
  • Arco típico, adapte ao briefing: abertura do logo → página da biblioteca ou app → carrossel de álbuns → tocando agora (barra de progresso ao vivo) → momento do drop (grandes palavras cinéticas) → parede de capas → transição para a próxima música com sua própria animação de capa → seu player → seção opcional de videoclipe → final de partículas para o logo → cartão final combinando com a abertura.
  • Cada mudança entre cenas deve ser um movimento contínuo: um zoom em um elemento que se torna a próxima cena, um corte combinado (a mesma imagem no mesmo lugar em ambos os lados) ou um voo através de uma área escura. Liste o mecanismo de cada transição no plano.
  • Regras de texto: nenhuma palavra jamais fica em cima da obra de arte, e nenhuma palavra é deixada escondida atrás de um logo ou capa. As palavras deslizam para fora da borda de um objeto ou sobem através de uma linha de máscara e depois ficam totalmente visíveis. Os títulos que ficam acima do conteúdo rolante pertencem a esse conteúdo (coordenadas do mundo), portanto os blocos nunca os cobrem.

Veja references/direction.md para o conjunto completo de regras visuais e por que cada uma existe.

4. Construa

Comece pelo exemplo funcional em assets/reference_project/: render.py (mecanismo de imagem mais uma linha do tempo completa de 58 s), audio.py (mix) e style.json. Ele já contém blocos de construção testados:

  • composição com pré-filtragem de desfoque, sombras suaves e recorte;
  • grão de filme e bloom por quadro;
  • classe Text de três papéis (sem serifa, serifa itálico, mono) com entradas suavizadas, entradas em stop-motion e saídas à deriva;
  • revelações de palavras com linha de máscara e revelações deslizantes de trás;
  • ondas de toque com efeito de pressão; uma interface de player vetorial com barra de progresso ao vivo e toque de coração; o cartão final de anel repetido;
  • o sistema de partículas de diamante (monte uma peça de capa peça por peça; levante-a para o logo);
  • reprodução de videoclipe com mesclagem de quadros e cortes por cena;
  • as ferramentas de varredura de filtro, envelope e cue de SFX.

Mantenha o mecanismo; substitua a linha do tempo e o conteúdo pelo novo projeto. Leia references/engine-notes.md para a arquitetura e as armadilhas já resolvidas.

Trabalhe nesta ordem:

  1. Testes de texto e layout: renderize 10 a 20 imagens fixas ao longo da linha do tempo, faça uma folha de contato, olhe para ela e corrija problemas de layout antes de qualquer renderização longa.
  2. O mix (audio.py): é rápido, então meça os níveis por segundo e em torno de cada transição (references/audio.md).
  3. Uma renderização completa em segundo plano (60 fps leva cerca de 10 minutos para 60 s em um laptop; 120 fps cerca de 25). Não faça polling; aguarde o aviso de conclusão.

5. QA da exportação real

Execute scripts/motion_qa.py no MP4 final. Ele relata saltos de quadro a quadro, passos de stop-motion, quadros congelados e quadros anormalmente escuros. Para cada pico que não seja um passo intencional ou um corte de videoclipe, extraia os quadros consecutivos ao redor dele e observe-os. Em seguida, verifique:

  • duração, fps, contagem de quadros e decodificação completa;
  • volume (-11 a -14 LUFS integrado, pico em cerca de -1 dBFS, sem distorção);
  • níveis por segundo e níveis de transição;
  • ambos os lados de cada transição;
  • legibilidade do texto no tamanho de um telefone.

Relate honestamente: você pode medir áudio, mas não pode ouvir. Diga isso e peça ao usuário para verificar de ouvido.

Para pequenas correções, renderize novamente apenas o intervalo de tempo afetado (render.py --range a,b) e emende-o na renderização mestre com cortes exatos de quadro. Remuxe e verifique novamente as emendas. Veja references/qa-and-delivery.md.

6. Entregue cedo e itere

  • Envie um MP4 reproduzível assim que uma versão estiver completa, mesmo no meio de uma alteração mais longa. Os usuários costumam perguntar "está pronto?" e querem assistir enquanto você continua.
  • A cada rodada: releia as palavras do usuário com cuidado. Eles costumam digitar rapidamente e parar no meio da frase. Aplique exatamente o que pediram, mantenha todo o resto idêntico quadro a quadro e diga o que mudou. Se uma mensagem for cortada, faça a parte clara e pergunte pelo resto.
  • Mantenha versões anteriores (archive_vN/) e nomeie os entregáveis com a versão e fps.

Entregáveis a cada rodada:

  • MP4 principal (60 fps para postagem; 120 fps apenas mediante solicitação, e explique que as plataformas sociais reproduzem no máximo a 60);
  • o mesmo vídeo apenas com efeitos sonoros, sem músicas (para postagem com música licenciada pela plataforma);
  • um zip do projeto editável: código, configurações de estilo, capas com proveniência, quadros usados do vídeo, SFX usados, os WAVs do mix e um README com a linha do tempo;
  • uma nota curta sobre o que mudou, o que foi verificado e o que não foi, além de um lembrete de que as músicas, capas e clipes de vídeo têm direitos autorais: tudo bem para edits pessoais, mas as plataformas podem silenciar ou reivindicar postagens públicas.

Arquivos de referência

  • references/direction.md: as regras visuais e editoriais aprendidas com o feedback do usuário. Leia antes de projetar.
  • references/references-analysis.md: como estudar as 3-4 referências do usuário e escrever o briefing.
  • references/audio.md: envelopes de música (baixo para alto, alto para baixo), transições suaves combinadas com batidas, posicionamento de SFX, volume.
  • references/engine-notes.md: arquitetura do mecanismo de referência e armadilhas já resolvidas.
  • references/qa-and-delivery.md: verificações, re-renderização parcial e emenda, codificação, empacotamento.
  • scripts/: beat_grid.py, find_cover.py, av_sync.py, shot_cuts.py, motion_qa.py (execute cada um com -h para uso).
  • assets/reference_project/: o exemplo funcional completo (promo do Spotify, "Raw Rich Rare" com "National Treasures" do Drake).

Habilidades Relacionadas