Communitygithub.com

Clip Montage

Edita os clipes de vídeo do usuário em um reel vertical finalizado para TikTok, Reels e Shorts: o melhor momento de cada clipe, cortes no ritmo da música, legendas, etiquetas e um cartão final. Use sempre que alguém tiver vídeos, clipes ou gravações e quiser um montagem, reel, resumo, tour ou destaques, mesmo antes de enviar os arquivos. Apenas fotos? Use montage-video.

O que é Clip Montage?

O Clip Montage é uma skill de IA para edição de vídeo que transforma clipes brutos de celular do usuário em montagens verticais prontas para publicação no formato 9:16, ideais para TikTok, Instagram Reels e YouTube Shorts. Ela analisa cada clipe quadro a quadro para selecionar os melhores momentos — estáveis, nítidos e bem iluminados — e os organiza em uma sequência que conta uma história, cortando exatamente no ritmo da música fornecida. Suporta a inclusão de voiceover do usuário com legendas sincronizadas palavra por palavra, som original de clipes selecionados (como falas ou sons ambientes), etiquetas para cada cena e um gancho inicial e call-to-action final. Todo o processamento é feito localmente, sem enviar dados para servidores externos, garantindo privacidade e sem custos de créditos. A skill é ideal para criadores de conteúdo, pequenos negócios e profissionais de marketing que precisam de edições rápidas e profissionais sem depender de ferramentas online pagas.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/GreyCatVP/marketing-skill/tree/main/skills/clip-montage

Perguntar na sua IA favorita

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

Documentação

Clip Montage (Montagem de Clipes)

Propósito

Pegue os vídeos curtos que o usuário filma no celular, e qualquer música ou gravação de voz que ele tenha, e edite-os em uma montagem finalizada 9:16 pronta para publicar:

  • o melhor momento de cada clipe, em uma ordem que conta a história;
  • cortado no ritmo da música;
  • um gancho no primeiro plano, uma etiqueta em cada um e o CTA no final;
  • o som original do clipe onde importa (alguém falando, um chiado, uma vibração), legendado palavra por palavra;
  • o voiceover do usuário sobre todo o vídeo, com legendas sincronizadas.

Depois, continue editando com o usuário até ele ficar satisfeito ("use a parte em que ela ri", "cozinha primeiro", "clipe mais alto, sem música") uma versão de cada vez, sem perder as anteriores.

Esta é a skill padrão para montagens, e é gratuita. Tudo é renderizado nesta máquina com as ferramentas scripts/video/ do plugin (montage.js constrói a página a partir de um script curto, render.js gera o MP4). Não há conta, créditos, e nada sai da máquina. Imagens reais também são a representação mais fiel de um lugar ou produto: nenhuma IA inventa nada.

O que custa dinheiro, e quando mencionar:

O que o usuário temO que aconteceCusto
Vídeos (com ou sem fotos, música, uma gravação de voz)Esta skillGrátis
Apenas fotos, e eles podem filmar alguns clipesPeça pelos clipes, depois esta skillGrátis
Apenas fotos, sem possibilidade de clipesmontage-video com movimentos locais (pane, aproximação, movimentos 3D)Grátis
Apenas fotos, e eles querem que a câmera realmente se mova (novos ângulos)"Movimentos de câmera IA" do montage-video, apenas se o usuário disser que tem um plano pago com um modelo de vídeo (Figma Weave em um plano pago do Figma, Higgsfield), cotado e aprovado primeiroCréditos pagos

Nunca execute um modelo de vídeo pago a partir desta skill. Nunca faça uma cotação a menos que o usuário tenha dito que possui um plano pago e deseja isso.

Processo passo a passo

