Communitygithub.com

Robbert-Sombrio/VideoEdit-

Transforma clipes brutos 9:16 em um reel do Instagram premium do início ao fim: seleciona as melhores takes, corta silêncios, faz zoom, remove o fundo, aplica estilos visuais, insere animações e verifica cada corte dentro da zona segura do Reels.

O que é VideoEdit-?

Esta skill automatiza completamente a produção de reels do Instagram a partir de clipes brutos 9:16. Ela recebe os arquivos de vídeo do usuário, seleciona as melhores takes de cada linha de fala, remove pausas e ruídos, faz zoom (punch-in) em segments, remove o fundo para exibir palavras atrás da cabeça, aplica um de três estilos visuais (bold, cool girl, cool dude), cria inserções animadas com agentes paralelos, adiciona design de som sutil e verifica cada corte quadro a quadro dentro da zona segura do Reels. A skill é baseada em uma série de scripts Python que orquestram ferramentas como FFmpeg, HyperFrames e Node.js, e funciona em macOS, Linux e Windows. O usuário nunca precisa abrir um editor de vídeo; ele apenas revisa uma cópia no celular e dá feedback, com cada iteração gerando um novo render em cerca de 2 minutos. A configuração inicial é feita uma vez e detecta automaticamente o sistema operacional e as ferramentas disponíveis.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Robbert-Sombrio/VideoEdit-/tree/HEAD/.claude/skills/video-edit

Perguntar na sua IA favorita

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

Documentação

/video-edit

Clipes brutos entram, reel finalizado sai. O usuário nunca abre um editor: ele revisa uma cópia no celular e dá feedback; cada rodada é um re-render de ~2 minutos.

Leia antes de construir: references/looks.md (os três looks, valores exatos), references/layout.md (zona segura, posicionamento, fórmula atrás da cabeça), references/gotchas.md (todas as armadilhas já enfrentadas). Leia references/overlays.md quando o roteiro pedir uma inserção animada.

Funciona em macOS, Linux e Windows. setup.py detecta a máquina no início de cada execução e todo comando abaixo vem desse registro, então nunca adivinhe caminhos ou shells: veja "Esta máquina" logo após o Passo 0.

Passo 0: Configuração inicial (executada uma vez)

SK é a pasta desta skill (a que contém este SKILL.md), como caminho completo. Geralmente ~/.claude/skills/video-edit; no Windows é C:/Users/<nome>/.claude/skills/video-edit.

Procure por SK/config.json.

Se existir: carregue-o (nome, handle do Instagram, look padrão, pastas), execute o script de configuração exatamente como no passo 3 abaixo (alguns segundos: ele só verifica e repara o ambiente após uma atualização), leia "Esta máquina", e vá para o Passo 1 assim que imprimir PRONTO.

Se não existir:

  1. Diga: "Bem-vindo ao /video-edit! Vamos configurar você. Isso leva cerca de 2 minutos e acontece apenas uma vez."
  2. Pergunte, em uma única mensagem:
    • Seu nome (usado na inserção do perfil do Instagram)
    • Seu handle do Instagram (para a inserção do perfil e para puxar seus reels para o efeito de órbita)
    • Look padrão: bold (palavras cinéticas atrás da cabeça), cool girl (quente, serifado itálico amarelo, seus reels orbitando você) ou cool dude (editorial escuro, caps rastreados + serifado). Ofereça bold se ele(a) não tiver certeza.
    • Onde seus clipes brutos geralmente ficam (padrão ~/Downloads) e onde os projetos devem viver (padrão ~/reel-edits)
  3. Execute o script de configuração com o Python que a máquina tiver. Tente estas ordens até que uma imprima linhas STATUS: python3 "SK/scripts/setup.py", depois python "SK/scripts/setup.py", depois py -3 "SK/scripts/setup.py". (No Windows, python3 geralmente é um stub da Microsoft Store que imprime "Python was not found": apenas tente o próximo.) Se nenhum funcionar: Python está faltando. Dê a correção para o sistema deles e pare (Windows: winget install --id Python.Python.3.12 -e, Mac: brew install python, Linux: sudo apt install python3 python3-venv). Em seguida, leia as linhas STATUS:
    • ffmpeg / node / python venv AUSENTE: a linha termina com a correção exata para ESTA máquina (winget no Windows, brew no Mac, apt no Linux). Entregue ao usuário e pare até que o script imprima PRONTO.
    • Windows: o usuário cola as linhas winget na própria janela do PowerShell (winget pede para concordar com seus termos na primeira vez), depois sai do Claude Code completamente e o reabre, ou os novos programas não são encontrados.
    • O script baixa os 6 efeitos sonoros sozinho. Se ainda relatar AUSENTES (offline), isso é opcional: o reel simplesmente não terá SFX até que sejam adicionados.
  4. Opcional, Apify (puxa reels e estatísticas do perfil automaticamente): tente uma chamada MCP Apify simples. Se não estiver conectado, diga que é opcional e como adicioná-lo:
    1. Crie uma conta gratuita em https://apify.com e copie o token de API de Configurações > API & Integrations.
    2. No terminal, cole esta linha com o token no lugar de SEU_TOKEN: claude mcp add apify -e APIFY_TOKEN=SEU_TOKEN -- npx -y @apify/actors-mcp-server (atenção: o Claude Code armazena o token em texto simples em ~/.claude.json; mantenha esse arquivo privado).
    3. Reabra o Claude e execute /video-edit novamente. Sem Apify, a skill pede para o usuário soltar os arquivos de reel no projeto.
  5. Salve SK/config.json (sem segredos, nunca):
    {"name": "...", "instagram": "handle-sem-@", "defaultLook": "bold", "clipsDir": "~/Downloads",
     "projectsDir": "~/reel-edits", "setupComplete": true, "setupDate": "AAAA-MM-DD"}
    
  6. Diga: "Configuração concluída! Executando /video-edit agora..." e continue.

