O que clipper faz?
Insira um vídeo e Claude encontra os momentos mais fortes, transformando-os em clipes curtos com legendas, prontos para publicar.
Tudo roda neste computador. Nada é enviado. A skill reside em ~/.claude/skills/clipper/; suas ferramentas são
scripts/transcribe.py e scripts/make_clips.py, executadas com o próprio Python da skill: ~/.claude/skills/clipper/.venv/bin/python.
0. Verifique a instalação (a cada execução)
test -x ~/.claude/skills/clipper/.venv/bin/python && command -v ffmpeg
Se algo estiver faltando, informe o usuário em uma linha e execute o instalador do repositório clonado
(bash install.sh dentro da pasta clipper-skill). Se não encontrar a pasta, clone novamente:
git clone https://github.com/corbinsylk/clipper-skill && cd clipper-skill && bash install.sh.
1. Obtenha o vídeo
O usuário arrasta o arquivo ou fornece um caminho. Se não fornecer nenhum, peça em uma linha. Ambos os scripts usam a pasta
de trabalho <nome do vídeo>-clips/ ao lado do vídeo, a menos que você passe outra. Configurações que o usuário pode fornecer (caso contrário, use os padrões, nunca pergunte):
| Configuração | Padrão |
|---|---|
| Quantos clipes | 3 a 5, tantos quantos forem genuinamente fortes |
| Duração do clipe | 20 a 60 segundos (ideal 30 a 45) |
| Cores das legendas | off-white #F5F1EA, a palavra sendo dita em clay #B03926 |
| Legendas | ativadas |
2. Transcreva
~/.claude/skills/clipper/.venv/bin/python ~/.claude/skills/clipper/scripts/transcribe.py "<video>"
Ele imprime a pasta de trabalho primeiro. A primeira execução baixa o modelo de fala uma vez (cerca de 500 MB para small); um vídeo de 2 minutos leva cerca de um minuto, um de uma hora leva vários minutos. Para qualquer coisa acima de 10 minutos, execute o comando em segundo plano (no Claude Code: a ferramenta Bash com run_in_background) e informe ao usuário que está processando. Para sotaque forte ou áudio ruim, adicione --model medium. Um aviso sobre token HF ou dica de velocidade na primeira execução é inofensivo.
3. Escolha os momentos (esta é sua tarefa, não de um script)
Leia <pasta de trabalho>/transcript.md na íntegra. Escolha os 3 a 5 momentos mais fortes. Um momento forte:
- Abre com um gancho em sua primeira frase. Uma afirmação ousada, um número surpreendente, uma pergunta, um erro, o início de uma história. Nunca comece com "então", "e", "hum", "como eu disse" ou uma linha que precise de contexto anterior.
- É autônomo. Alguém que nunca viu o vídeo completo entende. Sem "isso", "aquela coisa" ou "como mencionei" apontando para fora do clipe.
- Tem retorno. Termina na resposta, na piada, no resultado ou na lição: um pensamento completo, nunca no meio da frase.
- Tem energia. Opiniões, detalhes, números, emoção, uma reviravolta. Pule saudações, leituras de patrocinadores, avisos e introduções lentas.
- Não repete outra escolha. Cada clipe faz um ponto diferente, e os clipes nunca se sobrepõem no tempo. Um vídeo curto gera menos clipes: abaixo de cerca de 5 minutos, 1 a 3 clipes é normal; nunca estique ou sobreponha para atingir um número.
Pontue cada um de 1 a 10 (gancho, autonomia, retorno, energia juntos). Mantenha apenas os que pontuam 7 ou mais; se menos de 3 pontuarem,
mantenha os 3 melhores e diga que são mais fracos. Em seguida, escreva <pasta de trabalho>/moments.json:
[
{"title": "Título curto para o arquivo", "start": 63.2, "end": 101.8, "score": 9,
"hook": "a primeira frase do clipe, palavra por palavra",
"why": "uma linha: por que este momento funciona",
"caption": "uma legenda de postagem pronta: uma linha de gancho, depois 2-3 linhas curtas, depois uma pergunta ou chamada para ação"}
]
start e end são segundos a partir do início do vídeo (os tempos da transcrição estão em minutos:segundos, então 01:03.2 = 63.2).
<pasta de trabalho>/words.json contém cada palavra com seu início (s) e fim (e) exatos: leia para definir as bordas. Defina start
como o s da primeira palavra do gancho e end como o e da última palavra do retorno. O script mantém as palavras de start a end
(com 0,05 s de margem) e nunca alcança a palavra anterior ou posterior, portanto, para descartar uma palavra como "Então", defina start como o s da próxima palavra.
4. Crie os clipes
~/.claude/skills/clipper/.venv/bin/python ~/.claude/skills/clipper/scripts/make_clips.py "<video>"
Adicione --text-color "#FFFFFF" --active-color "#FFD400" para outras cores de legenda, ou --no-captions. Leva cerca de um
minuto por clipe.
Cada clipe: cortado nas bordas das palavras, reenquadrado para 1080x1920 (um vídeo largo é cortado ao redor do rosto do falante; qualquer trecho de um
segundo ou mais sem rosto, como um gráfico, tela ou cena de apoio, é exibido inteiro sobre um fundo desfocado em vez de cortado; um
vídeo vertical é mantido inteiro), legendas três palavras por vez com a palavra falada destacada, som nivelado a -14 LUFS.
5. Verifique antes de entregar
Abra cada clipes/NN-*.jpg: cada um é uma faixa de 8 quadros ao longo de todo o clipe. Olhe para todos:
- O rosto está no quadro e as legendas legíveis, abaixo do queixo, em todos os quadros de fala.
- O vídeo já possui legendas queimadas (você vê dois conjuntos de palavras): recrie todos os clipes com
--no-captions. - O script imprime "rosto em X/Y verificações" por clipe. Se X for 0, não há rosto para enquadrar (gravação de tela, slides): o clipe é centralizado, então informe isso no relatório. Quadros sem rosto são esperados em um vídeo editado; são as cenas de apoio que ele exibe inteiras.
- Se um clipe começa ou termina no meio de uma palavra ou pensamento, corrija
start/endem moments.json e recrie apenas aquele clipe com--only N.
6. Relatório
Uma lista curta: arquivo de cada clipe, duração, pontuação e por que funciona, além de sua legenda de postagem. Aponte para
clipes/scores.md (tudo em um arquivo) e para a pasta clipes/. Ofereça um próximo passo: momentos diferentes, outras cores
de legenda ou clipes mais longos/mais curtos.