Voiceover → Glass Reel
Um pedido, um MP4 finalizado. O usuário fornece um arquivo de narração (qualquer formato de áudio ou vídeo, até ~3 min) e opcionalmente o texto do roteiro, uma nota sobre o tópico ou links de referência. Você faz todo o resto e para apenas:
- uma vez para downloads, como logotipos. Não há orçamento de créditos: tudo tem origem gratuita
(veja
references/higgsfield.md– receitas testadas para Pixabay / Wikimedia / thesvg). Informe de onde veio cada coisa, mas dinheiro nunca entra na conversa, a menos que o usuário peça explicitamente o apêndice pago.
Trabalhe no idioma do usuário no chat. Tudo na tela fica no idioma da narração.
O que produz
Transforma QUALQUER narração (e um roteiro opcional) em um reel 16:9 no estilo documentário no After Effects com um pedido. Corta as pausas e respirações, escreve a história visual, pesquisa todas as imagens gratuitamente (fotos de arquivo do Wikimedia Commons, clipes e retratos do Pixabay MCP, SVGs de logotipos via o MCP thesvg, movimentos Ken-Burns com ffmpeg a partir de imagens estáticas) e monta a edição nativamente no After Effects. O visual: documentário de arquivo escuro, cada clipe em uma moldura de vidro arredondada flutuante com uma borda brilhante fina e um suave zoom-in, uma grade de perspectiva animada com palavras-chave que mudam de cor conforme a palavra, legendas grandes faladas, páginas de máquina de escrever / palavra-gigante / cartão-foto, flashes e inversões negativas nos cortes, efeitos sonoros sintetizados. Renderiza um MP4 1080p H.264. Use sempre que alguém fornecer uma narração, mensagem de voz, narração ou trecho de podcast e pedir um reel, vídeo, curta, explicador ou edição a partir disso: "faz um vídeo da minha narração", "transforma essa narração num reel", "edição com moldura de vidro", "um clipe de uma narração", "faz um reel com a minha gravação de voz", "corta um vídeo para minha voz", "molduras de vidro e uma grade". Isso vale mesmo quando eles não têm nenhum material de vídeo.
Antes de começar (verifique uma vez por Mac; diga ao usuário exatamente o que corrigir se algo falhar)
- macOS 26 ou mais novo (transcrição no dispositivo) com After Effects 2024 ou mais novo, aberto. No AE, ative Settings → Scripting & Expressions → Allow Scripts to Write Files and Access Network.
- Ferramentas de linha de comando do Xcode (
swiftc). Executescripts/build_tools.sh. Ele compilascripts/bin/{to_wav,transcribe,facebox,frames}. Se um script falhar com "permission denied" (um skill carregado pode perder a permissão de execução), executechmod +x scripts/*.shnesta pasta do skill uma vez. - Fontes gratuitas prontas: as ferramentas MCP
pixabayethesvg(search_pixabay_images,search_pixabay_videos,search_icons,list_variants,get_icon_url,get_icon) maiscurleffmpeg(ambos já usados pelo motor). O Wikimedia Commons precisa apenas de internet- um User-Agent adequado. Sem créditos, sem contas, sem saldos para verificar.
- A primeira execução de
transcribepode pedir permissão para Reconhecimento de Fala. Também pode baixar o modelo no dispositivo uma vez. - Se outro projeto do AE estiver aberto com alterações não salvas, o
build.shse recusa. Peça ao usuário para salvá-lo. Nunca descarte o trabalho deles. O log de build imprimePREVIOUS_PROJECT <caminho>quando fecha um projeto salvo deles. Após a renderização final, reabra-o: escreva um jsx de uma linhaapp.open(new File("<caminho>"));e execute comscripts/ae_run.sh.
S = pasta deste skill. PY = /usr/bin/python3 (ou qualquer Python 3.9+, apenas biblioteca padrão).
Pipeline
1. Pasta do projeto e voz
- Crie
<proj>= uma nova pasta ao lado da narração com o nome<nome_da_narração>_reel. - Execute
PY S/scripts/reel.py prep <narração> <proj>. Ele converte o áudio, transcreve no Mac e remove todas as pausas e respirações. Os resultados sãowork/voice_cut.wavework/words.json(índice da palavra → tempo do programa). - Em seguida, execute
PY S/scripts/reel.py words <proj>e leia toda a transcrição indexada. - Se o usuário forneceu um roteiro, compare-o com a transcrição. Anote nomes mal interpretados para
spell(por exemplo"28": "Grok").
2. História (leia references/story.md, depois escreva <proj>/story.json)
- Decida o mundo que se encaixa no roteiro: era, lugar, um elenco recorrente de 2–5 personagens, 3–6 locais, PB ou cor.
- Padrão: um documentário de arquivo preto e branco dos anos 1950–60, onde assuntos abstratos se tornam pessoas e lugares.
- Escolha um visual para o apresentador. Quando o usuário quiser aparecer, use a foto dele como referência para o apresentador.
- Divida a transcrição em planos. Cada plano começa num índice de palavra.
- apresentador (falando para a câmera na TV): 3–6 planos, 2–6 s cada. Use-os no gancho, nas viradas e na chamada para ação. Juntos, ocupam cerca de 15–20 % do tempo total.
- clipe (material gerado na moldura de vidro): a maioria dos planos, 1,5–3 s cada.
- tipo (página de máquina de escrever): a pergunta de abertura ou títulos de seção, no máximo 6 palavras.
- gigante (uma palavra enorme com um rótulo vermelho e uma linha serifada abaixo): um conceito nomeado.
- cartões (2–4 cartões-foto com crachás de logotipo, um nome em cada palavra): quando a voz lista pessoas, produtos ou marcas. Os logotipos aparecem apenas quando são mencionados.
- lista: quando a voz lista 2–4 pontos, marque esse intervalo de palavras. Suas palavras-chave mudam para a cor de destaque na palavra.
- chaves: no máximo uma por frase.
- golpes:
invertem 3–6 cortes dramáticos,strobeem no máximo 2 momentos "ficou mais louco",burnem no máximo 2 picos. - Nunca mostre o mesmo momento de clipe duas vezes.
- Escreva a lista de fontes a partir dos planos:
- cada clipe da história é 8–12 s de material de arquivo (ou um panorama Ken-Burns sobre uma imagem estática), cobrindo planos consecutivos,
de modo que um clipe alimenta vários planos através de diferentes tempos
in; - retratos dos cartões, locais e qualquer material do apresentador – tudo com origem gratuita;
- uma trilha sonora opcional (ou nenhuma: o build a ignora se
musicestiver ausente).
- cada clipe da história é 8–12 s de material de arquivo (ou um panorama Ken-Burns sobre uma imagem estática), cobrindo planos consecutivos,
de modo que um clipe alimenta vários planos através de diferentes tempos
3. Obter os recursos (leia references/higgsfield.md)
- Obtenha nesta ordem: clipes da história → retratos dos cartões → locais → (se mantido) placa da TV →
(se mantido) clipes do apresentador. Verifique cada download conforme as receitas testadas (HEAD
content-type+content-length, curl-AUA + tentativas, SHA-1 quando o Commons fornecer). Registre arquivo → URL de origem → licença → autor emwork/SOURCES.md. - Clipes da história: Pixabay
search_pixabay_videos(video_type: "film", orientação correspondente, duração 8–15 s) ou Commonsfiletype:video(imageinfo→ baixar com a receita curl → transcodificar vídeos.ogv/.webmpara MP4). Imagens estáticas viram.mp4Ken-Burns com a receita ffmpeg. - Clipes do apresentador (apenas se o usuário aparecer na câmera):
PY S/scripts/reel.py chunks <proj>escreve um segmento de áudio por plano do apresentador emwork/host/host_NN.wav;- componha o áudio do segmento sobre o clipe da webcam deles e salve como
assets/host/host_NN.mp4(ffmpeg -map 0:v:0 -map 1:a:0 -shortest) –reel.py alignentão ajusta as palavras exatamente; PY S/scripts/reel.py align <proj>mede o deslocamento de cada clipe em relação às palavras. Sem material próprio → reestruture essas batidas do apresentador como páginastype/giant/cards.
- Se uma placa de TV for usada, execute
PY S/scripts/reel.py screen <proj>/assets/tv_plate.png <proj>. Ele encontra a tela verde. Se nenhuma for encontrada, repinte-a (ffmpeg drawbox, §2 da referência) ou mude os planos do apresentador para modofull– nenhuma placa necessária. - Execute
PY S/scripts/reel.py sfx <proj>para sintetizar os efeitos sonoros (nenhuma licença necessária). - Música: omita
music(padrão), use a faixa do usuário ou converta um arquivo de áudio do Commons para MP3.
4. Construir e verificar
- Execute
PY S/scripts/reel.py plan <proj>. Ele escrevework/plan.jsone imprime verificações. Corrija todo ERROR emstory.json. Leve os WARNs a sério: clipes repetidos, sincronia labial do apresentador. - Execute
S/scripts/build.sh <proj>. Ele constrói<proj>/reel.aep(comp REEL) em cerca de 1 min para um reel de 70 s. Leia o log: fontes usadas, avisos. - Execute
S/scripts/render.sh <proj> --halfpara uma verificação rápida (~2 min). Em seguida, verifique os quadros:S/scripts/bin/frames <proj>/out/reel_half.mp4 <proj>/work/check.jpg 4 <o segundo do meio de ~16 planos>;- olhe para
check.jpg: legendas legíveis e não sobre rostos, lábios do apresentador se movendo dentro da TV, molduras de vidro presentes, sem lacunas pretas, páginas não vazias. Corrija emstory.json, depois reexecuteplan,builde a verificação.
- Final: execute
S/scripts/render.sh <proj>. Ele escreve<proj>/out/reel_1080.mp4(1920×1080, 25 fps, cerca de 40 Mbps, com som). - Envie o MP4. Relate:
- sua duração;
- o que você não pôde verificar;
- o local para ajustes manuais (
reel.aep: cada plano é sua própria comp em02_SHOTS/03_PAGES, as legendas estão emCAPTIONS).
Regras
- Direitos:
- Tudo com origem gratuita: MCP Pixabay, Wikimedia Commons (verifique a licença de cada arquivo),
MCP thesvg para logotipos, mais síntese local (ffmpeg Ken-Burns,
reel.py sfx). Nenhum serviço pago por padrão; o apêndice Higgsfield é apenas quando o usuário pedir explicitamente. - Nunca raspe filmes, séries, anúncios ou posts sociais de outras pessoas.
- Logotipos apenas do MCP thesvg ou Wikimedia Commons, e somente após a aprovação do usuário.
- A música é opcional (omitida, faixa do próprio usuário ou um arquivo do Commons convertido para MP3).
- Os efeitos sonoros são sintetizados por
reel.py sfx.
- Tudo com origem gratuita: MCP Pixabay, Wikimedia Commons (verifique a licença de cada arquivo),
MCP thesvg para logotipos, mais síntese local (ffmpeg Ken-Burns,
- A voz é o relógio.
- Todo corte cai sobre uma palavra, um quadro antes dela.
reel.pyfaz isso. - Nunca altere a velocidade ou as palavras.
- As legendas mostram exatamente o que é falado, exceto correções
spellde nomes mal interpretados.
- Todo corte cai sobre uma palavra, um quadro antes dela.
- Pessoas:
- roupas modestas e adequadas à época;
- adultos realistas;
- nenhuma figura pública real como personagem;
- modelos de IA e empresas são mostrados como personagens inventados e nomeados apenas por legenda e logotipo.
- Reexecuções são baratas.
planebuildsão determinísticos e reconstroemreel.aepdo zero. Alterestory.jsonem vez de editarreel.aepmanualmente, a menos que o usuário peça edições manuais. Depois que eles editaremreel.aeppessoalmente, nunca reconstrua por cima sem perguntar. - O AE executa um script de cada vez.
- Use apenas
scripts/ae_run.sh,build.sherender.sh. - Saída 4 significa que o AE ainda está ocupado: espere, nunca reenvie.
- Saída 6 significa que o AE não iniciou o script: há uma caixa de diálogo aberta?
- Use apenas
Arquivos
| caminho | o que é |
|---|---|
scripts/reel.py | prep / words / chunks / align / screen / sfx / plan (apenas biblioteca padrão) |
scripts/build.sh, scripts/ae/build_reel.jsx, scripts/ae/reel_lib.jsx | a construção do After Effects |
scripts/render.sh | aerender para H.264 (--half para verificações) |
scripts/ae_run.sh | envia um script para o AE em execução e espera |
scripts/tools/*.swift → scripts/bin/ | conversão de áudio, transcrição no dispositivo, caixas de rosto, folhas de quadro |
references/story.md | formato do story.json, regras de plano, um exemplo completo |
references/higgsfield.md | manual de fontes gratuitas: receitas testadas de recuperação e verificação Pixabay / Wikimedia / thesvg, mapeamento por recurso, apêndice de geração paga |
references/look.md | o que o build desenha (tamanhos, temporizações, cores) e como ajustar |
references/troubleshooting.md | erros e correções |
references/example_story.json | o story.json de um reel finalizado de 70 s (o teste EXPERIMENT) |
PROMPT.md | como instalar o skill e o prompt único para enviar |