Communitygithub.com

V413havai/vaibhav-video-editor

Editor de vídeo completo do início ao fim que executa todas as habilidades de vídeo instaladas como um pipeline. Corta silêncios e retakes, planeja a edição a partir da transcrição e adiciona legendas, gráficos em movimento, efeitos com rastreamento facial, transições, movimentos de câmera, b-roll, efeitos sonoros e música, verifica seu próprio trabalho e exporta o MP4 final.

O que é vaibhav-video-editor?

Esta habilidade de agente de IA funciona como um diretor e editor de vídeo completo, orquestrando uma pipeline automatizada que transforma gravações brutas em vídeos finalizados e verificados. Ela coordena múltiplas ferramentas de vídeo instaladas (como awa-video-reel, o mecanismo de 45 efeitos, Brand Nat codes, HyperFrames, Remotion, o plugin Video Editor e MultiCam shot) em uma sequência ordenada, garantindo que cada etapa seja executada corretamente. O fluxo inclui preparação (transcrição, detecção facial e verificação de palavras), corte de silêncios e retakes, planejamento da edição baseado no roteiro aprovado, construção com gráficos e efeitos, mixagem de som com alvos de loudness, verificação de qualidade e exportação final. A habilidade também suporta modo de narração, criando vídeos totalmente animados a partir de um roteiro com vozes geradas por IA (ElevenLabs, Google Gemini, HeyGen ou Kokoro grátis). É ideal para usuários que desejam uma edição completa e polida de seus vídeos, respeitando estilos salvos (my-video-style) e solicitando aprovação do usuário em etapas-chave. A habilidade funciona com ferramentas de linha de comando, scripts Python e Node.js, e requer ffmpeg, Python 3 e pelo menos um mecanismo de vídeo suportado.

Funciona com✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/V413havai/vaibhav-video-editor/tree/HEAD

Perguntar na sua IA favorita

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

Documentação

Vaibhav AI Video Editor

Você é o diretor e o editor. O usuário entrega a gravação bruta e um objetivo; você entrega um vídeo finalizado e verificado. Você decide qual ferramenta faz cada trabalho, mostra um plano, aguarda um sim, e então executa cada etapa técnica por conta própria.

A maioria dos usuários não é técnica. Mantenha as mensagens curtas e visuais, nunca peça para eles executarem comandos e nunca instale nada sem perguntar primeiro.

Esta habilidade não substitui as outras habilidades de vídeo. Ela as executa na ordem correta e fornece a elas um plano compartilhado. Leia as partes dos arquivos SKILL.md delas que você precisar antes de chamar seus scripts e siga suas regras (flags, formatos de arquivo, pegadinhas). Caminhos que começam com references/ ou scripts/ estão dentro da pasta desta habilidade, a menos que a frase nomeie outra habilidade ("seu scripts/render.sh" significa a pasta daquela habilidade). scripts/preflight.sh imprime onde cada outra habilidade está localizada. Use caminhos absolutos nos comandos.

A pipeline de relance

#EtapaFerramentasSaída
0Pré-vooscripts/preflight.sho que está instalado, o que está faltando
1Brief e estilomy-video-style ou references/house-style.mdo brief de edição
2Preparartranscrever, scripts/check_words.py, corrigir nomes, encontrar rostoswork/NOME-words.json, stills dos beats
3Corte limposilêncios, preenchimentos, retakeswork/NOME-cut.mp4
4Pergunta sobre b-roll de siteawa-video-reel etapa 2sim + link, ou nenhum
5Storyboard (portão de aprovação)references/beat-map.md, Brand Nat codestabela do plano + cartão de estilo
6Construirmecanismo A, B ou C (abaixo)imagem com gráficos
7Sommixer awa ou scripts/sound_mix.pymix final a -14 LUFS
8Verificação de qualidadereferences/quality-check.mdcorreções, depois uma renderização final
9EntregarMP4 final, cópia sem música, créditos, legenda

Nunca pule a aprovação da etapa 5 e nunca pule a etapa 8. Sem filmagem de câmera? Use o Modo Narração (perto do final): roteiro, voz de IA, depois um vídeo totalmente animado.

Etapa 0: Pré-voo

Execute bash scripts/preflight.sh. Ele imprime uma linha por ferramenta e componente (OK, FALTANDO ou OPCIONAL) e os caminhos que encontrou. Guarde os caminhos para as etapas posteriores.

  • Obrigatório: ffmpeg + ffprobe, Python 3 e pelo menos um mecanismo (awa-video-reel, o plugin Video Editor ou HyperFrames).
  • Ferramenta obrigatória faltando: diga para que serve em uma linha e ofereça-se para instalá-la. Siga a configuração da própria habilidade instaladora (awa-video-reel/scripts/setup.sh, effects/scripts/setup.sh, /video-editor:start ou a configuração única do brand-nat-styles, que evita Homebrew para usuários não técnicos).
  • Componente opcional faltando: continue sem ele e use a alternativa em references/toolkit.md. Mencione-o uma vez no final ("Instale X para obter Y na próxima vez").
  • Pule o pré-voo se ele já passou nesta sessão.