Esta máquina (leia a cada execução)

Leia SK/.platform.json, escrito por setup.py. Ele registra o SO (os: macos, linux ou windows), a CPU e os comandos exatos para este computador:

  • PY = seu valor python: o Python da própria skill (.venv/bin/python no Mac e Linux, .venv/Scripts/python.exe no Windows). Execute TODO script Python desta skill com ele, nunca um python3 puro.
  • HF = PY "SK/scripts/hf.py": inicia o HyperFrames fixado (npx --yes [email protected] ...) com o Node correto em qualquer SO. Sem nvm use, sem problemas com npx.cmd.
  • cutout: CoreML (Apple Silicon) ou CPU (Windows, Linux, Macs Intel: sem ajuda de GPU, então a etapa de cutout é a lenta; diga isso, execute em segundo plano e continue construindo).

setup.py reescreve este arquivo a cada execução (Passo 0), então está sempre atualizado. Arquivo ausente, ou PY não existe mais: a configuração não foi executada ou não chegou ao PRONTO; execute-a como no Passo 0.3 e siga a correção.

Um estilo de comando que funciona em zsh, bash, Git Bash e PowerShell:

  • Caminhos completos entre aspas duplas com barras normais (funciona no Windows também): "PY" "SK/scripts/ingest.py" "<projeto>".
  • No PowerShell (Windows sem Git para Windows, ou sempre que a ferramenta PowerShell for a que você tem) coloque & na frente: & "PY" "SK/scripts/ingest.py" "<projeto>".
  • Um comando por chamada. Sem &&, sem VAR=1 comando, sem ~ dentro de argumentos, sem source, sem zsh.
  • ffmpeg e ffprobe estão no PATH em todos os SOs (a configuração verifica), então comandos ffmpeg avulsos são os mesmos em todos os lugares.

Regras rígidas

  1. Tudo dentro da zona segura do Reels: topo 220, fundo 450 (nada abaixo de y 1470), laterais 35, direita 100 a partir de y 1155.
  2. Nunca cubra o rosto com texto ou cartões. Palavras atrás da cabeça mostram pelo menos ~70% de cada letra.
  3. Legendas dizem o que foi realmente dito: corrija os erros de interpretação do Whisper em nomes e palavras-chave ("Claude" geralmente aparece como "cloud"/"claws", "skill" como "scale"). Sem travessões em texto na tela.
  4. Efeitos sonoros sutis (modelo SFX_GAIN = 0.75 dos volumes base), nunca mais altos que a voz.
  5. Dê crédito a outros criadores na tela (@handle) sempre que seus reels aparecerem. Números reais no próprio perfil do usuário; qualquer outra coisa (comentários, histórico de chat) é um placeholder genérico, nunca uma pessoa real, nunca uma prova fabricada.
  6. Prove cortes a partir do render final, não de snapshots.
  7. Nunca delete os arquivos do usuário. Os originais são lidos, nunca modificados.

Fluxo de trabalho

1. Entrada

  • Clipes: os arquivos que o usuário nomear, senão os arquivos de vídeo mais recentes em clipsDir. Crie <projectsDir>/<slug-curto>/. (~ no config.json é a pasta home do usuário, C:/Users/<nome> no Windows. Os scripts da skill expandem isso.)
  • Links de referência (IG reels, pins do Pinterest) para um estilo: baixe-os e analise os quadros antes de projetar qualquer coisa (veja overlays.md para como buscá-los).

2. Ingestão

PY SK/scripts/ingest.py <projeto> <clipes ou pasta> [--newest 5]

Veja work/sheets.jpg (cenas e ângulos) e leia transcript.txt (linhas por clipe, palavras com tempos, mapa de fala).

