Reel Studio — como um vídeo é feito
O processo é o mesmo para todos os estilos. A aparência e o som de um vídeo vêm do seu estilo; para quem é, seu formato, a voz e de onde as imagens podem vir vêm das configurações do estúdio. A skill genérica animated-video contém o método mais amplo (brainstorm, storyboard, teste mudo, revisão); onde diferir, esta skill e a do estilo vencem. Pergunte com uma recomendação para que "sim" seja uma resposta completa. Gerar ideias e salvá-las no quadro do projeto é função da skill content-ideas, antes deste processo começar.
O workspace
projects/<id>/— um projeto: um canal para o qual o criador faz vídeos (o seletor de projetos do estúdio; o prompt diz qual está aberto). Sua pastaconfig/contém suas configurações (Ajustes):profile.json,voice.jsoneaccount.json(seu Instagram,Mi cuenta);account/contém o que foi baixado dessa conta. Não mexa na pasta de outro projeto a menos que seja solicitado.projects/<id>/videos/<slug>/— um vídeo: um projeto Remotion copiado do template do seu estilo.title.txt(seu nome no estúdio),style.txt(um id de estilo),audio/vo.txt(a narração, exatamente como vai para a voz),audio/beats.json(a estrutura do roteiro),src/format.json(tamanho, fps, loudness),CREDITS.md,caption.md,out/(renders, storyboards; não versionado).formats/<id>/format.json— um formato: o tipo de vídeo (toda animação sobre uma voz gerada ou sobre a voz gravada do criador; o criador falando para a câmera com animações…), o que está na tela e como é editado. Um vídeo nomeia seu formato emformat.txt(nenhum: o padrão, animado).skillaponta para suas próprias instruções,overlaypara arquivos que adiciona sobre o template do estilo;"footage": truesignifica que o vídeo começa a partir da gravação dele emfootage/("voiceOnly": true: apenas seu som — áudios — é usado).styles/<id>/style.json— um estilo: paleta e o que cada cor significa, fontes, aparência, movimento, imagens, o que evitar.skillaponta para suas próprias instruções,templatepara o projeto Remotion que novos vídeos copiam.config/(na raiz) — configurações compartilhadas por todos os projetos:images.json(fontes de imagem),social.json(scraper).tools/— scripts compartilhados.LESSONS.md— lições de vídeos anteriores.projects/<id>/inspiration/<account>/— reels de outras contas estudados na página Inspiración do projeto:account.json(analysis.text: o que funciona para aquela conta) e por reelreel.json(métricas, legenda),transcript.json,analysis.json(gancho, estrutura, visuais, CTA, o que aproveitar),hook.jpg(primeiros 3 s) esheet_NN.jpg(1 frame/s). Use-os para ângulos e ganchos quando solicitado; adapte ao perfil do criador, nunca copie um roteiro.
As configurações vêm do estúdio
O Reel Studio coloca o perfil (idioma, plataforma, público, duração, regras de legenda), o formato do vídeo, a voz e as fontes de imagem no seu prompt a cada turno. Eles vencem esta skill e a do estilo. Nunca codifique um id de voz ou configurações, um tamanho, uma taxa de quadros ou um alvo de loudness.
Chaves de API ficam no .env do workspace (definido em Ajustes, ao lado do que cada uma é para: Voz, Extração de dados). As ferramentas as leem; nunca imprima uma chave ou peça uma no chat — se uma estiver faltando, peça ao criador para adicioná-la em Ajustes.
Python: ferramentas que usam apenas a biblioteca padrão executam com python3 (python no Windows): tts.py, el_words.py, standin_words.py, commons.py, openverse.py, pexels.py, pixabay.py, unsplash.py, generate_image.py. Ferramentas que precisam de pacotes executam com o venv do workspace, ../../../../.venv/bin/python (Windows: ../../../../.venv/Scripts/python.exe): cutout.py, audio/mix.py e sheet.py (snap.sh o usa, ou ffmpeg quando não há venv). Estilos que fazem cutouts precisam do venv (Ajustes → Requisitos o instala). Caminhos abaixo são da pasta do vídeo.
Antes de começar
Leia o formato do vídeo: formats/<id do format.txt>/format.json e, se tiver, sua skill — ela diz como este tipo de vídeo é feito e vence os passos abaixo onde diferirem (por exemplo, com a gravação dele não há roteiro para escrever ou voz para gerar: a edição fornece ambos). Leia o estilo do vídeo: styles/<id do style.txt>/style.json e, se tiver, sua skill. O formato nunca decide cores, tipo ou bordas: isso é do estilo. Leia LESSONS.md (a parte geral e a do estilo). Um estilo sem skill ou template é construído no template do estilo padrão (template/), com a aparência alterada para seu style.json; diga isso quando começar.
Passos
- Novo vídeo — o estúdio o cria a partir da primeira mensagem (pasta, título, estilo, formato, tamanho). A partir de um terminal ou da conversa geral:
scripts/new-video.sh <slug> [estilo] [formato]. - Roteiro — com a skill
video-script(gancho, segurando a resposta, tempo, checklist), começando pelas notas da ideia se vier do quadro. Plataforma, idioma, público e duração do perfil; palavras ≈ o ritmo medido da voz × os segundos alvo. Objetivo: alcance, a menos que instruído de outra forma. Escreva números por extenso emaudio/vo.txt("mil quarenta e dois") e mapeie-os de volta para dígitos emsrc/captions.tsDISPLAY. Obtenha aprovação. Escrevaaudio/vo.txteaudio/beats.json. - Imagens — faça um brainstorming de uma imagem por batida com um agente novo (animated-video → encontre as imagens). Prefira um motivo físico recorrente que represente o sistema ao longo do filme (um armário de fichas = o servidor, gavetas = registros). As imagens mantêm a pergunta do roteiro em aberto: o primeiro quadro a levanta, e nenhuma imagem ou título na tela mostra a resposta antes da narração chegar lá. Obtenha aprovação do conceito.
- Voz —
python3 ../../../../tools/tts.py audio/vo.txt audio/vo.mp3, depoisffmpeg -y -i audio/vo.mp3 -ar 48000 public/vo.wavepython3 ../../../../tools/el_words.py audio/vo.alignment.json public/vo.wav(→src/words.json,src/vo_env.json). Antes da voz existir:python3 ../../../../tools/standin_words.py audio/vo.txt src/words.json(temporizado no ritmo da voz; chame de placeholder). Faça uma amostra curta primeiro quando algo sobre a voz mudar. Use o áudio como retornado (não corte pausas a menos que solicitado). Cada geração custa caracteres: não regenere sem motivo. - Imagens — pesquise livremente na web usando ferramentas de busca e navegação disponíveis; qualquer site pode ser uma fonte. O prompt lista integrações de API opcionais, não uma lista de permissões ou ordem obrigatória. Use essas APIs apenas quando habilitadas e configuradas; pesquisa web gratuita não precisa de configurações de fonte. Downloads vão para
assets/src/(não versionado); registre cada imagem emCREDITS.md(título, autor, licença quando conhecida, link original; nunca invente uma licença). Quando banco de imagens não servir, peça uma foto de celular do gesto exato (fundo simples, boa luz). Como as imagens são tratadas é do estilo. - Construção — atua em
src/lib.tsACTS(corte ~0.08 s antes da primeira palavra de cada ato), legendas como unidades de sentido emsrc/captions.ts(verificadas palavra por palavra contra a transcrição), uma cena por ato emsrc/film/scenes.tsx. Cada tempo vem de um cue (cue('frase'),at('frase')), então uma nova voz retemporiza o filme. Tamanhos e quadros desrc/lib.ts(W,H,FPS,f()), nunca números literais. Os componentes são do estilo. - Storyboard —
./snap.sh out/board <seg> …renderiza stills esheet.png. Mostre um quadro chave por batida; obtenha aprovação. Passe os tempos literalmente (no zsh uma lista separada por espaços em uma variável não divide). - Som — a folha de cues em
audio/mix.py, com tempos dos mesmos cues que as cenas usam;../../../../.venv/bin/python audio/mix.py→public/mix.wav; definaaudio: trueemsrc/Root.tsx. Quais sons: do estilo. Diga na entrega quais sons são sintéticos. - Teste mudo — antes do primeiro corte completo:
ffmpeg -i out/<nome>.mp4 -vf "fps=2,scale=270:-1,tile=8x5" out/mute/sheet_%02d.pnge dê apenas essas folhas a um agente novo (ignore legendas; re conte; liste confusões e quebras). Corrija, re verifique stills. - Renderizar — no macOS e Linux, primeiro mate renderizadores órfãos:
ps -A -o pid=,ppid=,command= | awk '$2==1 && /chrome-headless-shell/ {print $1}' | xargs kill. DepoisCONCURRENCY=3 ./render.sh <nome>→out/<nome>.mp4, normalizado para o loudness do formato. Verifique duração, loudness, primeiro e último quadro. Escrevacaption.mdcom as regras de legenda do perfil e os créditos; sua abertura levanta a pergunta do gancho em vez de respondê-la. Se o vídeo ou legenda pedir que as pessoas comentem uma palavra para receber algo, escrevaautomatizacion.json(Reel Studio → Instrucciones automatización) com o que é colado no ManyChat ou InstantDM, como strings:keyword(a palavra exata),reply(a resposta pública ao comentário),dm(a mensagem direta) elink. Cada um é copiado como está, então sem anotações dentro deles; deixe vazio o que faltar e nunca invente um link. Relate o caminho, problemas abertos, verificações ignoradas, o que é sintético ou inventado, e os créditos.
Após um vídeo
Projetos de clientes, vídeos, preferências, estilos personalizados e lições pessoais permanecem locais e são ignorados pelo repositório da aplicação. Não os confirme ou envie para lá, inclusive após uma renderização; nunca force a adição de dados ignorados. Um repositório separado para conteúdo do cliente requer solicitação explícita do criador.
Adicione o que custou uma revisão a LESSONS.md, uma linha cada com o motivo, sob a parte geral ou a do estilo.
Quando os números do vídeo postado voltarem, leia-os com video-script → Revisão. Conseguir ir da ideia à postagem rapidamente é importante, porque muitos vídeos vão fracassar e cada um ensina algo, então uma nova versão muda o mínimo possível: mantenha o que foi aprovado, mude apenas o que está sendo testado (um novo gancho, um corte onde as pessoas saíram), e regenere a voz apenas para a narração que mudou. Não adicione polimento que ninguém pediu.