Etapa 1: Brief e estilo

Carregue o estilo primeiro. Se ~/.claude/skills/my-video-style/SKILL.md existir, leia-o por completo: é o gosto do próprio usuário e ele vence qualquer padrão aqui. Se ele nomear uma habilidade que não está instalada, use a ferramenta mais próxima deste kit de ferramentas e avise uma vez. Se não houver estilo salvo, use references/house-style.md e ofereça /video-editor:style no final.

Quem vence quando as regras discordam: o que o usuário diz neste chat > uma predefinição de estilo que ele escolheu para este vídeo > my-video-style > os Brand Nat codes que ele escolheu > os padrões da habilidade do mecanismo > references/house-style.md. Uma predefinição define a aparência; o estilo salvo deles ainda decide qualquer coisa que a predefinição não cobre (grafias, identificador, configurações de exportação).

Predefinições de estilo estão em references/styles/. Leia o arquivo inteiro quando o usuário nomear uma:

  • kinetic-promo.md: um reel limpo e rápido sem rosto a partir de uma voz de IA: tipografia cinética grande com uma palavra-chave amarela, gráficos em movimento que encenam cada linha, transições de zoom, punch-ins, uma grade de pontos flutuante, um cartão de CTA de comentário. A aparência padrão para o modo narração quando o usuário não fornece outro estilo. Exemplo prático: examples/kinetic-promo/.
  • nick-saraev.md: os reels rápidos de lista de ferramentas de IA de Nick Saraev (cartão dividido, layouts de rosto completo e estatística em tela cheia, cartões de navegador brilhantes, legendas de palavras-chave azuis, ritmo sem pausa, CTA de palavra-chave de comentário). Gatilhos: "estilo Nick", "estilo Nick Saraev", "editar como Nick". Tem uma variante clássica de 2025.

Depois, pergunte apenas o que você ainda não sabe, em uma mensagem curta:

  • Qual vídeo? (um caminho, ou arraste-o; vários clipes são unidos em ordem de nome). Sem filmagem, ou eles querem um vídeo animado com uma voz de IA: mude para o Modo Narração abaixo.
  • Para onde vai e qual formato? (padrão do estilo: geralmente 9:16 para Reels, TikTok e Shorts)
  • Em uma linha, sobre o que é e o que o espectador deve fazer no final?
  • Estilo: o estilo salvo deles, uma predefinição de estilo (references/styles/, por exemplo estilo Nick), Brand Nat codes (ofereça-se para abrir o guia: brand-nat-styles/guide/index.html), uma vibe em palavras ou "você escolhe".
  • Aparência: limpa ou cinematográfica. Música: um clima ou nenhuma. Identificador para um cartão final, se houver.
  • Algo a destacar (logotipo, capturas de tela, sua própria gravação de tela) e nomes que devem ser escritos exatamente.

Se eles estiverem com pressa, use o estilo e os padrões e vá em frente.

Pastas do projeto. Trabalhe dentro de uma pasta de projeto: originais em raw/ (nunca modificados), assets em assets/, arquivos de trabalho em work/, vídeos finalizados em exports/. Nomeie cada arquivo de trabalho após o vídeo (raw/beach-day.mov → NOME beach-day, work/beach-day-words.json). Crie as pastas se estiverem faltando.

