O que make-video faz?
Transforma uma ideia em um MP4 renderizado e verificado usando apenas ferramentas gratuitas e locais. Um projeto feito a partir desta skill tem suas próprias regras em AGENTS.md, então siga-as (pureza de animação, useScale, sec(), estrutura de pastas).
0. Configurar um projeto de vídeo (uma vez)
Se a pasta atual não possui tools/make-story.sh, ainda não é um projeto de vídeo:
-
Verifique a máquina antes de qualquer coisa:
uname -sm(precisa ser Darwin arm64),node --version(20+),brew --version,df -h ~(cerca de 8 GB livres). Em outro SO, diga o que não funcionará (Chatterbox e o verificador de takes rodam na GPU da Apple) antes de prosseguir. Se Node ou Homebrew estiver faltando, forneça ao usuário o comando de instalação e aguarde. -
Informe ao usuário o que será baixado e aguarde sua aprovação. Nunca inicie os downloads sem ela. Mostre esta tabela (tudo gratuito, das fontes oficiais):
Download Tamanho Usado para Onde vai pacotes npm (Remotion etc.) ~500 MB renderização node_modules/ffmpeg, uv, FluidSynth (Homebrew, apenas se ausentes) ~150 MB ferramentas de áudio/vídeo Homebrew pacotes Python (PyTorch, Chatterbox…) ~1.5 GB voz, QA .venv/soundfont GeneralUser GS ~30 MB música tools/soundfonts/pesos do Chatterbox ~3 GB a voz cache do Hugging Face ( ~/.cache/huggingface), compartilhado por todos os projetosWhisper small.en ~590 MB legendas tools/models/Whisper large-v3-turbo (verificador de takes opcional) ~1.6 GB regrava linhas pouco claras cache do Hugging Face Total cerca de 6 GB e 10-20 minutos. Ofereça a opção mais leve:
SKIP_TAKE_CHECK=1pula o verificador de takes (4.4 GB total). Pergunte onde criar o projeto (padrão~/videos). -
Com a aprovação, copie a pasta
template/que está ao lado deste SKILL.md para o projeto, incluindo arquivos ocultos (cp -R <dir da skill>/template/. <dest>/), depoisgit init. -
Execute
tools/setup.shem segundo plano e mantenha o usuário informado: diga em qual etapa está (imprime linhas▶) e, durante o download grande, o progresso (du -shL ~/.cache/huggingface/hub/models--ResembleAI--chatterbox, alvo ~3 GB). É seguro reexecutar: etapas concluídas são puladas e downloads interrompidos são retomados. Se um download travar (tamanho não aumenta por 5 minutos), pare-o e execute a configuração novamente. Se falhar, leia o erro, corrija a causa (ferramenta ausente, espaço em disco, rede) e reexecute; não contorne um modelo faltante. -
Prove que funciona:
tools/make-story.sh stories/fridge-drama FridgeDramacria o exemplo de 33 s (três vegetais discutem em uma geladeira) em cerca de 4 minutos. Mostre ao usuárioout/FridgeDrama.mp4, então pergunte o que ele quer criar.
As ferramentas encontram os modelos por conta própria (Chatterbox e o verificador de takes do cache do Hugging Face, legendas de tools/models/), então nada precisa ser configurado após a instalação. Um segundo projeto reutiliza os pesos em cache, então sua configuração é muito mais rápida.
1. Fixar o briefing (pergunte apenas se estiver faltando)
| Campo | Padrão |
|---|---|
| Plataforma / formato | Reel/Short: 1080×1920, 30 fps · YouTube: 1920×1080, 30 fps · Post de feed: 1080×1350 |
| Duração | Reel/Short: 15-45 s · YouTube: 3-10 min |
| Tipo | História (personagens falam, então use §3B) ou Motion graphics (texto, dados, diagramas, então use §3A) |
| Tópico + único aprendizado | A única coisa que o espectador deve lembrar |
| Áudio | Voz (Chatterbox), música + SFX (tools/music.py), ou apenas música |
| Voz | Voz embutida do Chatterbox, ou um clone da gravação do próprio usuário (§3B). Nunca clone alguém sem seu consentimento. |
2. Escreva o roteiro antes de qualquer código
Orçamento de duração: a fala em inglês no ritmo do Chatterbox tem cerca de 2.6 palavras/s. Duração alvo ≈ palavras ÷ 2.6 + Σ pausas + encerramento. Verifique antes de gerar. (Fridge Drama: 62 palavras + 6.4 s pausas + 3 s encerramento = 33 s.)
Regras de ritmo para formato vertical curto:
- Gancho na tela e audível a partir do quadro 0. Os primeiros 1.5 s determinam a retenção, e o quadro 0 geralmente é a miniatura, então nunca comece com um quadro vazio ou esmaecendo.
- Cada linha ≤ 12 palavras. Legendas mostram ≤ 3 palavras por vez.
- Algo se move a cada segundo.
- Zona segura para 1080×1920: nada importante acima de y=220 ou abaixo de y=1540 (interface da plataforma), e nada à direita de x≈940 abaixo de y≈1000: os botões de like/comentar/compartilham ficam na borda direita (
tools/qa.py --layoutfalha nisso). Coloque um apresentador no canto inferior esquerdo. - Termine com um payoff ou punchline, seguido de um cartão de call-to-action de 2-3 s.
Modelo de vídeo explicativo (