Motor de reels · v1.2.0 · local e grátis

Do roteiro ao reel ilustrado, sem pagar nada

Você escreve um roteiro.json; o rtexjp devolve um reel vertical 1080×1920 em azul-marinho, com avatar ilustrado do Nei, mascote robô, voz do Nei (ou a sua) e um único pedido de opinião: "comenta PAGO ou LOCAL".

Quadro 0 do 1º reel de exemplo, em azul-marinho: a manchete "A China fecha a torneira?" com FECHA A em amarelo, uma torneira com cadeado vermelho e carimbo LICENÇA e, embaixo, o avatar grande do Nei com as mãos no rosto, assustado
Em resumo

O rtexjp é um motor que monta vídeos curtos verticais (reels) ilustrados, em azul-marinho, a partir de um roteiro escrito num arquivo de texto (roteiro.json). É o motor que o Nei usa nos reels do INEMA, aberto para quem quiser estudar ou adaptar: sem gravar a si mesmo e sem pagar serviço de avatar. Ele gera a voz, desenha cada cena quadro a quadro, mistura a trilha e confere sozinho se o vídeo segue o formato. Precisa de um computador com placa de vídeo (GPU), Python, Node, ffmpeg e dois servidores locais: o de voz (inemavox) e o de imagem (flux2-klein).

Vem configurado com a voz e o avatar do Nei. Para usar os seus, aponte as variáveis de ambiente RTEXJP_VOZ_REF (gravação de referência da voz) e RTEXJP_AVATAR_REF (foto do avatar) para os seus arquivos, descreva o seu personagem em RTEXJP_AVATAR_DESC (sem isso as poses saem com o boné, os óculos e a barba do Nei) e gere as poses de novo; nada no código precisa ser editado. Esses dois arquivos não vêm no repositório (veja Pré-requisitos).

O que é

Um formato fixo, conferido por um validador

Todo reel segue o mesmo esqueleto: gancho no quadro 0, prova com fonte, o problema de quem assiste, peças numeradas, ressalva honesta, máxima e uma pergunta de opinião. O motor desenha; o validador reclama se algo sair do formato.

Três quadros dos reels de exemplo lado a lado: o gancho da torneira com cadeado ("A China fecha a torneira?"), o gancho do iceberg ("Paga 200. Custa até 5 mil.") e o cartão final com as opções PAGA e SAI em amarelo

🎨 Ilustrado, sem lip-sync

Avatar ilustrado do Nei grande, embaixo (≈ 43 % da altura), em 11 poses ligadas à emoção da fala (susto, dúvida, aponta, explica, polegar…), um desenho-herói por cena e um mascote robô. Ninguém precisa gravar nada.

🎙️ Voz do Nei, local

Voz por TTS local (inemavox chatterbox), 160–190 palavras por minuto, Whisper local marcando o tempo de cada palavra para a legenda e os gatilhos de cena.

✅ QA automático

Mede duração, ritmo da fala, volume (−14 LUFS), trocas visuais por minuto, prova até 20 s, opções da isca plantadas antes, CTA sem promessa de entrega, cartão final e silêncio antes da máxima. Sai um qa.md e um contact.jpg.

O formato

As nove regras do padrão rtexjp

