PTENES
Canal motivacional · automação local · custo zero

Um tema vira um vídeo pronto

História original, narração por cena, ilustrações stick-figure consistentes e um MP4 16:9 montado pelo FFmpeg. Sem pagar gerador de imagem nem de vídeo.

Ilustração pintada à mão de um stick figure com cachecol ocre subindo uma colina em papel texturizado
O que é

A fábrica de vídeo do canal "Productive Peter", só que sua e de graça

Formato simples e repetível: uma história motivacional, uma voz, ilustrações que trocam conforme a narração avança. O videomotival automatiza o formato inteiro, da ideia ao MP4, com tudo rodando na sua máquina.

✍️ Escreve a história

Um LLM (OpenRouter, Groq ou Ollama local) escreve uma história original com arco em seis movimentos e já a divide em cenas: narração, descrição visual e prompt de imagem.

🎙️ Narra cena a cena

Cada cena vira um MP3 separado (inemavox, voz clonada rachel). A duração do áudio comanda o tempo da imagem na tela — sem Whisper, sem timestamps.

🖼️ Ilustra e monta

flux2-klein na GPU local gera uma ilustração 16:9 por cena no mesmo estilo e com o mesmo personagem. O FFmpeg aplica zoom lento, grava o título e concatena o vídeo final.

Como funciona

Sete etapas, um comando

O pipeline é determinístico e retomável: cada etapa grava seus arquivos na pasta da corrida e pula o que já existe. Você pode parar para revisar o roteiro antes de gastar GPU, ou rodar tudo de uma vez.

Tema→ História + cenas→ Voz por cena→ ffprobe mede→ Ilustrações→ FFmpeg cenas→ MP4 final

Três portas de entrada

Interface web local (revisão visual das cenas, regenerar ilustração, refazer voz), CLI por etapa, e uma skill do Claude Code que orquestra tudo a partir de "faz um vídeo de 90 s sobre X".

Estilo travado em código

Estilo visual, bíblia do personagem e o bloco "sem texto" são anexados a todo prompt pelo pipeline, não pelo modelo. Só a cena 1 recebe título, gravado pelo FFmpeg com o texto exato.

Estrutura de uma corrida

~/projetos/output/videomotival/<run>/
├── final.mp4
├── manifest.json
└── work/
    ├── story.md · transcript.md · scenes.json
    ├── audio/001.mp3 …
    ├── images/001.png …
    └── video/001.mp4 …
Pré-requisitos

O que precisa estar no ar

Tudo local. Nenhuma chave vai para o repositório: as chaves de LLM são lidas em runtime dos arquivos de segredo da máquina.

FFmpeg + Python 3.12

ffmpeg/ffprobe para medir, renderizar e concatenar; Pillow para o título; FastAPI só para a interface web.

pip install -r requirements.txt
python3 -m videomotival check

inemavox (voz)

Daemon de TTS em localhost:8010. Padrão: engine chatterbox com a voz clonada rachel. Para testes rápidos sem GPU, engine edge.

# voz de teste, sem GPU
--engine edge --voice pt-BR-FranciscaNeural

inemaimg (imagens)

Servidor em localhost:8000 com o modelo flux2-klein carregado. Gera 1920x1080 em cerca de 12 segundos por cena.

# provedores de história, em ordem
STORY_PROVIDER=auto  # openrouter → groq → ollama
Guia de uso · passo a passo

Do tema ao MP4

O mesmo fluxo do tutorial original, etapa por etapa, para você revisar o que quiser no caminho. No fim, o passo único que faz tudo.

1

Confira o ambiente

Verifica ffmpeg, os dois serviços locais e qual provedor de história tem chave disponível. Nunca imprime segredos.

cd ~/projetos/videomotival
python3 -m videomotival check  # OK ffmpeg · história: auto · inemavox ok · inemaimg ok
2

Crie a corrida e gere o roteiro