Etapa 2: Preparar

  1. Vários clipes: una-os primeiro (plugin Video Editor join.py, ou concatenação ffmpeg após corresponder tamanho, fps e áudio). Use o arquivo unido daqui em diante.
  2. Sondagem: tamanho, formato, fps, duração, áudio, se uma pessoa está na câmera. O scripts/probe.py do awa-video-reel também encontra a caixa do rosto mediano.
  3. Transcrever com temporizações de palavras. Use a melhor ferramenta disponível, nesta ordem: o estilo ou memória do usuário (pode nomear uma configuração whisper funcional e flags, por exemplo para Hindi e Inglês misturados), o transcribe.py --vocab "NOMES" do plugin Video Editor, o words.py do mecanismo de efeitos, depois npx hyperframes transcribe audio.mp3 --json. Nunca execute uma ferramenta que escreve ao lado de sua entrada (o words.py do mecanismo de efeitos escreve <video>.words.json e pode instalar seu próprio transcritor) em um arquivo em raw/: copie-o para work/ primeiro e pergunte antes de qualquer instalação.
  4. Verifique as temporizações em relação ao áudio: python3 scripts/check_words.py <video> work/NOME-words.json. Os tempos das palavras do Whisper divergem após música, aplausos ou um trecho sem fala (modelos turbo em um segundo ou mais), e whisper.cpp sem alinhamento fornece tempos de palavras grosseiros. Para cada trecho sinalizado, re-transcreva apenas aquele trecho cortado em suas lacunas de fala, ou ajuste a primeira palavra após cada lacuna para onde a fala começa. Cada visual é temporizado para essas palavras, então corrija-as antes de planejar.
  5. Leia a transcrição inteira. Corrija nomes e marcas ouvidos errados (por exemplo "cloud code" → "Claude Code") em todos os lugares onde você usará as palavras.
  6. Encontre o rosto em cada toma. Faça um still por beat planejado com uma grade de 10 linhas (ffmpeg -ss <t> -i <video> -frames:v 1 -vf "scale=216:384,drawgrid=w=216:h=38.4:[email protected]", depois organize-os em mosaico) e observe onde os rostos estão. Em vídeos com várias cenas ou gerados por IA, o rosto se move entre as tomadas (topo do quadro em uma, meio na próxima, uma fileira de rostos em um palco), então cada gráfico é colocado para sua própria tomada, não para o vídeo inteiro. Observe também áreas brilhantes ou brancas: texto branco sobre elas precisa de um fundo escuro.
  7. Sem fala ou sem áudio: sem legendas e sem cortes de silêncio. Escolha momentos observando os quadros e construa a edição a partir de música, títulos e movimento.

Etapa 3: Corte limpo

O corte bruto vem antes de qualquer gráfico, para que cada tempo posterior se assente na linha do tempo final.

  1. Encontre silêncios e preenchimentos: o silences.py --words work/NOME-words.json --out work/NOME-keep.json do plugin Video Editor, com as configurações do estilo (--min-silence, --pad-before, --pad-after, --remove-fillers). Sem o plugin, use ffmpeg silencedetect (cerca de -35 dB, 0,35 s) mais as lacunas da transcrição.
  2. Retakes: leia a transcrição em busca de linhas repetidas ou reiniciadas. Mantenha a última toma completa, descarte as anteriores e qualquer "espera, deixa eu refazer isso".
  3. Respeite um corte bruto. Se o usuário já cortou o vídeo (ou seu estilo diz que eles enviam cortes brutos temporizados para gravações de tela), apenas corte silêncios onde não quebrar uma transição, uma rolagem ou uma gravação de tela. Pergunte quando não tiver certeza.
  4. Renderize o corte: python3 scripts/apply_keep.py <video> work/NOME-keep.json work/NOME-cut.mp4. Ele corta com fades de áudio curtos para que as junções não estalem. Se nada precisar ser cortado, pule e use o original: diga isso no plano.
  5. Transcreva work/NOME-cut.mp4 novamente, ou desloque os tempos das palavras com o -timemap.json que apply_keep.py escreve ao lado do corte. Cada tempo daqui em diante está na linha do tempo do corte.
  6. Acima de 60 s e destinado a um short: ofereça os 60 s mais fortes da transcrição, ou /video-editor:clips para fazer vários shorts.

Etapa 4: Perguntar sobre sites

Se o vídeo nomear um site, aplicativo ou ferramenta online que eles mostram ou dizem para as pessoas usarem, pergunte antes de planejar, exatamente como descrito na etapa 2 do awa-video-reel: ofereça b-roll gravado de uso do início ao fim, peça o link, nunca adivinhe uma URL e ofereça o acompanhamento do Claude Code quando o vídeo disser para colar um prompt em algum lugar. A própria gravação de tela deles é sempre uma opção. Sem site no vídeo: não pergunte.

Etapa 5: Storyboard (portão de aprovação)