3. Escolher takes -> <projeto>/edl.json

  • Reconstrua o roteiro a partir das takes: as pessoas repetem uma linha até acertar. Use a ÚLTIMA take completa e limpa, a menos que o usuário diga o contrário ("a melhor parte começa em 0:47" significa uma take contínua a partir dali).
  • Pontos de entrada/saída do mapa de fala: comece ~0,05-0,07s antes da primeira palavra, termine no início do silêncio após a última palavra. Elimine ar morto entre seções; confirme pausas curtas com silencedetect antes de cortar (Whisper pode inventar uma palavra principal em um corte).
  • Dois segmentos consecutivos do mesmo ângulo: faça punch-in em um (zoom 1,3-1,9 do original 4K, cx/cy no peito).
  • Palavras incertas (palavra-chave, gatilho CTA): re-transcreva aquele trecho com medium.en e um prompt contento os nomes.
  • Formato: [{"id": "gancho", "clip": "c1", "in": 12.66, "out": 15.72, "zoom": 1.0, "cx": 0.5, "cy": 0.5, "line": "..."}]
  • Poste a EDL para o usuário como uma tabela curta (linha, clipe, look por seção) e continue; não espere.

4. Montar, transcrever, remover fundo

PY SK/scripts/assemble.py <projeto>                 # aroll.mp4 limpo 30fps CFR + segments.json com quadros exatos
PY SK/scripts/transcribe_cut.py <projeto> "<nomes e palavras-chave no roteiro>"
PY SK/scripts/cutout.py <projeto>                   # execute em segundo plano; garante que cutout frames == aroll frames
PY SK/scripts/headpos.py <projeto>                  # após o cutout: posição cabeça/corpo por segmento

Um cutout de cada vez (cerca de 1,5 GB de RAM). Ele imprime uma linha de progresso a cada 30 segundos.

5. Inserções em paralelo (assim que a EDL estiver bloqueada)

Para cada inserção animada que o roteiro pedir (um aplicativo na tela, o perfil seguir no CTA, um scroll de arquivo), gere um sub-agente em segundo plano com o modelo de briefing em references/overlays.md: tamanho fixo, duração fixa, batidas sincronizadas com os tempos das palavras, saída webm transparente. Continue construindo a edição principal enquanto eles trabalham.

6. Construir

Copie SK/assets/template/ para o projeto (build.py, hyperframes.json, package.json, assets/fonts, assets/sfx), depois adapte build.py. É a construção final de um reel real: mantenha a maquinaria, reescreva o conteúdo (sua docstring lista o que é o quê).

  • Qual look onde: defaultLook para todo o reel; uma linha que nomeia um look muda sua seção.
  • Órbita e grade de perfil usam os próprios reels do usuário (overlays.md: Apify post scraper com o handle deles, ou arquivos que eles soltarem em assets/reels/).
  • Itere a partir da pasta do projeto: HF lint (0 erros), depois PY build.py --safe, depois HF snapshot --at <10-20 momentos> --no-end --describe false. Leia as folhas de contato, corrija layout, legibilidade e zona segura. (HF escolhe o Node correto por si só, então não há nvm use.) Um build.py copiado de uma versão anterior desta skill ignora --safe: se o guia vermelho estiver faltando nos snapshots, construa esse projeto da maneira antiga, SAFE=1 "PY" build.py (tais projetos só existem no Mac e Linux).

7. Renderizar e QA

PY build.py           # sem --safe
HF render -o renders/<slug>-vN.mp4 --quality high      # ~1,5-2 min para um reel de 25s no Apple Silicon
PY SK/scripts/check_cuts.py <projeto> renders/<slug>-vN.mp4 --phone

Veja work/cut_check.jpg: cada quadro após o corte mostra o novo take limpo. Verifique picos de áudio (volumedetect, máx. em torno de -2 a -5 dB) e o silêncio nas junções das seções.

8. Entregar

Envie ou aponte para a cópia para celular (720p) e o render em qualidade total. Relate em termos simples o que mudou e qualquer coisa que precise da decisão do usuário. Mantenha cada versão em renders/; faça backup de assets/ + segments.json para work/vN/ antes de remontar.

Padrões que vieram de feedback real (não reabrir discussão)

  • Mude a correção de cor e as legendas para criar um look; não substitua o fundo por uma sala gerada por IA.
  • Sem granulação de filme. Escuro é aceitável, mas mantenha o sujeito iluminado e a pele sem ficar vermelha.
  • Legendas de introdução centralizadas na frente do falante são melhores do que linhas presas à borda esquerda.
  • Palavras atrás da cabeça são a jogada característica, mas apenas quando legíveis.

Construído por @tenfoldmarc. Siga para construções diárias de automação AI, sistemas reais, não teoria.

Habilidades Relacionadas