É isso que o comando checar e o QA cobram em cada edição.

  1. Gancho no quadro 0, de um destes tipos: contrário (manda parar algo que todo mundo faz), perda (e se X sumisse?), estatística de medo com fonte, ou história de terceiro com número. Proibido: lista ("5 coisas…"), "você sabia que…", "eu fiz…".
  2. Manchete do quadro 0 com até ~6 palavras, caixa alta, uma palavra em amarelo, mais agressiva que a fala. Um objeto com dano desenhado (riscado de vermelho, quebrado), o avatar reage no 1º segundo e algo muda a cada ~1 s nos 3 primeiros segundos. O quadro 0 serve de capa.
  3. Prova até 20 s: o print real da página da fonte, o número na manchete e a linha fonte: embaixo.
  4. O problema de quem assiste, com absolvição ("não é culpa sua, ninguém te deu o mapa"). Aqui a pergunta final já é plantada: as opções aparecem em amarelo.
  5. Um tema por vídeo, em 2–5 peças com índice visível e barra de pílulas no topo; um objeto por frase, mudando a cada 2–3 s.
  1. Todo número tem fonte escrita na tela (fonte: …).
  2. Ressalva honesta falada, num cartão de alerta (vermelho = problema, verde = certo).
  3. Máxima em antítese, depois de 0,8 s de silêncio real (voz e trilha param).
  4. CTA de opinião: o Nei diz o lado dele e faz uma pergunta forte, respondida com uma palavra ("comenta PAGO ou LOCAL"). O cartão mostra a pergunta e as opções, a caixa de comentário digita uma opção, publica e confirma; fica ~10 s, sem despedida. Nunca promete entrega ("te mando", "eu envio"): ninguém responde comentários. Link e fonte ficam parados no comentário fixado.

Glossário rápido

Isca de opinião

A pergunta do fim, com duas opções de uma palavra (no 1º vídeo, PAGO ou LOCAL). A tensão aparece no quadro 0, as opções são plantadas cedo e só elas (e a palavra quente da manchete) ficam em amarelo.

Máxima

A frase-resumo do fim, em antítese ("Ser dono do teu sistema nunca foi saber cada linha. É saber o que segura o quê."). Vem depois de um silêncio curto.

Palco

A página motor/palco.html que desenha cada cena. O render tira uma foto dela por quadro.

Cama musical

Trilha baixa por baixo da voz, que abaixa quando a voz fala e para no silêncio antes da máxima.

LUFS

Medida de volume percebido. −14 LUFS é o volume que as redes usam como padrão.

CTA

"Chamada para ação": o pedido final do vídeo. Aqui é sempre um só, uma pergunta de opinião respondida com uma palavra.

TTS e lip-sync

TTS é a voz gerada a partir do texto. Lip-sync é a boca mexendo junto com a fala; o rtexjp não faz, o avatar só muda de pose.

Whisper e Playwright

Whisper transcreve a voz e dá o tempo de cada palavra. Playwright abre o palco num navegador sem janela e tira a foto de cada quadro.

Flash tipográfico

Uma tela rápida só com texto grande entre as peças, para o vídeo não ficar parado.

Tipos de bloco

tese = afirmação (o gancho, o problema); autoridade = a prova com fonte; virada = o índice que anuncia as peças; metodo = cada peça; planta é só o id do bloco que planta as opções da pergunta final.

Batida

Um trecho do bloco que troca manchete, desenho e pose na palavra marcada em em. É o que faz algo mudar a cada 2–3 s.

Desenho-herói

O objeto ilustrado grande no meio da tela (terminal quebrado, mapa, cadeado), tirado da biblioteca motor/assets/objetos/.

O visual v1.2, de cima para baixo

  1. Rótulo em monoespaçada (≥ 30 px) e, nas peças, as pílulas 01–03.
  2. Manchete em Sora ExtraBold, centrada, 2–3 linhas, ≥ 96 px, quase branca, com uma palavra em azul-aço claro (amarela só no quadro 0).
  3. Desenho-herói ou print real, grande, entre a manchete e o avatar.
  4. Legenda karaokê numa faixa própria, com a palavra dita destacada.
  5. Avatar grande, embaixo e centralizado, na pose da batida; o rosto fica acima dos 80 % da altura.

O fundo tem holofote e grão leve e alterna entre o marinho e um papel azul-gelo ("tema": "claro" na cena), com letras marinho. No silêncio antes da máxima o último quadro fica congelado com o avatar pensativo: nunca tela vazia.

