Communitygithub.com

Noahnocap/ai-video-skill

Cria vídeos prontos para postagem em 1080x1920 para Instagram Reels, TikToks e Shorts a partir de um único prompt. Escreve o roteiro (ou usa o do usuário), gera a narração, anima cada cena em um estilo comprovado de motion design, revisa seus próprios quadros e exporta em mp4.

O que é ai-video-skill?

Esta skill transforma completamente o processo de criação de vídeos curtos para redes sociais. Você simplesmente fornece um tópico ou ideia, e a skill cuida de todo o resto: desde a escrita do roteiro (seguindo regras específicas de ritmo e engajamento) até a geração da narração usando ElevenLabs, a animação de cada cena em um de três estilos visuais (Clássico, Explicador 3D ou Ilustrado), a revisão automática da qualidade dos quadros e a exportação final em mp4. É compatível com ferramentas como Claude, Cursor e Codex, e otimiza o fluxo de trabalho com modos de esforço que permitem renderização paralela das cenas para usuários de planos Max, API ou Team. A skill também gerencia dependências técnicas (Node, ffmpeg, Python) e configurações de voz e apresentador, garantindo que o usuário final possa se concentrar apenas na mensagem do vídeo. O coração da skill está em sua abordagem criativa: ela exige que o usuário invente metáforas visuais e adereços personalizados para cada roteiro, evitando reutilização genérica, e realiza múltiplas rodadas de revisão para garantir fluidez, densidade de movimento e originalidade. O resultado é um vídeo com aparência profissional, sem necessidade de edição manual, ideal para criadores de conteúdo, profissionais de marketing e qualquer pessoa que queira publicar vídeos de alta qualidade rapidamente.

Funciona com✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Noahnocap/ai-video-skill/tree/HEAD

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Habilidade de Edição de Vídeo com IA

Você (Claude) é o editor. Esta pasta fornece um motor comprovado para reels, três estilos visuais (Clássico, Explicador 3D, Ilustrado), as regras de roteiro e ritmo do criador, e as ferramentas para narração, renderização, revisão e exportação. Você escreve o roteiro e o código da cena; as ferramentas fazem o trabalho pesado.

SKILL_DIR abaixo significa a pasta onde este arquivo está (no workspace AI Video é <workspace>/skill). Execute todas as ferramentas de qualquer lugar com caminhos absolutos, ex.: node "$SKILL_DIR/tools/reel.mjs" ....

0. Primeira vez neste computador: verificação de configuração (2 minutos)

Execute node "$SKILL_DIR/tools/doctor.mjs". Ele verifica Node, ffmpeg, Python, o navegador headless, a chave ElevenLabs e a voz escolhida, e imprime a correção exata para qualquer item faltante. Oriente o usuário por cada correção uma de cada vez, em palavras simples (eles podem não ser técnicos). Detalhes em SETUP.md.

  • Etapas de instalação que você pode executar sozinho (com a permissão do usuário): npm install e npm run browser dentro de SKILL_DIR, pip3 install numpy.
  • Chaves de API: o USUÁRIO cola a chave no arquivo que o doctor nomeia. Nunca peça para colar uma chave no chat, nunca imprima ou registre uma chave.
  • Voz: se nenhuma voz estiver salva, ajude-os a escolher uma (seção 3). Faça isso uma vez; fica salva para todos os reels futuros.
  • Plano de IA: pergunte uma vez qual plano eles usam (Claude Pro, Claude Max, API, Team, Codex, Cursor); você não pode detectar isso sozinho. Salve: node "$SKILL_DIR/tools/doctor.mjs" --set-plan <max|pro|api|team|codex|cursor|other>. No Max, API ou Team, diga a eles: "seu plano executa os construtores de cena em paralelo, então a produção de vídeo é muito mais rápida". Em qualquer outro plano, pergunte também uma vez: "Melhor qualidade (o processo completo, mas pode esgotar rapidamente seus limites de uso) ou Boa qualidade (uma construção mais leve que se encaixa melhor nos seus limites)?" e salve: node "$SKILL_DIR/tools/doctor.mjs" --set-quality <best|good>. Eles podem mudar a qualquer momento ("use melhor/boa qualidade"). Veja "Modos de esforço" abaixo.
  • Apresentador (clássico e ilustrado apenas): se ~/.config/ai-video/config.json ainda não tiver "presenter" e o reel for clássico ou ilustrado, pergunte uma vez por uma foto deles (ou "sem apresentador") e construa a aparência deles (guides/presenter.md). Salvo na configuração deles. Se o usuário disse para não fazer perguntas, use o apresentador padrão do template (engines/classic/template/reel.json) e mencione na entrega que eles podem ter a própria aparência (ou nenhuma) na próxima vez.

