Los 5 mayores influencers de finanzas de Brasil, transcritos, verificados y resumidos en un video con números grandes, la fuente en pantalla y Nei comentando.

finviral es un sistema que hace, solo, videos cortos (9:16) sobre lo que dijeron los mayores influencers de finanzas de Brasil en sus videos. Ve los videos de YouTube mediante transcripción, separa los números, los hechos y las polémicas, y arma un video con números grandes animados, la fuente de cada dato en pantalla y Nei comentando (avatar). Sirve para quien quiere seguir el mercado en un minuto, sin recomendación de inversión. Funciona en una computadora con GPU, con la suscripción de Claude Code y de HeyGen. Los sábados y domingos también sale el video largo 16:9 "La semana explicada" (5 a 7 minutos), con un capítulo por influencer. Todo se publica solo en el canal INEMA TIA de YouTube y se envía a Telegram.
Todas las madrugadas finviral lee lo que publicaron los canales, verifica cada número contra la transcripción y entrega un video listo para que Nei lo apruebe. No es recomendación de inversión: el video relata lo que dijo cada uno, siempre con la fuente.
Cada número debe estar en la transcripción, con el fragmento literal. Canal, fecha y título aparecen en pantalla en cada escena. El video dice que no es recomendación de inversión.
Contadores, gráfico, sello de polémica, subtítulos palabra por palabra y el avatar de Nei en la esquina, renderizados cuadro a cuadro.
Guion con claude -p (suscripción, sin API), transcripción local con Whisper y avatar por el estudio de HeyGen. La oferta de cambio de plan de HeyGen siempre se rechaza.
Seis etapas encadenadas por auto/rodar.sh. Si la verificación reprueba dos veces, el video no se hace.
Lista los videos de los canales de canais.json (solo metadatos, yt-dlp), descarga el audio y transcribe localmente (inemavox, Whisper large-v3).
claude -p lee las transcripciones y graba base.md (cada número, quién lo dijo, el video y el fragmento literal), roteiro.json (diálogos y visuales) y legenda.txt (texto para aprobación).
auto/checar.py comprueba que cada fragmento esté en la transcripción, que los números del diálogo estén escritos con palabras, que las imágenes existan, que haya CTA y el aviso "no es recomendación". Si reprueba: vuelve una vez para corrección.
HeyGen genera el avatar de Nei por el estudio (suscripción, sin API de generación). motor/retempo.py alinea el arte con el habla. Si HeyGen falla, sale la versión con la foto y la voz de Nei (Chatterbox).
motor/palco.html se renderiza cuadro a cuadro con Playwright, con la fuente en cada escena. El avatar queda en la esquina, con música de fondo.
auto/publicar.sh publica en YouTube INEMA TIA (lives2) con yt-pubx y siempre lo envía al bot v3, con el enlace. Si el avatar falló, la versión con foto solo va al bot.
Timers de systemd de usuario. Un día flojo no se convierte en video: el bot recibe "sin pauta".
diario · 40–60 sLo que publicaron ayer y anteayer: una historia principal y como máximo uno o dos números más.semanal · 90 s a 2 minBalance de la semana: el número más grande, la polémica y un número de cada influencer relevante. Después, el largo 16:9 "La semana explicada".domingo · ~90 sLo que esperan para la próxima semana: apuestas, fechas y riesgos que señalaron, siempre atribuidos. Después, el largo 16:9 explicado.El corto da el marcador; el largo 16:9 lo explica. De 5 a 7 minutos, un capítulo por influencer: lo que dijo (cita literal), lo que significa, el contexto y los números con fuente. El corto avisa al final que la explicación completa está en INEMA TIA.
Comparación, línea de tiempo, frase tachada y corregida, listas y contadores del explicavideo v2, más piezas de finanzas: ficha, número gigante, cita literal, gráfico y sello.
auto/checar.py --longo: cada hecho con cita literal, números hablados en letras y cada animación atada a una palabra dicha.
El estudio de HeyGen acepta hasta 4.500 caracteres por video: el guion va en bloques y se une en un solo avatar.
# generar el largo de una edición ya aprobada por checar --longo auto/longo.sh edicoes/2026-10-10-semanal-longo "semanal · LONGO · 10/10/2026"
Una computadora con GPU, Claude Code con sesión iniciada en la suscripción y el perfil de HeyGen de explicavideos.
yt-dlp para listar y descargar, inemavox (~/projetos/inemavox) para transcribir y cardshorts para la voz Chatterbox nei.
Node con Playwright (motor/node_modules es un enlace al de eventosextremospub) y ffmpeg.
claude (Claude Code con sesión iniciada en la suscripción), Xvfb :99 con el perfil de HeyGen de explicavideos y el bot v3 (refazvideo/ferramentas/enviar_bot_v3.mjs).
Comandos reales del repositorio, ejecutados en la raíz del proyecto.
La lista está en canais.json. Hoy son los 5 primeros del ranking Anbima FInfluence (10.ª edición): Bruno Perini, Economista Sincero, Ricardo Amorim, O Primo Rico y Os Economistas. Para pausar a alguien sin borrarlo, usa "ativo": false.
{"handle": "@BrunoPerini", "nome": "Bruno Perini", "rk": "Nº 1 · ANBIMA", "ativo": true}
Si aparece destacado otro nombre consolidado y confiable, el sistema sugiere incluirlo en el mensaje del bot. Un nombre emergente nunca entra, y la inclusión solo ocurre con el visto bueno de Nei.
Copia las unidades de systemd de usuario y activa los tres timers.
cp systemd/finviral-* ~/.config/systemd/user/ && systemctl --user daemon-reload systemctl --user enable --now finviral-diario.timer finviral-semanal.timer finviral-domingo.timer systemctl --user list-timers 'finviral-*'
Ejecuta una ronda sin HeyGen y sin enviar al bot.
SEM_AVATAR=1 SEM_BOT=1 auto/rodar.sh semanal # prueba: sin HeyGen y sin enviar
Pasa el modo y la fecha; para omitir, agrega la línea en auto/pular.txt.
auto/rodar.sh diario 2026-10-09 # ronda de un día específico echo "2026-10-17 diario" >> auto/pular.txt # omitir una ronda
Para una edición como edicoes/2026-10-09-semana: primero la versión con la voz de Nei y la foto, después la versión con el avatar.
E=edicoes/<data>-<slug> python3 motor/narrar.py $E 1.12 && python3 motor/gerar_cena.py $E && motor/montar.sh $E $E/video.mp4 # voz de Nei + foto motor/avatar_heygen.sh $E FINVIRAL-<titulo> && python3 motor/gerar_cena.py $E --avatar && motor/compor_avatar.sh $E $E/video.mp4 # avatar
El video llega al bot v3 con el texto para aprobación. Nei aprueba y publica; nada sale al aire solo.
El portón de verificación y el guion siguen estas reglas.
Fecha dd/mm/aaaa y el número más fuerte desde el primer cuadro.
Solo entra un número que esté en la transcripción, con canal, fecha y título en pantalla. No es recomendación de inversión.
Elecciones y política: el video relata lo que dijo cada uno, siempre atribuido.
Habla en el tono de Nei ("tu"), con números y años escritos con palabras.
Gancho de comentario y CTA de gestión de agentes de IA en inema.club.
Solo por el estudio de la suscripción. La oferta de cambio de plan siempre se rechaza.
Dos cuadros del video de la edición edicoes/2026-10-09-semana, con el avatar de Nei en la esquina.