Portão de beleza: o QA mede no próprio palco, em duas amostras por bloco, a manchete (≥ 96 px), todo texto (≥ 30 px), a área ocupada (≥ 55 % do quadro útil), o contraste do texto (≥ 4,5:1) e a altura do avatar (≥ 38 %). Vale para roteiros com "versao": "rtexjp/3".

Como funciona

Seis passos, um comando cada

O rtexjp.py roda os passos em ordem. O palco é uma página HTML desenhada por window.render(t): a mesma build/cena.json sempre gera o mesmo vídeo. A voz, não: o TTS sai um pouco diferente a cada vez (por isso o passo voz aceita refazer só alguns blocos).

roteiro.json→ checar→ voz + Whisper→ cena→ render (Playwright, 30 fps)→ mix (−14 LUFS)→ qa→ final.mp4
1

Roteiro e validação

checar confere o esqueleto pelo campo tipo: começa em tese, virada antes do primeiro metodo (2–5 peças), ressalva antes da maxima, maxima logo antes do cta no fim. O 2º exemplo usa tese (gancho) → autoridade (prova) → tese (problema + opções) → virada → metodo ×3 → ressalva → maxima → cta.

2

Voz e cena

voz gera um áudio por bloco, acelera até 1,15× e junta; cena cruza o roteiro com o tempo de cada palavra.

3

Render, mix e QA

render fotografa o palco quadro a quadro; mix põe a trilha (que para no silêncio da máxima); qa mede tudo.

Pré-requisitos

O que precisa estar na máquina

Tudo roda localmente. Nenhuma API paga é chamada. Os caminhos vêm de variáveis de ambiente, com o padrão da máquina do Nei; se a sua for diferente, exporte as variáveis (tabela abaixo) e nada no código precisa mudar.

Voz: inemavox + ambiente chatterbox

O projeto inematds/inemavox clonado em ~/projetos/inemavox (o motor chama o tts_direct.py e o whisper_daemon.py dele). O TTS chatterbox e o Whisper large-v3 rodam num ambiente Python à parte (no Nei, o conda env chatterbox em ~/miniconda3/envs/chatterbox); se o seu estiver em outro lugar, aponte as variáveis abaixo. Se clonar em outro lugar, exporte RTEXJP_INEMAVOX com o caminho. O Whisper large-v3 ocupa cerca de 10 GB na placa de vídeo (GPU NVIDIA), mais o chatterbox. Testado em Linux.

git clone https://github.com/inematds/inemavox ~/projetos/inemavox
cd ~/projetos/inemavox && python3 -m venv venv
./venv/bin/pip install -r requirements.txt   # o rtexjp chama venv/bin/python tts_direct.py
# chatterbox + faster-whisper num ambiente próprio (ver o README do inemavox)
export CHATTERBOX_PYTHON=/caminho/do/env/bin/python3   # TTS
export CS_WHISPER_PY=/caminho/do/env/bin/python3       # Whisper

Imagem: flux2-klein

