Kinetic reels
Você cria um reel como um motion designer faria, mas em código: uma página HTML desenha qualquer instante t do vídeo, um navegador headless renderiza quadro a quadro a 30 fps, e ffmpeg adiciona a voz e a música. Mesma entrada, mesmo vídeo, sempre.
SKILL abaixo significa a pasta onde este arquivo está. Execute todos os comandos a partir da pasta do projeto do usuário (onde reels/ e .env residem).
Use python3 no Mac/Linux e python no Windows.
Antes do primeiro reel (uma vez)
node "SKILL/scripts/doctor.mjs". Se imprimir linhas FIX, executenode "SKILL/scripts/setup.mjs", depois faça o que as linhas FIX restantes indicarem. Não prossiga até que imprima ALL GOOD.- O usuário precisa de uma chave da API Gemini em
.env(GEMINI_API_KEY=..., gratuita em https://aistudio.google.com/apikey). Nunca imprima a chave, nunca faça commit de.env. kinetic.config.jsonarmazena o handle (a marca d'água), o nome e uma foto quadrada para o cartão final.new-reel.mjso cria na primeira vez; peça ao usuário os três valores e preencha.
Fazer um reel (cada passo, em ordem)
- Tópico e fatos. Combine UM tópico. Pesquise em fontes primárias (documentação, repositório, página do próprio fornecedor) e escreva cada afirmação em
facts.mdcom a URL e a data em que leu. Sem fato, sem afirmação. - Planeje os beats (mostre ao usuário antes de construir). 38 a 45 s para uma lista de 5 a 7, até 60 s para um explicador. Por cena: segundos, o que é dito, a imagem, o arquivo do asset exato e de onde vem. Se um asset não puder ser encontrado (logotipo, foto, captura de tela), PARE e peça ao usuário. Nunca desenhe um logotipo falso, invente uma interface ou gere uma pessoa.
- Inicie a pasta:
node "SKILL/scripts/new-reel.mjs" <slug> [--logo claude]. O logotipo do canto é o logotipo do próprio tópico (arquivos emas/; adicione o SVG real se estiver faltando). - Roteiro. Escreva
tts.json(o que a voz diz, dividido em hook / corpo / payoff / partes CTA, cada uma com seu próprio estilo) escript.txt(as legendas, mesmas palavras, mesma ordem). Regras:references/SCRIPT.md. Tags e estilos:references/VOICE.md. - Voz:
python "SKILL/scripts/voice.py" reels/<slug>e depoispython "SKILL/scripts/tighten.py" reels/<slug>(pausas para 0,34 s, velocidade normal). Ouça a gravação ou verifique com qualquer transcritor: se uma linha estiver faltando ou um nome estiver errado, corrija o texto e execute voice.py novamente. - Legendagem + tempo:
python "SKILL/scripts/captions.py" reels/<slug>imprimeDUR,SCNeCAPS. Cole-os emreel.js. Ajuste manualmente uma âncora ([email protected]) se uma palavra aparecer cedo ou tarde. - Assets reais: capturas de tela com
node "SKILL/scripts/docshot.mjs" <url> reels/<slug>/as/<nome>.png [--selector "css"], logotipos como SVG do fornecedor ouSKILL/assets/logos. Cada asset recebe uma pequena linha de fonte na tela. Detalhes:references/ASSETS.md. - Construa
reel.js. Leiaexamples/claude-code-shortcuts/reel.jsprimeiro: é o reel de ouro e mostra todos os padrões. Peças que você pode usar:references/COMPONENTS.md. As imagens ficam em y 260 a 1100, as legendas dominam y 1150 a 1570. - Avalie:
node "SKILL/engine/shot.cjs" reels/<slug> auditdeve imprimirLAYOUT PASS. Depoisnode "SKILL/engine/shot.cjs" reels/<slug> prev 0 <um tempo dentro de cada cena>e OLHE para cada still (abra os JPGs). Corrija e repita. Verifique os 5 stills do hook em 0, 0.5, 1, 2, 3 s em relação areferences/SCRIPT.md(regras do hook). - Som: edite
mix.py(DUR, SCN, um som por troca de imagem;references/SOUND.md), executepython reels/<slug>/mix.py. Uma trilha diferente:python "SKILL/scripts/music.py" search "lofi chill"e depoispull <id> reels/<slug>(apenas CC0). - Renderize:
node "SKILL/engine/render.cjs" reels/<slug>e depoispython "SKILL/scripts/finish.py" reels/<slug>(deve imprimir PASS) enode "SKILL/engine/shot.cjs" reels/<slug> cover 0.6. - Entregue
reels/<slug>/out/final.mp4eout/cover.jpg, além de uma legenda com as palavras-chave do tópico na linha 1, 3 a 5 hashtags e as fontes defacts.md.
Regras que mantêm as pessoas assistindo (de resultados reais, não teoria)
- O payoff vai na linha 1. "7 atalhos do Claude Code que quase ninguém usa" vence "Hoje quero mostrar uma coisa".
- Movimento no frame 0. Inicie as entradas em tempos negativos (
popV(t,-0.3,...)) para que o primeiro frame já esteja em movimento. Nunca um primeiro frame vazio ou estático. - Um único visual do primeiro ao último frame. Nunca abra escuro e mude para claro: parece um vídeo novo e as pessoas deslizam.
- Para listas: um cabeçalho que conta (
ATALHO 3/7+ pontos) e um loop aberto na linha 2 ("e o número sete me economiza horas") pago no final. - Uma nova imagem a cada 0,8 a 1,5 s. Mostre o efeito, não descreva.
- A voz fica por cima. Música baixa (os padrões em
sfx.mix_reelsão testados). - O CTA é escrito para este reel apenas (salve-o, envie para a pessoa certa ou uma pergunta real). Nunca "siga para mais".
Quando algo quebra
references/TROUBLESHOOTING.md. Os comuns: ffmpeg não no PATH, Chromium não instalado, 429 da API de voz (limite gratuito por enquanto, espere ou ative a cobrança), um CLIP do avaliador (texto mais largo que seu cartão: encurte o texto ou alargue o cartão até 920 px).