Execute o doctor novamente sempre que uma ferramenta falhar com um erro de configuração.

1. Entenda o pedido (não pergunte demais)

A partir de um prompt você precisa: tópico/ângulo, roteiro ou não, estilo, palavra-chave CTA, idioma. Infira o que puder; pergunte no máximo UMA pergunta curta apenas se o tópico em si não estiver claro. Padrões:

  • Usuário colou um roteiro → use-o textualmente (apenas corrija erros de digitação óbvios; nunca "melhore"). Caso contrário, escreva-o (seção 2).
  • Estilo (veja guides/styles/):
    • Clássico (classic): pontos de discussão, ferramentas, dicas, listas, opiniões, notícias de negócios/IA/tecnologia, qualquer coisa "aqui está como / aqui está por que". O padrão.
    • Explicador 3D (explainer3d): "como X funciona realmente" sobre algo físico ou um sistema (gadgets, aplicativos, carros, o corpo, redes, cidades).
    • Ilustrado (illustrated: o motor clássico, mesma aparência de papel, legendas e apresentador, mas o herói de cada batida é um desenho de aparência real do assunto via guides/illustration.md, kits/illustrate.js e library/classic/illustrated/): o roteiro é sobre coisas reais e nomeáveis: uma empresa ou rede, uma loja, um lugar ou bairro, um produto, comida, um prédio, um veículo, um aplicativo ou vídeo em um telefone.
    • Histórias com pessoas e lugares (uma pequena empresa e seus clientes, uma loja, uma rua, uma equipe, uma cidade): Ilustrado quando a história é sobre o negócio, o lugar ou o produto (a fachada real, o balcão, a comida, o mapa, com pequenas pessoas como vida); Explicador 3D quando o ponto é como um sistema se move por aquele lugar (entregas, filas, tráfego, sinais). Quando o usuário nomeia um estilo ("3D", "desenhado", "ilustrado", "como meu último reel"), isso vence.
  • Palavra-chave CTA: uma palavra memorável ligada ao tópico (ex.: PLUGINS, COFFEE), em maiúsculas. Salva em reel.json.
  • Idioma: o idioma do roteiro. Defina "language": "xx" em reel.json (código ISO: ru, es, de, ar...) para que a voz, legendas, CTA e texto da interface (folhas de comentários, DMs) o usem; escreva legendas/ênfase você mesmo se não tiver certeza. Fontes latinas, cirílicas, gregas e vietnamitas estão incluídas; para outros scripts execute python3 "$SKILL_DIR/tools/fonts.py" check <project> após a etapa de voz.
  • Voz ↔ apresentador: se o usuário se descrever (gênero, idade) ou fornecer uma foto, certifique-se de que a voz salva se encaixa; se obviamente não se encaixar (ex.: uma voz masculina para a apresentadora dele), mencione e ofereça voices.py search para uma correspondente (ou use a deles se insistirem). Para scripts não-ingleses, prefira uma voz marcada com esse idioma.

2. Roteiro (pule se o usuário forneceu um)

Leia guides/scripting.md e siga exatamente: gancho nos primeiros 1,5 s, loop de curiosidade na linha 2, riscos concretos, produto/resposta nomeado apenas depois que o problema é sentido, conversacional (não staccato), 110-170 palavras (≈ 32-50 s: duração ≈ palavras / (3 × velocidade da voz) s; um roteiro mais curto solicitado mantém o gancho, loop e recompensa, comprimido), terminando "Comente KEYWORD e eu enviarei para você...". Escreva em <project>/script.txt. Mostre o roteiro ao usuário no chat antes de narrar se eles pediram para revisar; caso contrário, continue (eles pediram um reel finalizado).

3. Projeto + voz

node "$SKILL_DIR/tools/reel.mjs" new <VIDEOS>/<slug> --style <classic|explainer3d|illustrated>
python3 "$SKILL_DIR/tools/tts.py" <VIDEOS>/<slug>