O servidor inematds/inemaimg com o modelo flux2-klein (padrão http://localhost:8000/generate, ou o endereço em RTEXJP_IMG_URL), mais a foto de referência do avatar (RTEXJP_AVATAR_REF). Só é preciso nos passos opcionais 4 e 5 (poses e desenhos de cena); as poses do Nei e a biblioteca de desenhos já vêm prontas.

Node, ffmpeg, Python

Node 18 ou mais novo, ffmpeg (com o ffprobe, que vem junto) e Python 3 com Pillow e numpy.

git clone https://github.com/inematds/rtexjp
cd rtexjp
npm i
npx playwright install chromium
pip install --user pillow numpy   # ou dentro de um venv

Caminhos e variáveis de ambiente

RTEXJP_INEMAVOX · pasta do inemavox (TTS + Whisper)~/projetos/inemavox
RTEXJP_VOZ_REF · gravação de referência da voz (.wav)~/projetos/timesmkt3/media/voice-refs/nei.wav
RTEXJP_IMG_URL · servidor de imagem flux2-kleinhttp://localhost:8000/generate
RTEXJP_AVATAR_REF · foto de referência do avatar~/projetos/inema-referencias/nei-avatar.jpg
RTEXJP_AVATAR_DESC · traços e roupa do personagem no pedido de imagem (em inglês)boné preto, óculos, barba grisalha, camiseta azul-aço (o Nei)
RTEXJP_TRILHA · cama musical do mixmotor/assets/trilha.mp3
CS_WHISPER_PY · Python do ambiente com faster-whisper (servidor do Whisper e plano B)~/miniconda3/envs/chatterbox/bin/python3
CHATTERBOX_PYTHON · Python do ambiente do chatterbox, exigido pelo tts_direct.py do inemavoxo do ambiente chatterbox
# exemplo: tudo em outros caminhos, sem editar o código
export RTEXJP_INEMAVOX=~/inemavox
export RTEXJP_VOZ_REF=~/minha-voz.wav
export RTEXJP_AVATAR_REF=~/minha-foto.jpg
export RTEXJP_AVATAR_DESC="same face, short brown hair, no glasses. She wears a plain navy blazer"
export RTEXJP_IMG_URL=http://outra-maquina:8000/generate
Guia de uso · passo a passo

Do roteiro ao final.mp4

Cada edição mora em edicoes/<id>/. O atalho tudo (passo 10) roda de uma vez checar, voz, cena, render, mix e qa (sem a prévia de quadros do passo 7).

1

Aponte a sua voz de referência você

O passo da voz clona a voz de uma gravação curta. O padrão aponta para a gravação do Nei, que não vem no repositório; sem apontar a sua, o passo voz falha. Grave uns 10 a 20 segundos da sua fala limpa, em WAV, e exporte RTEXJP_VOZ_REF. Se for trocar o avatar também, exporte RTEXJP_AVATAR_REF com uma foto sua e RTEXJP_AVATAR_DESC com os seus traços e a roupa, e rode o passo 4.

export RTEXJP_VOZ_REF=~/minha-voz.wav
export RTEXJP_AVATAR_REF=~/minha-foto.jpg   # só se for trocar o avatar
2

Escreva o roteiro você

Copie o roteiro do exemplo e troque o conteúdo. O formato está resumido logo abaixo do guia, em "O roteiro.json".

mkdir -p edicoes/minha-edicao
cp edicoes/2026-10-28-china-fecha/roteiro.json edicoes/minha-edicao/   # depois edite
3

Valide as regras do formato

Sem gosto, só regra. Reprova: ordem dos blocos errada, menos de 2 ou mais de 5 peças, índice diferente do número de peças, algarismo ou exclamação na fala (escreva os números por extenso), fonte que não existe em fontes, palavra de destaque_fala ou de gatilho que não está na fala, número na tela sem fonte, silêncio antes da máxima fora de 0,5–0,9 s. Gancho: gancho.tipo fora da lista, gancho de lista/"você sabia"/"eu fiz", manchete do quadro 0 com mais de ~6 palavras, sem caixa alta ou sem a palavra quente, sem objeto com dano, prova depois do 3º bloco. Isca: pergunta sem "?", opções que não são uma palavra em caixa alta, opção fora da fala do CTA ou não plantada antes, lado do Nei não dito antes da pergunta, entregável, ou CTA prometendo entrega ("te mando", "eu envio", "comenta X que…"). Roteiro no formato antigo (palavra + entregável, sem gancho) passa só com aviso de LEGADO.

python3 rtexjp.py checar edicoes/minha-edicao
4

Poses do avatar opcional

As 11 poses do Nei (camiseta azul-aço) já vêm em motor/avatar/: susto, surpreso, duvida, queixo, apontando, olha, explica, polegar, bracos, segurando, mostrando. Rode só se trocou o personagem: a foto (RTEXJP_AVATAR_REF) e a descrição de traços e roupa (RTEXJP_AVATAR_DESC, em inglês, que vai no pedido ao flux2-klein). Passe nomes para refazer só essas. Olhe cada pose antes de seguir: o fundo verde é recortado sozinho, mas mão torta ou fundo escuro pedem outra tentativa.

python3 motor/gerar_avatar.py              # todas
python3 motor/gerar_avatar.py susto duvida  # só essas
5

Desenhos-herói e print da prova opcional

Cada batida do roteiro mostra um objeto ilustrado grande entre a manchete e o avatar, no mesmo estilo flat. Eles ficam numa biblioteca reaproveitável, motor/assets/objetos/<nome>.png, com o pedido e a seed em indice.json. Já vêm 18 (terminal quebrado, mapa com pinos, mapa rasgado, lupa sobre arquivos, balão de explicação, dominós, alerta de custo, pasta, chave, cadeado, torneira com cadeado, computador de mesa, HD guardado, iceberg, etiqueta de preço, medidor, balança e carteira vazia). Para um novo, descreva o objeto em inglês; se sair torto ou manchado, troque a seed. A prova usa um print real da página da fonte, guardado em edicoes/<id>/prova/ e citado no campo print da batida.

python3 motor/gerar_objeto.py foguete "a small blue rocket taking off" 11
python3 motor/gerar_objeto.py --lista
node motor/capturar_prova.mjs https://github.com/dono/repo edicoes/minha-edicao/prova/pagina.png
node motor/capturar_prova.mjs https://github.com/dono/repo edicoes/minha-edicao/prova/estrelas.png --clip 1130,180,130,44
6

Voz por bloco + tempo de cada palavra

Um áudio por bloco com a voz do Nei; o Whisper marca cada palavra em build/tempos.json. Passe nomes de bloco para refazer só esses. O Whisper roda como servidor do inemavox (whisper_daemon.py, com o Python de CS_WHISPER_PY); se ele não subir, o motor usa o transcrever_v1.py do inemavox com esse mesmo Python. O log fica em ~/.cache/whisper_daemon.log.

python3 rtexjp.py voz edicoes/minha-edicao            # todos os blocos
python3 rtexjp.py voz edicoes/minha-edicao p2 ressalva  # só esses
7

Monte a cena e confira quadros soltos

cena grava build/cena.json. Antes do render completo, tire alguns quadros (em segundos) para olhar.

python3 rtexjp.py cena edicoes/minha-edicao
node motor/render.mjs edicoes/minha-edicao/build --quadros 0,10,20   # -> edicoes/minha-edicao/quadros/
8

Render 1080×1920 a 30 fps

O Playwright fotografa o palco quadro a quadro e o ffmpeg junta em build/video.mp4 (mudo).

python3 rtexjp.py render edicoes/minha-edicao
9

Mixagem e QA

Voz + trilha baixa (que para no silêncio da máxima), volume final em −14 LUFS. A trilha que vem em motor/assets/trilha.mp3 é a cama dos reels do Nei: para publicar os seus, aponte RTEXJP_TRILHA para uma música cuja licença você conheça; depois o QA grava qa.md, build/qa.json e contact.jpg. Critério que falhar aparece com ❌ no qa.md e o comando termina com um erro do Python (CalledProcessError): é o sinal de QA reprovado, não um bug.

python3 rtexjp.py mix edicoes/minha-edicao   # -> final.mp4
python3 rtexjp.py qa  edicoes/minha-edicao   # -> qa.md, contact.jpg
10

Ou tudo de uma vez

Roda checar → voz → cena → render → mix → qa. Para se o checar reprovar.

python3 rtexjp.py tudo edicoes/minha-edicao
11

Olhe antes de publicar você

Abra o contact.jpg e assista ao vídeo. Título, descrição (terminando na pergunta) e comentário fixado (com o link do repositório e a fonte, parados, sem virar recompensa) ficam no bloco publicar do roteiro. A publicação fica fora deste repositório.

O roteiro.json

O formato do roteiro, em uma tela

Um objeto com id, versao, titulo, gancho, isca, fontes, a lista blocos e o bloco publicar. Trecho real do 1º exemplo, encurtado (as linhas // não são JSON válido; o arquivo completo está em edicoes/2026-10-28-china-fecha/roteiro.json):

{
  "id": "2026-10-28-china-fecha", "versao": "rtexjp/3",
  "gancho": { "tipo": "perda", "objeto": "torneira cromada fechada com cadeado vermelho..." },
  "isca": { "tipo": "opiniao", "pergunta": "Se a torneira fechar, você paga ou roda local?",
            "opcoes": ["PAGO", "LOCAL"], "lado": "Eu já rodo a minha aqui em casa" },
  "fontes": [ { "id": "mofcom", "valor": "pela 1ª vez, modelos grandes de IA na lista de exportação controlada",
               "linha": "Recode China AI · 21/10/2026 · sobre o rascunho de 16/10" } ],
  "blocos": [
    { "id": "tese", "tipo": "tese", "pose": "susto",
      "fala": "E se a China fechar a torneira da IA grátis? O modelo barato que você usa hoje pode sumir.",
      "tela": { "texto": "A CHINA FECHA A TORNEIRA?", "destaque": "FECHA" },
      "cena": { "comp": "quadro", "params": { "beats": [
        { "manchete": ["A CHINA", "FECHA A", "TORNEIRA?"], "destaque": "FECHA A",
          "objeto": "torneira_fechada", "carimbo": "LICENÇA", "pose": "susto" },
        { "em": "sumir", "manchete": ["PODE", "SUMIR"], "objeto": "carteira_vazia", ... } ] } } },
    // ... autoridade (prova com print), tese (problema + opções), virada, metodo ×3, ressalva ...
    { "id": "maxima", "tipo": "maxima", "silencio_antes_s": 0.8, "cena": { "comp": "maxima", ... },
      "fala": "IA grátis nunca foi sua. Era emprestada. Sua é a que roda na sua máquina." },
    { "id": "cta", "tipo": "cta", "hold_s": 7.5, "cena": { "comp": "opiniao", "params": { "digita": "LOCAL" } },
      "fala": "Eu já rodo a minha aqui em casa. E você, se a torneira fechar: paga ou roda local? Comenta PAGO ou LOCAL." }
  ],
  "publicar": { "titulo": "...", "descricao": "... termina na pergunta?", "comentario_fixado": "fonte + pergunta" }
}

Campos de cada bloco

tipo (ordem acima) · fala (por extenso, sem algarismo) · fala_tts (opcional, grafia para o TTS pronunciar certo) · tela (texto grande e a palavra em destaque) · cena.comp + cena.params (o que o palco desenha; params.gatilhos liga uma mudança de cena a uma palavra da fala) · pose do avatar · destaque_fala (palavras coloridas na legenda) · fonte (id em fontes) · rotulo e n (número da peça). Só na maxima: silencio_antes_s (0,5–0,9). Só no cta: hold_s, quanto o cartão fica depois da última palavra (5–9 s; com a fala, o cartão inteiro dá ~10 s). No topo: gancho.tipo (contrario, perda, estatistica, historia) e gancho.objeto; isca com tipo: "opiniao", pergunta, opcoes e lado.

Componentes do palco (cena.comp)

Formato atual: gancho (quadro 0 com objeto danificado), contador (aceita decimais), duas (problema + as opções da isca), indice, mapa, explica, impacto, ressalva, flash, opiniao (cartão da pergunta). Da 1ª edição, ainda no palco: titulo, frase, pasta, repo, carro, equipe, cta (legado). O mascote robô é desenhado pelo próprio palco, ao lado do avatar, e reage à cena (interrogação, alerta, visto). Poses: bracos, queixo, apontando, segurando, surpreso, mostrando. Os parâmetros de cada componente estão nos exemplos edicoes/2026-10-28-china-fecha/roteiro.json e edicoes/2026-10-28-paga-200/roteiro.json.

Exemplos reais

Dois vídeos feitos com o motor

Um tema em duas partes: e se a China parar de entregar IA grátis e a IA paga subir de US$ 200 para US$ 5 mil? O 1º vídeo fica com o lado da China; o 2º, com o preço. Os dois seguem o formato atual (azul-marinho, visual v1.2, gancho, prova com print real da fonte, ressalva honesta e pergunta de opinião). Os números são tratados como cenário: o rascunho chinês ainda não é lei e os US$ 5 mil são estimativa, e cada vídeo diz isso na parte honesta.

1º vídeo · "E se a China fechar a torneira da IA grátis?" gancho de perda

A prova é o rascunho de controle de exportação publicado pela China em 16/10/2026: pela primeira vez, modelos grandes de IA entram na lista do que só sai do país com licença. Três passos (baixe, rode, separe) e a pergunta PAGO ou LOCAL. Arquivos em edicoes/2026-10-28-china-fecha/ (o bloco publicar do roteiro traz título, descrição e comentário fixado).

O que o QA mediu

Duração79,7 s
Resolução1080×1920 · 30 fps
Ritmo da fala174 palavras/min
Volume−14,0 LUFS
Trocas visuais24,8 por minuto
Manchete / menor texto≥ 98 px / ≥ 30 px
Área ocupada / avatar≥ 55 % / 43 % da altura
Contraste do texto≥ 5,2:1
Prova (fato com fonte)aos 6,6 s
Opções da isca antes do CTA47,7 s antes
CTA sem promessa de entregasim
Silêncio antes da máxima0,85 s
Cartão final (fala + 7,5 s segurado)14,6 s

O player toca o edicoes/2026-10-28-china-fecha/final.mp4 do repositório. Baixar o final.mp4 (21 MB)

Quadro a quadro (1º vídeo)

Gancho: "A China fecha a torneira?" com FECHA A em amarelo, uma torneira com cadeado vermelho e carimbo LICENÇA, chips DeepSeek, Qwen e Kimi com interrogação e o avatar assustado com as mãos no rosto
Gancho de perda: a torneira com cadeado, o carimbo e os modelos com interrogação aparecem em menos de 2 s.
Prova: "Pela 1ª vez" e o recorte real do artigo com o trecho sobre licença de exportação, com a fonte escrita embaixo
Prova aos 6,6 s: o recorte da fonte com o trecho "pela primeira vez… licença".
Em papel azul-gelo: "Pago ou local?", uma etiqueta de preço com seta vermelha e um computador de mesa, com as opções PAGO e LOCAL em amarelo
O problema com absolvição; as opções da pergunta final já aparecem.
Peça 01: "Baixe hoje", um HD externo recebendo uma seta azul dentro de uma caixa de aço
Peça 01: baixe hoje o que você usa.
Peça 02 em papel azul-gelo: "Rode na sua máquina", um computador de mesa com monitor
Peça 02: rode um modelo na sua máquina.
Ressalva: "Ainda é rascunho", uma lupa sobre documentos e o avatar explicando
A ressalva honesta: ainda é rascunho, e o modelo local não iguala o topo.
Máxima: "IA grátis nunca foi sua.", a torneira fechada e o avatar de braços cruzados
A máxima, depois de um silêncio de 0,85 s.
Cartão final: "E você: pago ou local?" com os botões PAGO e LOCAL em amarelo
O CTA de opinião: pergunta, opções e a caixa digitando uma delas.

A folha de contato do 1º vídeo

Folha de contato do 1º vídeo: um quadro a cada 2,5 segundos, do gancho ao cartão final

2º vídeo · "Você paga 200 dólares. A IA custa até 5 mil." gancho de número

A prova é uma análise interna do Cursor, publicada pela Forbes e resumida pelo the-decoder em 07/03/2026: o plano de US$ 200 do Claude Code pode consumir até US$ 5 mil de computação por mês. Três passos (meça, separe, plano B) e a pergunta PAGA ou SAI. Arquivos em edicoes/2026-10-28-paga-200/.

O que o QA mediu

Duração74,2 s
Resolução1080×1920 · 30 fps
Ritmo da fala175 palavras/min
Volume−14,0 LUFS
Trocas visuais22,7 por minuto
Manchete / menor texto≥ 96 px / ≥ 30 px
Área ocupada / avatar≥ 56 % / 43 % da altura
Contraste do texto≥ 5,2:1
Prova (número com fonte)aos 6,0 s
Opções da isca antes do CTA59,7 s antes
CTA sem promessa de entregasim
Silêncio antes da máxima0,84 s
Cartão final (fala + 7,5 s segurado)14,6 s

O player toca o edicoes/2026-10-28-paga-200/final.mp4 do repositório. Baixar o final.mp4 (20 MB)

Quadro a quadro (2º vídeo)

Gancho: "Paga 200. Custa até 5 mil." com 5 MIL em amarelo, um iceberg com a parte escondida enorme, carimbo SUBSIDIADO e o avatar assustado
Gancho de número: o iceberg mostra o custo que fica escondido.
Prova: "O custo escondido" e o recorte real da manchete do the-decoder sobre o plano de 200 dólares que consome até 5 mil, com a fonte embaixo
Prova aos 6 s: o recorte real da manchete, com a fonte escrita.
Em papel azul-gelo: "Sem a China, quem segura?" e a torneira com cadeado
O problema liga os dois vídeos: sem a alternativa chinesa barata, quem segura o preço?
Índice: "3 passos agora" com as pílulas 01 Meça, 02 Separe, 03 Plano B
A virada: o índice dos três passos.
Peça 02 em papel azul-gelo: "O topo só no difícil", uma balança com moedas de um lado e um chip do outro
Peça 02: o modelo caro só no difícil.
Peça 03: "Antes do aumento", um HD guardado numa caixa de aço
Peça 03: o plano B pronto antes do aumento.
Máxima: "Paga o preço que os outros escolhem." e uma etiqueta de preço com seta vermelha subindo
A máxima, escrita igual à fala.
Cartão final: "E você: paga ou sai?" com os botões PAGA e SAI em amarelo e a caixa de comentário
O CTA de opinião, sem promessa de entrega.

A folha de contato do 2º vídeo

Folha de contato do 2º vídeo: um quadro a cada 2,5 segundos, do gancho ao cartão final
Estado

Onde o projeto está

O que existe hoje no repositório.

v1.0.0
Motor completoPipeline checar · voz · cena · render · mix · qa, palco com os componentes de cena, seis poses do avatar e o QA automático.
v1.1.0
Azul-marinho, gancho e isca de opiniãoPaleta marinho + azul-aço com amarelo como única cor quente, avatar com camiseta azul-aço, regras de gancho no checar, isca de opinião sem entregável, caminhos por variável de ambiente.
v1.2.0
Visual novoAvatar grande embaixo em 11 poses, desenho-herói por batida (biblioteca motor/assets/objetos/), print real na prova, manchete Sora centrada, legenda karaokê, papel azul-gelo alternando com o marinho, grão e holofote, e o portão de beleza no QA.
exemplos
"E se a China fechar a torneira da IA grátis?" e "Você paga 200 dólares. A IA custa até 5 mil."79,7 s e 74,2 s, aprovados em todos os critérios do QA e pela revisão independente (notas 7 e 7,5).
Regra antes de publicar: o CTA pede opinião e não promete nada a quem comentar. Link e fonte ficam parados no comentário fixado e na descrição.