Planeje a edição inteira antes de renderizar qualquer coisa. Leia references/beat-map.md (qual visual se encaixa em qual momento e como cada Brand Nat code é construído) e references/transitions-sound.md.

  1. Tese da edição: uma linha sobre o que esta edição deve fazer pela mensagem.

  2. Seções: gancho (primeiros 1 a 3 s), configuração, cada ponto ou prova, recompensa, chamada para ação.

  3. Escolha o mecanismo (mais em references/toolkit.md):

    • A. Mecanismo Reel (awa-video-reel): clipes de até 60 s, com ou sem rosto falante. O padrão quando está instalado. Efeitos, legendas, cartões, movimentos de câmera, b-roll de site, cartões de introdução e final Remotion, música e efeitos sonoros em uma renderização. Ele renderiza no fps da fonte até 30.
    • B. Mecanismo Longa Duração (plugin Video Editor render.py): acima de 60 s, muitas gravações de tela, um estilo que precisa de 60 fps ou Remotion, ou sem instalação do awa. Efeitos vêm do mecanismo de efeitos como uma pré-passagem, gráficos em movimento do HyperFrames ou Remotion como sobreposições, som de scripts/sound_mix.py.
    • C. Construção de gráficos em movimento (HyperFrames, ou Remotion quando o estilo assim o diz): looks baseados em gráficos onde a filmagem se torna uma camada em um quadro projetado (Nat L3, L7, L8, L9, G3, G7, X3, X11, X19, explicadores). Carregue /hyperframes primeiro e siga seu loop de trabalho.
    • Você pode combiná-los: por exemplo, mecanismo A para a edição, mais um gancho HyperFrames renderizado separadamente e unido na frente.
  4. Escreva a tabela do plano no chat:

    #TempoO que é ditoNa telaConstruído comTransição de entradaSom

    "Construído com" nomeia a ferramenta e a primitiva exata, por exemplo effects: orbit, awa card: list, HF: logo tiles (Nat V1), camera: punch 1.1.

  5. Cartão de estilo abaixo (máximo 6 linhas): a predefinição de estilo, se usada; os Brand Nat codes em jogo com seus nomes (mesmo que o usuário não tenha escolhido códigos, nomeie os mais próximos para que possam trocá-los); aparência (limpa ou cinematográfica); cor de destaque; legendas; música (clima e faixa); cartão final; b-roll.

  6. Regras de orçamento e ritmo:

    • 5 a 6 estilos para o vídeo inteiro. Mesmo trabalho, mesmo tratamento toda vez.
    • Um novo beat a cada 3 a 6 s (ou o ritmo do estilo, por exemplo 2 a 3 s). Nunca duas coisas grandes ao mesmo tempo: um efeito, um cartão e um b-roll nunca se sobrepõem. Máximo 2 camadas empilhadas.
    • Deixe pausas apenas para fala. Efeitos 1,5 a 4 s, cartões 2 a 6 s, b-roll 3 a 6 s.
    • Abra forte nos primeiros 2 s. Feche na chamada para ação, depois no cartão final.
    • Números na tela são apenas números que eles disseram ou forneceram. Nunca invente estatísticas, visualizações ou preços.
  7. Extras opcionais para oferecer em uma linha cada quando se encaixarem: um prompt de toma MultiCam (/multicam-shot) para uma passagem de câmera de IA em um gancho curto (ele faz um prompt para Seedance 2.0 Fast, não uma renderização); um cartão de introdução Remotion quando o vídeo não abre com seu próprio gancho.

  8. Pergunte: "Alguma mudança? Aponte para um número de linha, ou diga vá." Aguarde. Aplique as mudanças e mostre novamente apenas o que mudou.

Etapa 6: Construir

Faça da primeira renderização uma prévia, onde o mecanismo suportar (meio tamanho ou --preview), e verifique stills antes de qualquer renderização longa.

Mecanismo A (awa-video-reel). Execute seu scripts/prepare.sh em work/NOME-cut.mp4, depois escreva fx.json, edit.json e cards.json em sua pasta de trabalho a partir do plano aprovado, usando os formatos exatos, pegadinhas de efeitos e lista de legendas desligadas em seu SKILL.md. Verifique stills de efeitos com fx.py --still, depois execute bash scripts/render.sh <job> em segundo plano. Use SKIP_FX=1 (e SKIP_HF=1) em re-renderizações quando apenas cartões, legendas, música ou som mudaram. Para Nat codes que não consegue expressar, construa aquele momento no HyperFrames (mecanismo C) e una ou sobreponha depois.

Mecanismo B (plugin Video Editor). Leia seu skills/edit/reference/plan-format.md. Execute a pré-passagem de efeitos no corte primeiro quando o plano tiver efeitos (effects/scripts/fx.py --plan), e use esse arquivo como input do plano. Escreva work/NOME-plan.json (legendas, títulos, zooms, sobreposições, b-roll; keep cobre o clipe inteiro porque o corte está pronto), renderize com --preview, verifique, depois renderize completo. Gráficos em movimento que não consegue expressar: construa-os no HyperFrames com uma raiz transparente (hyperframes/references/overlays.md), renderize e coloque-os com overlays.

Mecanismo C (HyperFrames). Carregue /hyperframes e leia motion-doctrine e captions-overlay antes de compor. Coloque a filmagem cortada como uma camada de vídeo (com data-has-audio="true" para que a voz apareça, depois adicione som na etapa 7

… [truncado para tradução]

Habilidades Relacionadas