<VIDEOS> = a pasta videos/ adjacente a esta pasta de skill quando existir (o workspace AI Video: <workspace>/videos/<slug>/), caso contrário ./videos/ na pasta atual do usuário, a menos que ele diga o contrário. <slug> é um nome de tópico curto em kebab-case. --style illustrated prepara um projeto clássico (reel.json "style": "classic", "look": "illustrated"); tudo abaixo que diz "clássico" se aplica a ele, mais guides/illustration.md. tts.py escreve audio/vo.mp3 (pausas ajustadas, aceleradas pela velocidade salva da voz (×1,15 a menos que a voz tenha sido salva com outro --speed), normalizadas em volume) e build/words.json + build/word_index.txt (cada palavra com seu tempo). Toda animação é sincronizada com essas palavras.

  • Escolhendo uma voz (primeira execução, ou o usuário pede para mudar): python3 tools/voices.py search "<o que eles querem>" [--lang xx], dê ao usuário 3 links de pré-visualização, depois voices.py add <owner> <voice_id> "<name>" e voices.py use <voice_id> --name "<name>". Gravação própria: tts.py <project> --provider file --audio take.mp3. Vozes OpenAI: voices.py provider openai.
  • Créditos: uma geração de voz por reel. Se você alterar o roteiro depois, regenere; para correções apenas de tempo use --reuse (sem novos créditos).

4. Invente os visuais, depois planeje as batidas (storyboard antes do código)

4a. Invente (isso é o que diferencia um reel artesanal de um template). Primeiro leia guides/mindset.md (o padrão e as perspectivas para pensar: seja muito criativo, bonito, nunca vazio, bem animado, instantaneamente compreensível). Depois leia guides/patterns.md (clássico, ilustrado) ou guides/patterns_3d.md (explicador 3D) e aplique seu método de invenção a ESTE roteiro:

  • Uma metáfora central / mundo visual que carrega toda a ideia (um objeto físico, máquina ou lugar cujo comportamento É o argumento), e 3-6 adereços personalizados para as batidas. Eles devem vir das palavras deste roteiro, não dos exemplos: os adereços de exemplo nos guias e library/ mostram técnicas, nunca os cole. Pergunte: "este quadro caberia no reel de outra pessoa?" Se sim, é genérico: invente novamente.
  • Assuntos do mundo real (o roteiro nomeia uma empresa real, lugar, produto, comida, prédio, veículo, ou mostra um vídeo/app em um telefone): desenhe-os como na vida real, não como ícones planos ou cartões de nome: guides/illustration.md (clássico e ilustrado: primitivas kits/illustrate.js + exemplos library/classic/illustrated/; um vídeo na tela sempre REPRODUZ). A coisa real é muitas vezes o herói e a metáfora inventada age sobre ela.
  • Escreva a invenção no topo de STORYBOARD.md: metáfora, por que se encaixa, os adereços, e o único momento "uau" por seção.

4b. Storyboard. Abra build/word_index.txt. Divida o roteiro em batidas: uma batida por frase ou ideia, 1,5-5 s cada. Leia primeiro a seção de qualidade do guia de estilo (e OLHE suas tiras de referência). Depois escreva este bloco para CADA batida (sem batidas de uma linha):

batida NN · "<as palavras>" (palavra i0-i1, s-e)
  palco permanece : os elementos já na tela que permanecem (e onde)
  cada palavra acentuada adiciona/altera : palavra → o que entra ou muda de estado (uma por palavra acentuada, a cada 0,4-0,8 s)
  mantém-se em movimento : a vida ociosa de cada elemento (tique-taque, balançando, rolando, digitando, piscando, flutuando)
  apresentador    : (clássico) foco que ele aponta + seu ato por frase · (3D) quem/o que age
  câmera         : inclinar/empurrar/cortar/rastejar em quais palavras · transição de entrada
  adereços personalizados : quais dos SEUS adereços inventados aparecem (novo código para escrever)
  grandes momentos  : batidas, cortes, chicotes, revelações: mire em 1+ por segundo (o motion do reel mede isso no rascunho)

Regras (de guides/direction.md): o palco CONSTRÓI-SE (cada palavra acentuada adiciona ou altera um elemento, os anteriores permanecem e continuam se movendo) com exatamente UM foco por vez; a imagem faz sentido com o som desligado; nada estático por mais de 1,2 s; coisas grandes acontecem NA palavra acentuada; a batida do gancho mostra a recompensa ou o conflito imediatamente, já completo.

5. Construa as cenas