Raiz do plugin: se um caminho abaixo ainda mostrar um placeholder CLAUDE_PLUGIN_ROOT não expandido (Claude Code o preenche; outros agentes como Codex não o fazem), resolva-o antes de usar qualquer um deles: pegue a saída de printenv CLAUDE_PLUGIN_ROOT se imprimir um caminho, caso contrário suba a partir da pasta deste arquivo até a primeira pasta que contém references/brand-voice.md, e se nenhum funcionar, pergunte ao usuário onde este plugin está. Use esse caminho absoluto em todos os caminhos de arquivo e comandos de shell abaixo. VIDEO abaixo significa ${CLAUDE_PLUGIN_ROOT}/scripts/video.

  1. Verifique o status de configuração. Leia ${CLAUDE_PLUGIN_ROOT}/references/brand-voice.md. Se ele não existir, ou sua primeira linha for <!-- MARKETING-SKILL:UNCONFIGURED -->, pause e pergunte ao usuário as 4 perguntas de configuração do plugin (prioridade de tarefa; tipos de conteúdo a produzir; público-alvo + tom; formato de saída padrão — mesma do /marketing-skill:marketing-setup) antes de continuar, depois salve as respostas nesse arquivo e altere o marcador para CONFIGURED com a data de hoje. Se o arquivo estiver não configurado mas o usuário já disse para pular a configuração ou usar os padrões, não pergunte: use os padrões do placeholder para esta execução, diga isso em uma linha e deixe o marcador como está.

  2. Escolha o cliente. Exatamente como o passo 2 do montage-video (${CLAUDE_PLUGIN_ROOT}/skills/montage-video/SKILL.md): um cliente salvo (leia o perfil e suas ## Notas), um novo (nome do negócio, linhas de contato, letras miúdas necessárias, logotipo, cores, a música que eles gostam), ou o próprio negócio do usuário (deixe client: de fora). Os perfis ficam em ${CLAUDE_PLUGIN_ROOT}/state/clients/ e ficam fora do git.

  3. Peça as gravações, a música e a voz. Em uma mensagem:

    • Os clipes (o pedido padrão). Vídeos curtos de celular, de 3 a 15 segundos cada, um por cômodo, ângulo ou momento. Se eles ainda não filmaram, dê a eles as "Dicas de filmagem para clipes" do montage-guide.md: vertical, segure cada take firme por 3 a 5 segundos, mova-se devagar, boa luz, e os detalhes em close.
    • Música, se eles tiverem. Uma faixa para a qual eles tenham direitos de uso em um anúncio. Uma música de um app de streaming ou rádio não é uma. Caso contrário: o som salvo do cliente (uma faixa gerada gratuita), uma faixa Creative Commons (node VIDEO/media.js search "<mood>" --type music --out state/videos/assets --count 3), ou sem música, para que eles adicionem um som trending no app ao publicar (contas comerciais do TikTok e Instagram têm uma biblioteca de uso comercial).
    • Uma voz, se eles tiverem. Um voiceover que eles gravaram (um arquivo serve, um memo de voz do celular funciona), com o que foi dito palavra por palavra para as legendas. Ou clipes onde alguém fala para a câmera. Ou nenhum: a maioria das montagens é apenas música.
    • Uma montagem que eles gostariam que se parecesse, se houver: um vídeo que eles enviem (ou a referência de Estilo no brand-voice.md's Configuração de Vídeo). Execute node VIDEO/reference.js <video>, leia seu reference.md, e veja suas folhas; depois corresponda seu ritmo (pace: sua duração típica de take, em batidas quando seus cortes caem no ritmo), suas rajadas de cortes rápidos, suas legendas, e sua sensação, e diga em uma linha o que você está igualando. Copie a edição, nunca suas gravações, música ou palavras; peça o arquivo em vez de baixar a postagem de alguém do app.
    • Apenas fotos? Pergunte se eles podem filmar alguns clipes (é grátis e a imagem mais verdadeira). Se não puderem, passe para montage-video, que move as fotos com movimentos locais gratuitos. Mencione IA de foto para vídeo apenas se eles pedirem movimentos reais de câmera ou novos ângulos, e diga que precisa de um plano pago (modelos de vídeo Figma Weave funcionam apenas em planos pagos do Figma). Execute apenas depois que eles disserem que têm um e aprovarem a cotação, seguindo "Movimentos de câmera IA" do montage-video.
    • Coloque os arquivos no disco. O renderizador precisa de arquivos: peça a pasta (ou os caminhos dos arquivos). Vídeos colados em um chat não podem ser lidos pelo renderizador. Se estiverem no Google Drive e um conector do Drive estiver disponível, baixe-os com ele em uma nova pasta.
    • Use apenas gravações que o usuário ou cliente filmou ou tem licença para usar, e apenas pessoas que concordaram em aparecer.
  4. Importe-os. Execute node VIDEO/montage.js inspect <folder> --slug <slug>, onde o slug é curto e nomeia o vídeo (maple, taco-night).

    • Ele copia cada clipe em state/videos/assets/<slug>-01.mp4, e assim por diante, com a imagem e o som como estão e os metadados removidos (incluindo a localização do clipe do celular). Os originais não são tocados.
    • Ele imprime o tamanho, formato, duração e se tem som de cada clipe, e sinaliza clipes longos, paisagem e de baixa resolução.
    • Ele escreve uma folha de contato numerada, <slug>-contact.png, e um script inicial, state/videos/<data>-<slug>.md, um take por arquivo.
    • Copie a música do usuário para state/videos/assets/<slug>-music.<ext> e seu voiceover para state/videos/assets/<slug>-vo.<ext>.
  5. Assista a cada clipe. Você não pode reproduzir vídeo, então olhe os quadros:

    • Execute node VIDEO/montage.js frames <clip> --every 1 para cada clipe (--every 0.5 para um curto e movimentado). Ele organiza um quadro a cada segundo com seu tempo, e imprime quando o som do clipe está alto (alguém falando, ou um som que vale a pena manter). Leia cada folha.
    • Nomeie o que cada clipe mostra, e escolha seu melhor momento: estável, nítido, bem iluminado, o assunto claro. Pule o início trêmulo, o celular sendo abaixado, desfoque, e qualquer um que não tenha concordado em aparecer. Cada escolha é um trecho, [from: 3.5] [to: 6.5]: 1,5 a 4 segundos é o ideal para a maioria dos takes. Um clipe longo pode dar dois ou três takes de momentos diferentes.
    • Um clipe paisagem é cortado para 9:16. Anote o que manter no quadro como [focus: x%,y%] (a pessoa, o produto, a lareira).
    • Anote os clipes cujo som deve permanecer ([sound]): alguém falando para a câmera, uma risada, o chiado na grelha. Você não pode ouvi-los, então pergunte ao usuário o que foi dito, palavra por palavra, para as legendas, e diga quais clipes você manteria o som para que eles possam verificar.
    • Diga quais clipes ou momentos você deixou de fora e por quê, para que o usuário possa anular sua decisão.
    • Ordene os takes com ${CLAUDE_PLUGIN_ROOT}/references/montage-guide.md ("Clipes: a ordem"): o momento mais forte primeiro, depois uma rota pelo lugar ou evento, terminando no CTA.
  6. Confirme o escopo em uma mensagem. Proponha, e deixe o usuário corrigir:

    • Duração e takes: cerca de 15, 30 ou 60 segundos, e quais momentos a preenchem.
    • Música: a faixa deles, o som do cliente, outro gênero, uma faixa Creative Commons (envie para ouvir primeiro), ou nenhuma.
    • Voz: o voiceover deles, os clipes que mantêm seu próprio som, ou nenhum.
    • As palavras na tela: o gancho (três opções de ${CLAUDE_PLUGIN_ROOT}/references/hooks.md, cada uma de um padrão diferente), uma etiqueta para cada take, um adesivo de status se houver, e o CTA, mais o preço e especificações para um anúncio ou produto. Todo fato vem do usuário ou do cliente. Se um estiver faltando, pergunte, ou deixe de fora.
  7. Escreva o script e construa a página. Edite o script inicial. O formato e cada tag estão documentados no início de VIDEO/montage.js:

    ---
    title: taco-night
    client: casa-lupe
    hook: tuesday is taco night
    cta: book a table · link in bio
    music: assets/taco-night-music.mp3
    pace: 4 beats
    ---
    3. assets/taco-night-03.mp4  Fresh off the grill  [from: 1.2] [to: 4] [sound]
    1. assets/taco-night-01.mp4  Handmade tortillas  [from: 0.5] [to: 3] [focus: 40%,60%]
    2. assets/taco-night-02.mp4  Meet chef Lupe  [from: 6] [to: 10.5] [sound] [say: Every tortilla is pressed by hand, every morning.]
    4. assets/taco-night-04.mp4  The patio  [from: 2] [to: 5] [move: push-in]
    
    • Trechos de clipe: [from:] e [to:] definem o trecho. O take é então ajustado ao ritmo (arredondado para cima, então toca um momento além de [to:]). Use pace: em batidas, não compassos, para clipes: um compasso arredonda um trecho de 3 segundos para 5 segundos a 96 BPM.
    • Som próprio de um clipe: [sound] toca em sincronia, com a música abafada abaixo dele. Um [say: ...] nesse clipe é o que é dito nele, legendado palavra por palavra. Não é dublado novamente.
    • O voiceover do usuário: voiceover: assets/<slug>-vo.m4a e voiceover-text: <as palavras deles, palavra por palavra>. Toca a partir de 0,3 segundos (voiceover-at: para mudar), a música é abafada abaixo dele, as legendas correm baixas em cada take, e os takes se estendem para cobri-lo. Não use também linhas de voz [say: ...].
    • A música deles: music: assets/<slug>-music.mp3. Sua batida é lida com beats.js e os cortes caem nela. music: none deixa espaço para um som trending adicionado no app.
    • Movimentos: um clipe mantém seu próprio movimento. [move: push-in], pull-out, ou drift adicionam um zoom lento por cima. Um pan desliza o clipe com zoom, já que não há nada além do quadro para onde fazer pan.
    • Fotos misturadas movem-se como em montage-video (pans, aproximações, movimentos 3D).

    Em seguida, execute node VIDEO/montage.js state/videos/<data>-<slug>.md. Ele escreve <data>-<slug>.html ao lado do script, imprime a tabela de takes, o som, a voz, e quaisquer notas (um clipe mais curto que seu take, um take mantido para que sua etiqueta possa ser lida), e executa render.js --check. Corrija o que a verificação listar, geralmente encurtando uma etiqueta, e execute novamente até estar limpo.

  8. Primeiro corte. Olhe cada quadro de node VIDEO/render.js <page> --slides você mesmo: o assunto no quadro (não cortado de um clipe paisagem), etiquetas legíveis, legendas claras das etiquetas, a ordem contando a história. Depois:

    • Envie ao usuário os slides para aprovar a ordem e as palavras.
    • Renderize: node VIDEO/render.js <page> state/videos/<slug>-v1.mp4 --cover 0. Ele escreve o MP4 (1080×1920, 30fps), uma imagem de capa e, quando há uma voz ou som de clipe legendado, um arquivo .srt de legenda. --draft faz uma versão rápida de meio tamanho para verificar o tempo primeiro. Nunca publique um rascunho.
    • Você não pode ouvir o resultado. Peça ao usuário para ouvir: a música, cada som de clipe mantido, e o voiceover contra as legendas.
  9. Edite até ficar certo. Cada solicitação se torna uma edição no script, nunca na página, porque montage.js recalcula toda a temporização:

    O usuário dizMudança no script
    "use a parte em que ela ri"o [from:] / [to:] daquele take (encontre na folha --every)
    "corte a parte trêmula"um [from:] posterior, ou um [to:] anterior
    "mais tempo na cozinha"um [to:] posterior, ou [hold: 4s]
    "mais rápido" / "mais devagar"trechos mais curtos, pace: (ex. 3 beats), ou length:
    "faça durar 15 segundos"length: 15, e remova os momentos mais fracos (diga quais)
    "cozinha primeiro", "troque 3 e 5"reordene as linhas numeradas
    "mantenha o som naquele" / "silencie"adicione ou remova [sound]
    "adicione legendas ao que ele diz"[say: <as palavras dele, exatamente>] naquele clipe [sound]
    "adicione meu voiceover"voiceover: e voiceover-text:
    "música diferente" / "sem música"music: outro arquivo, um gênero, ou none
    "mostre o lado esquerdo", "mantenha ela no quadro"[focus: 25%,50%]
    "dê zoom nisso"[move: push-in] (com [focus:] no ponto)
    "mais suave" / "cortes mais marcantes"transition: fade, ou cut, slide, zoom, wipe, flash
    "mude o texto"a etiqueta, hook:, cta:, price:, specs:
    "câmera lenta"não suportado: sem mudanças de velocidade. Um clipe filmado em câmera lenta do celular toca como filmado
    "outra cor / logotipo / número de telefone"o perfil do cliente, não o script

    Cada rodada: edite o script, execute montage.js novamente, depois use --draft para uma mudança de tempo ou --slides para uma mudança de aparência. Renderize a próxima versão como <slug>-v2.mp4, -v3.mp4, e assim por diante. Nunca sobrescreva uma versão anterior, para que o usuário possa voltar atrás.

    Se um take mudou muito (re-filmado, ou um clipe completamente diferente), o número do arquivo não corresponde mais. Atualize o nome do arquivo na linha. Se o usuário re-filma algo, importe-o com montage.js inspect com o slug existente e um prefixo 02 (ex. taco-night-02-night-01.mp4) para não confundir com os originais.

    Renderize o final apenas quando o usuário aprovar. O nome do arquivo final é <slug>.mp4, sem número de versão.

  10. Entregue. Uma mensagem:

    • O vídeo: <slug>.mp4 e, se contiver voz ou som legendado, <slug>.srt.
    • Uma imagem de capa, se eles quiserem uma (<slug>.png, 1080×1920).
    • Lembre-os de etiquetar a conta do cliente se o cliente fez o upload das gravações originais.
    • Pergunte se eles querem legendar em outro idioma para o público deles. Se sim, execute node VIDEO/captions.js <slug>.mp4 --lang es, --lang fr, etc. (ou uma lista, --lang es,fr,de). Os legendas são salvos ao lado do MP4.
    • Lembre-os de marcar a postagem como Parceria Paga e incluir a divulgação necessária ("Em parceria com [Cliente]").
    • Pergunte se eles querem adicionar a postagem à biblioteca (state/posts/), e se sim, escreva um resumo.

Outras habilidades

  • montage-video — quando o usuário tem apenas fotos
  • marketing-skill — campanhas, agendamentos e redação de postagens
  • brand-guide — configurar e atualizar guias de marca
  • tag-library — criar e reutilizar tags/etiquetas para postagens

Individual skills in this repo

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

Habilidades Relacionadas