O que Edição de Vídeo faz?
Esta skill transforma filmagens brutas em uma edição finalizada junto com um editor humano. Leia este arquivo inteiro antes de tocar em um projeto. Em seguida, leia reference/audio.md antes de qualquer corte ou alteração de nível, e reference/style.md antes de qualquer gráfico.
Leia primeiro: o que você pode e não pode fazer
- Você não pode ouvir. Você nunca escuta o áudio. Tudo o que você sabe sobre o som vem de números: timestamps de palavras do Whisper, uma envelope de energia de 10 ms, medidores de volume, espectrogramas. Diga isso ao usuário claramente e nunca afirme que algo "soa bem".
- O ouvido humano é a verificação final. Se um corte corta uma palavra, se um efeito é muito alto, se a voz parece abafada: o usuário decide. Seu trabalho é tornar cada problema mensurável e cada correção rápida.
- A primeira passagem nunca é a edição final. Trabalhe etapa por etapa, entregue uma prévia após cada etapa e espere correções. A maioria dos bons resultados vem de ciclos de revisão curtos, não de uma longa execução autônoma.
- Sincronize por construção, não por ouvido. Animações e efeitos sonoros são acionados a partir do mesmo relógio da linha do tempo, e esse relógio é derivado dos tempos de palavras medidos. É assim que os efeitos acertam a imagem sem que você os ouça.
- Seja criativo, com propósito. Cada elemento visual deve ajudar o espectador a entender, e nada deve parecer um modelo. Veja "Direção criativa" abaixo.
Caminhos
Os comandos são executados a partir da pasta do projeto do usuário. $SKILL é a pasta onde este arquivo está (por exemplo ~/.claude/skills/video-edit); defina-a uma vez no shell: SKILL=~/.claude/skills/video-edit.
Primeira execução: conheça o criador
Procure pelo perfil do criador em ~/.claude/video-edit/profile.md. Se não existir, esta é a primeira execução: apresente-se em uma mensagem curta e faça estas perguntas juntas. O usuário pode pular qualquer uma delas.
- Nome na tela: o nome e uma função de uma linha para o terço inferior e a tela final.
- Canal: nome do canal, plataformas (YouTube, Instagram, TikTok…), o idioma que eles falam nos vídeos e se querem um segundo idioma na tela.
- Cores: as cores que eles gostam (uma cor de destaque e uma ou duas cores de apoio) e cores que eles nunca querem. Uma miniatura ou uma página de marca também serve como resposta.
- Logotipo: um arquivo de logotipo (SVG ou PNG com transparência) e onde ele pode aparecer: terço inferior, tela final ou em nenhum lugar.
- Fonte: uma fonte da marca ou a padrão.
- Vídeos habituais: educacionais, palestra, tutorial, Shorts e o quão calmo ou enérgico eles gostam do movimento.
- Som: efeitos sonoros nunca, apenas quando um som é a coisa sendo mostrada, ou também silenciosamente nas transições. Música de fundo sim ou não.
- Nunca: coisas que eles não gostam (brilhos, itálico, emoji, zooms rápidos, uma cor…).
Salve as respostas em ~/.claude/video-edit/profile.md (formato em reference/profile.md) e copie o logotipo para ~/.claude/video-edit/brand/. Mostre o perfil salvo em algumas linhas e pergunte se está correto.
A partir de então:
- Leia o perfil no início de cada projeto e aplique-o sem perguntar novamente: as cores de destaque e apoio vão para as variáveis CSS da cena, o nome e o logotipo para o terço inferior e a tela final, e os padrões de som e movimento para o plano.
- Lembre-se das regras duradouras. Quando o usuário der uma regra para todos os vídeos ("sem som nas transições", "entregue sempre em 4K e 480p", "meu sotaque agora é verde"), adicione-a ao perfil em "Regras duradouras" com a data imediatamente e diga que o fez. Uma regra para um vídeo específico vai para o
work/NOTES.mddesse projeto. Quando não tiver certeza, pergunte. - O perfil é pessoal. Ele fica na pasta pessoal do usuário. Nunca o copie para um projeto que seja compartilhado ou para um repositório.
Todo projeto: pergunte
Faça estas perguntas uma vez por projeto e mantenha as respostas em work/NOTES.md. Pule o que o perfil já responde.
- Tipo de vídeo: educacional / explicativo, palestra (cabeça falante), tutorial com gravação de tela ou Short (vertical, abaixo de 60 s). Isso define o nível de movimento (veja a tabela abaixo).
- Material bruto: quais clipes, em qual ordem, há um roteiro ou esboço a seguir?
- Idioma(s) na tela: do perfil, a menos que este vídeo seja diferente.
- Efeitos sonoros: do perfil. Sem perfil, o padrão é sem efeitos nas transições, efeitos apenas onde um som é o assunto.
- Entregáveis: resolução (1080p / 1440p / 4K), legendas e seus idiomas, lista de capítulos do YouTube, prazo.
Tipos de vídeo
| Tipo | Movimento | Efeitos sonoros | Cortes |
|---|---|---|---|
| Educacional / explicativo | Calmo e sério. Diagramas limpos, painéis legíveis, movimentos de câmera lentos. three.js apenas quando explica algo (um modelo 3D da coisa ensinada). | Nenhum ou transições muito silenciosas | Ritmo natural |
| Palestra (cabeça falante) | Poucos cartões que ficam na tela por muito tempo, colocados em áreas vazias, nunca sobre o rosto. | Apenas transições de capítulo silenciosas | Natural ou apertado |
| Tutorial / gravação de tela | Zoom na parte da tela que está sendo discutida, caixas de destaque, cartões de passo. | Cliques suaves opcionais nos destaques | Natural |
| Short | Mais enérgico: revelações mais rápidas, letras maiores, um gancho nos primeiros 2 s, legendas ativadas. Ainda suave, nunca instável. | Permitido, ainda abaixo da voz | Apertado |
Se o usuário não disser, infira o tipo da transcrição e confirme. Não anime demais um vídeo educacional e não faça um Short parecer lento.
Direção criativa
Seja criativo, com propósito. Uma boa edição explica o tópico melhor do que o palestrante sozinho poderia, e nunca parece o mesmo cartão colado repetidamente.
- Explique, não decore. Para cada momento, pergunte: o que faria isso clicar para alguém que nunca ouviu falar? Desenhe a ideia abstrata (para "o modelo precisa de muitos dados", mostre muitos rostos diferentes sendo escaneados e rotulados). Quando uma ferramenta, idioma ou termo é nomeado que muitos espectadores podem não conhecer, mostre uma pequena caixa: seu nome, que tipo de coisa é (idioma, ferramenta, modelo, conceito) e uma frase simples.
- Use material real. Os próprios dados medidos do vídeo (a forma de onda da frase sendo falada, os números reais de volume), capturas de tela reais e gravações de tela que o usuário possui, o antes e depois reais. Prova real vence um exemplo inventado todas as vezes. Peça ao usuário capturas de tela quando um momento precisar de uma.
- Mostre erros honestamente. Quando o vídeo fala sobre algo que deu errado, mostre a captura de tela real, a nota que foi dada e a versão corrigida lado a lado.
- Varie a forma. Alterne entre um cartão de palavra-chave, uma lista que cresce à medida que cada item é dito, um contador, um quadro de tela cheia para uma ideia densa, um zoom na tela, uma inserção emoldurada de outro vídeo. Escolha a forma que se adequa ao conteúdo, não a usada por último.
- Uma ideia de cada vez, movimento calmo. Criativo não significa ocupado. Mantenha o nível de movimento do tipo de vídeo e do perfil.
- Apresente as grandes peças primeiro. Antes de construir um quadro de tela cheia, uma montagem ou uma cena 3D, descreva-a em duas linhas e deixe o usuário dizer sim.
O fluxo de trabalho
Trabalhe nesta ordem. Após cada etapa numerada, pare e entregue uma URL de prévia ou arquivo mais uma pequena lista do que você decidiu e por quê.
0. Estrutura do projeto
projeto/
src/ clipes brutos (ou links simbólicos para eles)
work/ tudo gerado: wav, transcrições, program.json, proxy.mp4, sfx/, NOTES.md, backups
scene/ a página de gráficos em movimento (copiada do template/ desta skill)
out/ renders e arquivos finais
Mantenha o projeto fora de pastas sincronizadas na nuvem (iCloud Desktop, Dropbox) se possível. Arquivos sincronizados podem ser removidos do disco durante a renderização e as leituras podem travar.
1. Transcrever
python3 $SKILL/scripts/transcribe.py --projeto . src/*.mov --lang en
Isso divide cada clipe em pausas, transcreve cada pequeno trecho separadamente (preenchido com silêncio) e escreve work/transcripts/<clip>.json + .txt com enunciados numerados e tempos de palavras. Transcrever arquivos inteiros esconde retomadas: o Whisper mescla frases repetidas e descarta palavras repetidas. Veja reference/audio.md.
Em seguida, leia os arquivos .txt você mesmo. Marque retomadas, falsos começos, meias frases e palavras de preenchimento. Os palestrantes frequentemente repetem uma frase duas ou três vezes; mantenha a última versão fluente, a menos que o usuário diga o contrário.
2. Corte bruto
Escreva work/edl.json (formato em reference/edl.md): os enunciados a manter, na ordem do roteiro, com marcadores de capítulo. Em seguida:
python3 $SKILL/scripts/cuts.py --projeto . # edl.json -> work/program.json (pontos de corte ajustados às bordas reais das palavras)
python3 $SKILL/scripts/build.py --projeto . audio video # -> work/prog.wav + work/proxy.mp4 (prévia 1080p)
python3 $SKILL/scripts/verify.py --projeto . # retranscreve cada junção, sinaliza palavras cortadas e repetições restantes
Corrija o que verify.py sinalizar, reconstrua e só então entregue. Informe ao usuário o novo comprimento e quantos cortes foram feitos.
3. Ciclo de revisão
- O usuário fornece timestamps. Mapeie-os pelo conteúdo, não pelo relógio. A aba deles pode mostrar uma versão mais antiga. Cite a frase que você acha que eles querem dizer e confirme quando não tiver certeza. Se um tempo não corresponder, pesquise nas transcrições pelas palavras citadas.
- Antes de cada nova versão, copie
work/edl.jsonework/program.jsonparawork/backup/vN/. Se o usuário disser "desfazer tudo", restaure exatamente, não reinterprete. - Nunca substitua
work/proxy.mp4enquanto o usuário o estiver assistindo; escreva o novo e diga quando estiver pronto. - Mude uma coisa de cada vez quando o usuário não estiver satisfeito. Uma prévia quebrada faz as pessoas desconfiarem de toda a revisão.
4. Capítulos
Divida o vídeo em capítulos pelo significado, não pelo relógio:
- Um capítulo por mudança real de tópico, na ordem que o espectador precisa entender. Siga as seções do roteiro quando houver um roteiro.
- Para um vídeo de 10 a 15 minutos, geralmente são de 5 a 10 capítulos principais, cada um com pelo menos cerca de 45 s. Um subtópico curto permanece dentro de seu capítulo como uma mudança de card, não um capítulo próprio.
- Titule cada capítulo com o que o espectador obtém dele ("Onde a IA errou"), não com um rótulo vago ("Parte 3"). Curto o suficiente para ser lido em uma olhada.
- Regras do YouTube: o primeiro capítulo começa em 0:00, pelo menos três capítulos em ordem crescente, cada um com pelo menos 10 s de duração, timestamps escritos com dois-pontos (
0:51, não0.51), na descrição (não em um comentário). Capítulos que quebram uma regra falham silenciosamente.
Proponha a lista com uma linha sobre por que cada capítulo começa onde começa. Após a aprovação, adicione itens {"chapter": "..."} ao EDL. cuts.py imprime uma lista de capítulos do YouTube (0:00 Introdução …) e escreve work/chapters.txt. As sobreposições na tela e a lista do YouTube usam os mesmos tempos.
Uma transição de capítulo na tela é uma sobreposição de quadro inteiro (veja reference/style.md, seção 9): o número do capítulo, o título e uma linha de progresso. Coloque 0,3–0,6 s do tom ambiente do próprio clipe antes de cada capítulo para que a sobreposição nunca atravesse a última palavra.
5. Gráficos, intervalo por intervalo
Copie o template para o projeto (cp -R $SKILL/template scene), sirva o projeto e abra a cena. ?demo mostra a demonstração do próprio template; sem ele, a cena carrega work/program.json e reproduz work/proxy.mp4:
python3 $SKILL/scripts/serve.py --projeto . --port 5600 # http://127.0.0.1:5600/scene/
Trabalhe em um capítulo ou intervalo de tempo de cada vez, nunca no vídeo inteiro de uma vez. Para cada intervalo:
- Liste os momentos: as poucas coisas que valem a pena mostrar (números, etapas, uma comparação, uma ideia-chave, uma fonte). Não coloque a narração na tela. Cartões não são legendas; eles carregam o que a voz não pode (estrutura, dados, uma imagem). Use a direção criativa acima.
- Trave cada momento a uma palavra falada com
at('frase'). Um elemento aparece quando sua palavra é dita (cerca de 0,1 s antes) e sai apenas após o final de sua frase.at()retorna a primeira correspondência: para uma frase dita mais de uma vez, passe{ from: sectionStart }. Um número na fala pode ser um timestamp ("às zero dezoito" é 0:18 de um vídeo, não 0,18 segundos); verifique o contexto antes de desenhá-lo. - Coloque as transições (
reference/style.md, seção 9): uma sobreposição em cada capítulo, um desfoque de mergulho onde a imagem pula, um desfoque de mergulho escuro onde um corte remove um trecho inteiro. Nada em cortes simples. - Verifique
?t=SEGUNDOScongela nos momentos e, em seguida, entregue a URL. Sempre verifique?t=0também: o primeiro quadro é o que o YouTube e a maioria dos players mostram antes da reprodução, então nada que pertença mais tarde pode estar visível lá.
Após um recorte, verifique novamente cada tempo que está vinculado a um momento de origem em vez de a uma palavra: um tempo de origem que foi cortado não existe mais no programa.
As regras que se aplicam a cada quadro estão em reference/style.md. Execute a auditoria de layout antes de cada entrega:
node $SKILL/scripts/audit.mjs http://127.0.0.1:5600/scene/ --every 0.5
6. Efeitos sonoros (apenas se desejado)
Siga o perfil. Sem um, não coloque som nas transições; use efeitos onde um som é o assunto (mostrando como um whoosh em um determinado nível soa, um clique no botão sendo explicado). Gere a biblioteca, em seguida, acione os efeitos da linha do tempo da cena com cue(t, 'whoosh'):
python3 $SKILL/scripts/sfx.py lib --out scene/sfx # --gain -3 torna cada efeito 3 dB mais silencioso
Os níveis e regras estão em reference/audio.md. A primeira reação do usuário ao nível decide: se eles disserem "não consigo ouvir" ou "muito", mude o nível em pequenos passos e lembre a resposta para o resto do vídeo.
7. Renderização e mixagem finais
python3 $SKILL/scripts/build.py --projeto . video --final # vídeo do programa na resolução da fonte (fundo da renderização)
node $SKILL/scripts/render.mjs "http://127.0.0.1:5600/scene/?src=../work/prog-final.mp4" --out out/frames --workers 4 --dpr 2
python3 $SKILL/scripts/mix.py --projeto . --video out/frames --out out/FINAL.mp4
python3 $SKILL/scripts/loudness.py out/FINAL.mp4
Só inicie uma longa renderização final após o usuário aprovar a prévia. Pergunte antes de excluir qualquer coisa para liberar espaço em disco.
Entregue o arquivo mais um pequeno relatório: comprimento, resolução, volume integrado (LUFS), pico verdadeiro (dBTP), capítulos (primeiro e último timestamp), lista de legendas (idiomas).