Leia guides/styles/<style>.md completamente antes de escrever código (ilustrado: guides/styles/classic.md + guides/illustration.md) (padrão de qualidade, aparência, tokens, API, contrato de cena, receitas). O motor fornece COMO as coisas se movem (molas, pêndulos, gravidade, palco de construção, atuação do apresentador, câmera, digitação, números rolando, transições); O QUE se move são os adereços que você inventou em 4a, desenhados como novo código no projeto. Orçamento: os reels do criador contêm 50-110 linhas de código de cena personalizado e 3-7 objetos desenhados personalizados por segundo de vídeo; planeje para isso.

  • Sincronize com palavras usando o auxiliar do estilo (wordAt('palavra') / wi(index)), nunca segundos codificados.
  • Pré-visualize cada adereço inventado sozinho antes de usá-lo (uma batida/cena descartável mostrando apenas o adereço, renderizada com reel stills <project> <t> --only <id>; o explicador 3D também tem uma página de exibição do kit). Nomeie esse arquivo de cena scenes/preview_<prop>.js (craft ignora scenes/preview*.js e scenes/props*.js, então nunca coloque código de reel real em arquivos nomeados assim). Clássico: liste-o em SCENE_FILES mas nunca em TIMELINE: uma cena registrada que não está na linha do tempo nunca renderiza no reel; remova-a de SCENE_FILES antes do final.
  • Após CADA reel stills / reel video, leia o final da saída: se listar "erro ao desenhar quadros", esses quadros estão quebrados. Corrija-os primeiro.
  • Modo paralelo: use subagentes (O modo um-por-um constrói exatamente as mesmas batidas com o mesmo resumo por batida, você mesmo, um após o outro): um por 1-2 batidas, todos em paralelo, cada um recebendo: guides/mindset.md (cole-o no resumo), o caminho do guia de estilo, guides/patterns(_3d).md, guides/illustration.md quando sua batida desenha um assunto do mundo real (clássico), o bloco de invenção, suas linhas e palavras do storyboard, e o estado de transição das cenas vizinhas. Cada subagente renderiza seus stills com --out <nome da batida> (própria folha, sem sobrescrever). Depois revise-os juntos.

6. Revise seu próprio trabalho (obrigatório, é isso que o faz parecer profissional)

Siga guides/review.md. Em resumo:

  1. node "$SKILL_DIR/tools/reel.mjs" stills <project> <t1> <t2> ... no meio de cada batida e 0,1 s após cada corte (folha: stills/sheet.jpg). OLHE a imagem da folha. Verifique cada item da lista de verificação de revisão; corrija e re-renderize stills até ficar limpo.
  2. node "$SKILL_DIR/tools/reel.mjs" video <project> (rascunho rápido em baixa resolução, build/draft.mp4). Extraia e olhe os quadros em torno de cada transição (ffmpeg -ss T -frames:v 1). Corrija pops, sobreposições, silêncio.
  3. node "$SKILL_DIR/tools/reel.mjs" motion <project> e node "$SKILL_DIR/tools/reel.mjs" craft <project>: ambos devem imprimir PASS (craft = trabalho original suficiente, nenhum adereço genérico carregando o reel). motion lista cada trecho plano com suas palavras: dê a cada um um evento de construção, movimento secundário, um movimento de câmera ou um ato do apresentador, re-renderize o rascunho, re-execute. Nunca renderize o final enquanto falhar. Se o usuário proibir renderizações de vídeo, pule o rascunho (etapa 2) e motion e verifique a densidade nos stills (guides/review.md, "Execuções apenas com stills": algo novo em cada palavra acentuada, nenhuma janela de 1,2 s onde dois stills consecutivos parecem iguais); craft ainda executa, e diga na entrega que o movimento não está verificado.
  4. Antes do final, olhe a folha de stills mais uma vez através das perguntas de guides/mindset.md (mais criativo? completo, bonito, vivo? um foco claro? o criador postaria isso?). Se alguma resposta for "ainda não", melhore primeiro.
  5. Final: node "$SKILL_DIR/tools/reel.mjs" video <project> --final depois node "$SKILL_DIR/tools/reel.mjs" export <project> → out/<name>.mp4 (1080x1920, 30 fps, H.264 + AAC, pronto para Instagram). Apenas uma renderização por vez (trava embutida). Rascunhos primeiro, final uma vez: é gentil com o laptop do usuário.

7. Entrega

Dê ao usuário: o caminho para out/<name>.mp4, uma legenda para postagem (2-3 linhas que adicionam contexto, a palavra-chave CTA, 3-5 hashtags relevantes), e um lembrete de que "Comente KEYWORD" precisa de uma resposta automática de DM configurada (ManyChat, ReplyRush ou as automações do próprio Instagram) com o link que prometeram. Veja guides/delivery.md. Ofereça uma rodada de alterações ("gancho mais rápido", "voz diferente", "trocar cena 3").

Modos de esforço (leia agent_plan e quality de ~/.config/ai-video/config.json; o doctor os imprime)

  • Velocidade: Max, API, Team = paralelo (um subagente por 1-2 batidas, todos ao mesmo tempo: produção de vídeo muito mais rápida)

Habilidades Relacionadas