Você diz o assunto e passa o link de um vídeo. O agente reescreve o roteiro em português, usa as telas reais da referência, grava com o seu avatar e a sua voz e entrega pronto para o Telegram ou o YouTube.

O refazvideo é um passo a passo, com ferramentas prontas, para um agente de IA (Claude Code ou Codex) refazer um vídeo que você achou bom como um vídeo explicativo seu, em português. Serve para quem produz conteúdo e quer explicar um assunto novo sem gravar a si mesmo. Você entrega o assunto e o link; o agente baixa, transcreve, escreve um roteiro novo, mostra uma prévia e só gera o avatar depois do seu "pode fazer". Para usar, precisa do motor explicavideos, de uma conta HeyGen com o seu avatar e de uma máquina com GPU.
O vídeo novo tem roteiro reescrito e o seu rosto. Da referência ficam só as telas que ajudam a entender.
A fala é gerada no HeyGen com o seu avatar, pelo estúdio (sem API), e só depois da sua aprovação, porque custa crédito.
Slides, demos e tabelas viram prints com destaques sincronizados à fala. Termos técnicos ficam em inglês.
A fala não cita quem fez a referência e a webcam dele é apagada de cada print. Se você quiser, o crédito aparece escrito no fim.
Doze passos descritos no AGENTS.md. O agente para duas vezes para você aprovar: no storyboard e antes do HeyGen.
Os caminhos dos exemplos são os da máquina do INEMA (/home/nmaldaner/...); troque pelos seus.
O motor que sincroniza avatar e fala (v1) e monta o visual com HyperFrames (v2).
git clone https://github.com/inematds/explicavideos
Baixa a referência e transcreve com Whisper large-v3 local.
python3 baixar_v1.py --url "<URL>" --outdir src
Conta com avatar próprio, logada num perfil de navegador. O heygen-studio.mjs usa o estúdio, não a API.
# Xvfb :99 para o navegador Xvfb :99 -screen 0 1920x1080x24
Python com Pillow para preparar os prints; Node para o estúdio HeyGen e o envio pelo bot.
pip install pillowO Whisper do render v1 roda na GPU. Se der falta de memória, é só zerar o bloco e repetir.
nvidia-smiBot Telegram (openpcbotv3) para mandar o vídeo e yt-pubx para publicar no YouTube.
./yt-pubx canaisVocê só precisa do passo 1 e das duas aprovações. O resto o agente faz seguindo o AGENTS.md; os comandos abaixo são os que ele roda.
Pode escrever direto no chat ou preencher modelos/pedido.md (assunto, referência, quem não citar, crédito, duração, entrega).
cd refazvideo && claude "Faça um vídeo novo. Assunto: <tema>. Referência: <URL>. Não citar: <autor>. Entrega: bot v3."
A referência vai para ~/projetos/output/explica-<id>/. As folhas mostram um quadro a cada 6 s, numerado, para escolher as telas úteis.
python3 ~/projetos/inemavox/baixar_v1.py --url "<URL>" --outdir $OUT/src --quality 1080p python3 ~/projetos/inemavox/transcrever_v1.py --in $OUT/src/video.mp4 --outdir $OUT/src --whisper-model large-v3 ferramentas/extrair_frames.sh $OUT # → frames/sheet*.jpg
A webcam muda de lugar ao longo do vídeo: cada print tem a sua caixa. O modo linha continua o fundo da tela em vez de deixar mancha.
ffmpeg -ss 453 -i $OUT/src/video.mp4 -frames:v 1 $OUT/media/raw-453.png ferramentas/preparar_print.py raw-453.png s-453.png --cobrir 1516,52,377,362 # webcam no canto superior ferramentas/preparar_print.py raw-33.png p-33.png --crop 0,0,1250,1080 --pad # slide estreito → 2052×1080
O roteiro (roteiro/pt.json) é reescrito, não traduzido frase a frase, a ~150 palavras por minuto, e fecha com "inema ponto club". O storyboard mostra cena, fala e prints para você aprovar.
ferramentas/montar_storyboard.py $OUT mapa.json # → preview/storyboard.html
Só depois do seu "pode fazer", gravado em v1/APROVADO_HEYGEN. Um envio por bloco; o HeyGen pode ficar um bom tempo em 0% e depois termina em minutos.
DISPLAY=:99 node engine/heygen-studio.mjs --titulo EXPLICA-<ID>-PT-B01-v1 \ --fala-arquivo $OUT/v1/blocos/pt-b01.txt --template TEMPLATE-AVATAR16 ~/projetos/refazvideo/ferramentas/baixa_blocos.sh $OUT # espera até 2 h por bloco
O v1 sincroniza avatar e fala. O v2 põe os prints, destaques e animações no tempo exato da fala; o validador barra os erros que já quebraram vídeos antes.
ferramentas/validar_visual.py $OUT/roteiro/pt.json $OUT/visual/pt-b*.json # → OK python3 engine/v2/build_block.py 1 --strict engine/v2/run_lane.sh 1 2 && python3 engine/assemble_languages.py # → v2/final/<id>-pt.mp4
Antes de entregar, uma folha de quadros espalhados pelo vídeo: rosto alheio, texto cortado, sobreposição. Depois Telegram (cópia 720p, até 49 MB) e/ou YouTube.
node ferramentas/enviar_bot_v3.mjs $OUT/v2/final/<id>-pt-720p.mp4 "legenda" ~/projetos/yt-pubx/yt-pubx publicar $OUT/v2/final/<id>-pt.mp4 --canal lives1 --dry-run
Referência de 9m38s em inglês → explicativo de 5m42s em português, 11 cenas, 2 blocos de avatar. Tudo o que foi rodado está em exemplos/decisions-jev/.


O que já existe e o que vem a seguir.