Escreve a história, divide em cenas e para em "revisão". Os arquivos ficam em work/ dentro da pasta da corrida.

python3 -m videomotival create --topic "Pare de esperar a motivação" --duration 75
# → ~/projetos/output/videomotival/<run-id>/work/{story.md, transcript.md, scenes.json}
3

Revise as cenas (opcional)

Edite narração ou descrição visual direto no scenes.json. O recompose recompõe os prompts e invalida só as cenas alteradas.

python3 -m videomotival recompose --run <run-id>
4

Gere a narração por cena

Um MP3 por cena (001.mp3, 002.mp3…), medido pelo ffprobe. O ritmo real em palavras por minuto é gravado e realimenta o roteirista nas próximas corridas.

python3 -m videomotival tts --run <run-id>  # [probe] 5 narrações: 58.3s medidos para alvo de 60s
5

Gere as ilustrações

Uma imagem 16:9 por cena, mesma seed e mesma bíblia do personagem em todo prompt. Uma cena saiu ruim? Regenere só ela com outra seed.

python3 -m videomotival images --run <run-id>
python3 -m videomotival regen-image --run <run-id> --scene 3  # nova seed só para a cena 3
6

Renderize o vídeo

Cada par imagem + áudio vira um clipe com zoom lento alternado; a cena 1 recebe o título; os clipes são concatenados e o resultado é verificado (1920x1080, áudio, duração).

python3 -m videomotival render --run <run-id> [--music trilha.mp3]
# → ~/projetos/output/videomotival/<run-id>/final.mp4 + manifest.json
7

Ou faça tudo de uma vez

Depois que o formato está afinado, só o tema muda. Este comando roda as sete etapas sem parar.

python3 -m videomotival create --topic "Por que o progresso pequeno vence a motivação grande" --duration 90 --auto
8

Interface web ou Claude Code

A web mostra as etapas, as cenas com áudio e imagem, deixa editar o roteiro e regenerar. A skill do Claude Code faz o mesmo por conversa.

./run.sh web   # → http://127.0.0.1:8030
# no Claude Code, dentro do projeto:
"Use a skill motivational-story-video: vídeo de 90 s sobre 'Como parar de se comparar'"
Exemplos

Uma corrida real de 60 segundos

Tema "Por que o progresso pequeno vence a motivação grande": 5 cenas, voz rachel, 58 s medidos, produzido de ponta a ponta em cerca de quatro minutos.

Primeiro quadro do vídeo com o título O Hábito Minúsculo Vence sobre a ilustração
Cena 1: o título é gravado pelo FFmpeg com o texto exato, em caixa cor de papel sobre a ilustração.
Stick figure com cachecol ocre segurando um caderno como se fosse rasgá-lo
Cena 3: mesma personagem (cachecol ocre, caderno) no momento de dúvida da história.
Stick figure caminhando com o caderno debaixo do braço
Cena 5: o desfecho. Nenhuma cena além da primeira contém texto.
Interface web do videomotival mostrando o vídeo final, a bíblia do personagem e a cena 1 editável
Interface web: etapas, vídeo final, cenas editáveis com áudio, e botões para nova ilustração ou refazer a voz.
Roadmap

Onde está e para onde vai

A arquitetura é a mesma para qualquer nicho: história de negócios, conto infantil, fato histórico. Muda o roteirista e o estilo visual.

v1.0
Pipeline completo, web, CLI e skillTema → MP4 verificado. Provedores: OpenRouter/Groq/Ollama para história, inemavox para voz, flux2-klein para imagem. Fish Audio implementado como alternativa.
próximo
Consistência do personagem por referênciaHoje é prompt + seed fixa. Usar a cena 1 como imagem de referência quando o servidor de imagens suportar edição guiada.
depois
Outros formatos e publicaçãoVersão 9:16 para Shorts, música e efeitos pelo inemavox, e envio direto para o canal.