O que Video Director faz?
Faça o assunto ser compreensível, não meramente animado. Escolha o meio menos complexo que mostre a ação importante com veracidade. Esta é uma habilidade com auxiliares integrados, não um aplicativo separado ou biblioteca Python.
Briefing e receita
Estabeleça assunto, público, duração, proporção, ação principal e limite de entrega a partir da solicitação. Preserve vozes aprovadas, filmagens e posicionamento atual do produto. Faça escolhas secundárias reversíveis; pergunte sobre escolhas, direitos ou custos importantes que estejam faltando. A criação não autoriza publicação.
Mostre o resultado interessante desde o início. Escreva frases curtas e específicas: “Veja qual página recebe cliques,” não “Integre seu fluxo de trabalho.” Segure a interface real o tempo suficiente para ser lida. Estabeleça o mecanismo completo antes de explicar suas partes.
Leia apenas a receita relevante:
- Primeira execução ou configuração de dependências: first-video.md, um exemplo SVG autocontido com runtime fixo e comandos de exportação.
- Arte gerada + primeiro plano editável: hybrid-scenes.md.
- Interface de produto real: real-ui.md.
- Mecanismos e 3D: 3d-explainers.md.
- Narração, pausas e música: audio.md.
- Runtime, captura e verificação: production.md.
- Comparação combinada e iniciador executável: before-after.md.
- CLI opcional do MoneyPrinterTurbo: moneyprinterturbo.md, quando a montagem automatizada de filmagem/script/áudio for adequada.
Escolha uma composição/paleta nova e pesquisada quando solicitado. Não imponha o estilo de um canal a todos os filmes. Cores complementares podem separar assuntos, mas rótulos e contraste também devem funcionar sem dicas de cor.
Decisões de produção
- Mantenha o controlável sob controle. Texto, setas, destaques, enquadramento de UI e geometria factual pertencem a SVG/HTML/canvas ou 3D. Pixels gerados são arte útil, não verdade exata de UI ou mecânica.
- Mostre a ação. Cliques reais precisam de um ponteiro visível e um lead-in; operações reais precisam de seu estado/filmagem real. Não anime uma captura de tela como se uma operação de backend tivesse ocorrido. Nomeie uma parte à medida que seu destaque aparece; rastreie sua âncora móvel.
- Direcione a atenção. Uma ação de ensino por vez. Suavize movimentos de câmera, estabilize, então segure. Derive posições a partir do tempo absoluto, não de deltas de quadro acumulados. Movimento secundário deve apoiar a explicação. Rotação linear é correta para um eixo de velocidade constante.
- Componha para a saída. Uma versão vertical precisa de enquadramento/posicionamento de rótulo legíveis próprios, não um recorte automático de paisagem. Mantenha anotações longe de partes, outros rótulos e sobreposições da plataforma.
- Separe geração de montagem. Salve arte aprovada e fala bruta. Registre prompts, fontes, direitos, configurações e hashes. Uma geração que expirou pode ainda ter criado um trabalho faturado; verifique antes de tentar novamente. Resolva escopo/custo faturados separadamente antes de gastar.
- Preserve limites de revisão. Use uma nova pasta de saída, preserve arquivos mestres/de recuperação e recuse sobrescrições acidentais. Pare antes de fazer upload/publicação a menos que autorizado separadamente.
Auxiliares de trabalho
Estes adaptam a captura com tempo explícito, serviço local seguro, montagem de clipes e verificações de saída codificada usados nas produções Pip. Resolva <skill> a partir da localização deste arquivo. Execute a partir do projeto de vídeo, não da pasta da habilidade. Leia production.md primeiro.
| Auxiliar | Propósito |
|---|---|
scripts/create-example.mjs | Copiar um primeiro projeto autocontido em uma nova pasta; nunca sobrescrever. |
scripts/doctor.mjs | Verificar dependências e realmente iniciar Chromium; sem instalações automáticas. |
scripts/capture.mjs | Página local → H.264 silencioso de quadro exato; repetições no mesmo horário; hashes de origem/recibo de erro. |
scripts/serve.mjs | Servidor estático somente loopback com intervalos e contenção de caminho. |
scripts/compare.mjs | Lado a lado rotulado; rejeitar incompatibilidade de duração/fps. |
scripts/audio.mjs | Clipes de fala existentes + pausas explícitas → WAV e manifesto de temporização medido. |
scripts/verify.mjs | Probe/decodificação completa/hash, todas as estatísticas de quadros adjacentes e folha de contato codificada. |
scripts/self-test.mjs | Testes de regressão para auxiliares e proteção contra sobrescrita. |
scripts/boundary-test.mjs | Regressões de navegador-rede local e áudio danificado. |
Requer Node, FFmpeg/FFprobe e Playwright/Chromium acessível ao projeto; Three.js apenas para 3D. Auxiliares não instalam pacotes/modelos, chamam provedores, leem credenciais ou publicam. assets/first-video/ é apenas código e não precisa de mídia externa. O iniciador de comparação em assets/comparison-study/ contém código e um manifesto de ativos, não capturas de tela particulares, mídia gerada, fontes ou Three.js vendido.
Entrega
Faça uma passagem de temporização em baixo fps antes da captura final. Verifique a duração codificada, dimensões, fps, decodificação completa, cor, keyframes legíveis e limites de transição. As métricas suportam inspeção; uma grande diferença de quadro pode ser uma edição intencional, enquanto diferenças baixas podem esconder animação congelada. Olhe para o filme e ouça a fala. ASR e WAVs limpos não provam uma voz natural.
Entregue um MP4 local reproduzível e o caminho de origem, com verificações e omissões. Não reivindique 60 fps em tempo real de captura offline, um resultado histórico de uma linha de base construída ou um teste de agente independente da execução do próprio autor.
Veja lineage.md para inspirações e limites de licença. Habilidades instaladas especializadas podem complementar esta; o fluxo de trabalho não requer carregar todas as habilidades ou copiar repositórios upstream.