Los 10 mayores canales brasileños de contabilidad e impuestos de YouTube (Reforma Tributaria, MEI, Simples, nuevas reglas y obligaciones fiscales), transcritos, verificados y resumidos en un video con la fuente en pantalla y Nei comentando.

contaviral es un sistema que hace, solo, videos verticales (9:16) de 2 a 3 minutos con el resumen de lo que dijeron los 10 mayores canales brasileños de contabilidad e impuestos de YouTube: nuevas leyes y ordenanzas, la Reforma Tributaria brasileña (IBS y CBS, los nuevos impuestos sobre el consumo, e Imposto Seletivo, el impuesto selectivo) y su impacto en las empresas, MEI (régimen brasileño de microemprendedor individual) y Simples Nacional (régimen tributario simplificado para pequeñas empresas), obligaciones fiscales, IA en los despachos contables. "Mira" los videos a través de la transcripción, separa los hechos y los números con la fuente de cada uno y arma un video con números grandes, sellos (MUDOU A REGRA (cambió la regla), PROPOSTA (propuesta), PRAZO (plazo), ALERTA) y Nei (Nei Maldaner, creador de INEMA) comentando en avatar. Una propuesta se trata como propuesta, la política no tiene bando y nada se convierte en consejo: no sustituye la orientación de un contador. Sirve para contadores y empresarios que quieren saber, en pocos minutos, de qué están hablando los principales canales. Funciona en una computadora con GPU, con la suscripción de Claude Code y de HeyGen.
contaviral lee lo que publicaron los canales, verifica cada hecho contra la transcripción y publica un video listo. El video cuenta lo que dijo cada canal, siempre con la fuente, sin darle consejos a nadie.
Cada hecho o número tiene que estar en la transcripción, con el fragmento literal. Canal, fecha y título aparecen en pantalla. Ley, ordenanza, alícuota, plazo y valor solo entran tal como los dijo el canal.
Un proyecto, una propuesta o una reglamentación pendiente aparece como PROPOSTA (propuesta), nunca como regla vigente. Todo atribuido a quien lo dijo; nada de "haz esto" para tu caso: cada caso es distinto, habla con tu contador.
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.
Etapas encadenadas por auto/rodar.sh. Si la verificación reprueba dos veces, el video no se hace. Un día flojo tampoco se convierte en video: el bot recibe "sin tema".
Lista los videos de los canales de canais.json (solo metadatos, yt-dlp), elige primero el más visto de cada canal (hasta 3 por canal, sin repetir videos ya usados y saltando videos/lives de más de 75 min), toma el subtítulo de YouTube y, si no lo hay, descarga el audio y lo transcribe localmente (inemavox, Whisper large-v3).
claude -p lee las transcripciones y graba base.md (cada hecho, quién lo dijo, el video y el fragmento literal), roteiro.json (textos hablados y visuales) y legenda.txt.
auto/checar.py verifica los fragmentos en la transcripción, los números escritos en letras en el habla, al menos 5 temas, el aviso "No sustituye la orientación de un contador." y el CTA de inema.club. Si reprueba: vuelve una vez para corrección.
HeyGen genera el avatar de Nei por el estudio (suscripción). Si falla, sale la versión con la foto y la voz de Nei, que solo va al bot.
motor/palco.html se renderiza cuadro a cuadro con Playwright, con contadores, sellos y la fuente en pantalla. La imagen es la miniatura del video del canal.
En la agenda, el video listo va primero al bot v3 como vista previa; a las 13:00 auto/publicar-pendente.sh lo publica en YouTube INEMA TIA (lives2) mediante yt-pubx y manda el enlace al bot.
Cada ronda es un modo de auto/rodar.sh. La agenda (timers en systemd/) está activada: la generación corre a las 10:00 y la publicación a las 13:00, fuera de los horarios de los proyectos hermanos que usan la misma GPU y el mismo HeyGen.
diarioEl resumen de los diez, 2 a 3 minutos: los videos de ayer y anteayer todavía no usados, con al menos cinco temas (uno por canal siempre que se pueda). Si menos de cinco canales publicaron en esos dos días, la ventana se amplía a cinco días.semanalBalance de la semana (los 7 días hasta ayer), 2 a 3 minutos. Después, el largo 16:9 "La semana explicada" (5,5 a 7 minutos).domingoLo que los canales señalan para la próxima semana (plazos, votaciones, reglamentaciones pendientes, etapas de la Reforma), 2 a 3 minutos. Después, el largo 16:9 explicado (5,5 a 7 minutos).Elegidos el 27/10/2026 a partir de la lista de Nei, con medición propia (yt-dlp, mediana de vistas de los últimos 15 videos, canal activo y hablado). Quedaron fuera los canales inactivos, de oposiciones, de política o que venden "paga menos impuestos". Detalles en pesquisa/canais.md (en portugués).
Central do Microempreendedor, Sua Contadora, Gerando Empreendedores y Tenha Renda: límite del MEI, plazos, Simples Nacional y lo que la Receita Federal (la agencia tributaria de Brasil) está cambiando.
Flávia Holanda Gaeta (tesis e IBS/CBS), el profesor Fellipe Guerra (Reforma y Simples) y Paulo Henrique Pêgas (serie "3MIN com Pêgas", en el canal IPECRJ TV).
Econet Editora (legislación fiscal y laboral), Contabilidade Facilitada (rutina del contador) y Receita Federal (fuente oficial, no influencer).
contaviral no es una app aislada: usa otras herramientas del ecosistema INEMA, todas en ~/projetos/, en una computadora con GPU. El repositorio queda en ~/projetos/contaviral (los timers de systemd y los enlaces apuntan allí).
yt-dlp para listar y descargar. inemavox (~/projetos/inemavox, con baixar_v1.py y transcrever_v1.py) es el kit local de descarga y transcripción con Whisper.
Node con Playwright y ffmpeg. motor/node_modules es un enlace a ~/projetos/eventosextremospub/motor/node_modules; sin ese proyecto, ejecuta npm install playwright en motor/.
claude (Claude Code con sesión iniciada en la suscripción, llamado como claude -p). El largo de fin de semana usa el motor ~/projetos/explicavideos/engine/v2.
El estudio de HeyGen abierto en un navegador en pantalla virtual (Xvfb :99), con el perfil ya logueado del proyecto explicavideos. Sin él, la ronda sale con la foto y la voz clonada de Nei (Chatterbox, voz nei, mediante el proyecto ~/projetos/cardshorts).
yt-pubx (~/projetos/yt-pubx), la herramienta que publica en YouTube; lives2 es su nombre para el canal INEMA TIA.
El bot v3 es el bot de Telegram de Nei que recibe cada video y aviso, mediante el script ~/projetos/refazvideo/ferramentas/enviar_bot_v3.mjs.
Comandos reales del repositorio, ejecutados en la raíz del proyecto.
contaviral queda en ~/projetos/contaviral y usa proyectos públicos de INEMA a su lado. También necesita yt-dlp, ffmpeg, node y claude con sesión iniciada en la suscripción.
cd ~/projetos git clone https://github.com/inematds/contaviral for r in inemavox yt-pubx cardshorts explicavideos refazvideo eventosextremospub; do git clone https://github.com/inematds/$r done cd ~/projetos/contaviral/motor && npm install playwright && npx playwright install chromium # render: Playwright + Chromium (el enlace motor/node_modules no viene en el clon)
Cada hermano tiene su propio README con la configuración: las credenciales del canal en yt-pubx, el bot de Telegram en refazvideo, el perfil del estudio HeyGen y la pantalla virtual en explicavideos, la transcripción en inemavox y la voz en cardshorts. La prueba del paso 3 ya necesita inemavox, cardshorts y refazvideo; la publicación necesita todos. Para la prueba con foto, cardshorts debe estar instalado con la voz nei (Chatterbox, en la GPU), como en su README.
La lista está en canais.json. Para pausar un canal sin borrarlo, usa "ativo": false. El handle es la ruta del canal en YouTube, rk es la etiqueta que aparece en pantalla y lang es el idioma del canal para Whisper (por defecto pt; los diez están en portugués).
{"handle": "channel/UCTRVlQTzYPK88F8saQL9TJQ", "nome": "Fellipe Guerra", "rk": "REFORMA TRIBUTÁRIA · CFC", "lang": "pt", "ativo": true}
Si otro canal consolidado de contabilidad o impuestos se destaca, el sistema sugiere incluirlo en el mensaje del bot (nunca un canal emergente ni quien vende cursos o "paga menos impuestos"). Solo entra con el visto bueno de Nei.
Ejecuta una ronda sin HeyGen, sin el largo y sin enviar nada al bot ni a YouTube. Igual usa claude -p (cuota de la suscripción), descarga el audio y ocupa la GPU con Whisper. La terminal queda en silencio: la salida va al log de la edición.
SEM_AVATAR=1 SEM_BOT=1 SEM_LONGO=1 auto/rodar.sh diario # prueba: sin HeyGen, sin largo y sin enviar tail -f edicoes/$(date +%F)-diario/rodada.log # seguir
En la carpeta edicoes/AAAA-MM-DD-diario/ quedan base.md, roteiro.json, legenda.txt, checar.log y el video listo (video.mp4).
Pasa el modo y la fecha. La ronda completa genera el avatar, publica en lives2 y manda al bot. Ejecútala con systemd-run --user (con PATH incluyendo ~/.npm-global/bin y DISPLAY=:99), para no depender de la terminal abierta.
auto/rodar.sh diario 2026-10-27 # ronda completa (avatar + lives2 + bot) SEM_AVATAR=1 auto/rodar.sh diario 2026-10-27 # versión con foto, solo para el bot REUSAR_ROTEIRO=1 auto/rodar.sh diario 2026-10-27 # rehace avatar/video/publicación con el guion ya aprobado VALIDAR=1 auto/rodar.sh diario 2026-10-27 # edición de prueba (carpeta -validacao), nunca va a YouTube # lo mismo, sin depender de la terminal abierta: systemd-run --user --unit contaviral-mao --setenv=PATH=$HOME/.local/bin:$HOME/.npm-global/bin:/usr/local/bin:/usr/bin:/bin --setenv=DISPLAY=:99 /bin/bash ~/projetos/contaviral/auto/rodar.sh diario 2026-10-27
Una ronda manual publica en lives2 en el momento, justo después del avatar. Solo la agenda (timers) espera a las 13:00. Avatar (estudio HeyGen de Nei), el canal INEMA TIA y el bot son cuentas del dueño: quien clona usa sus propias cuentas, configuradas en los proyectos hermanos.
Agrega la fecha y el modo en auto/pular.txt.
echo "2026-11-01 semanal" >> auto/pular.txt # saltar una ronda
Generación a las 10:00 (diario de lunes a viernes, semanal el sábado, domingo el domingo) y publicación a las 13:00. Si el video queda listo después de las 13:00 (el estudio de HeyGen se comparte con los proyectos hermanos), sale en el horario del día siguiente, o en el momento con auto/publicar-pendente.sh. Copia las unidades de systemd de usuario y activa los cuatro timers. Para retener la publicación de un video que ya fue al bot como vista previa, crea el archivo SEGURAR en la carpeta de la edición.
cp systemd/contaviral-* ~/.config/systemd/user/ && systemctl --user daemon-reload systemctl --user enable --now contaviral-diario.timer contaviral-semanal.timer contaviral-domingo.timer contaviral-publicar.timer systemctl --user list-timers 'contaviral-*' touch edicoes/2026-10-27-diario/SEGURAR # no publica esa edición a las 13:00
En la agenda, el bot v3 recibe la vista previa después de las 10:00 y el enlace de INEMA TIA (lives2) después de las 13:00. Una ronda a mano (paso 4) publica en el momento. Si no hay tema o algo falla, el bot recibe el aviso.
El guion y el portón de verificación siguen estas reglas.
Solo entran hechos que están en la transcripción, con canal, fecha y título en pantalla y el fragmento literal en base.md.
"No sustituye la orientación de un contador." en todo video; el portón reprueba si falta. Cuando el habla dice lo que alguien puede hacer, cierra con "cada caso es distinto: habla con tu contador".
Un proyecto de ley, una propuesta o una reglamentación pendiente aparece como PROPOSTA (propuesta). Ley, ordenanza, alícuota y plazo solo tal como los dijo el canal.
Gobierno, Congreso y elecciones: todo atribuido a quien lo dijo, sin opinión de Nei.
Los cursos, mentorías, despachos o sistemas del influencer no entran, y "paga menos impuestos" no se convierte en titular.
Habla en el tono de Nei, directo al espectador, con los números escritos en letras. Al final, una pregunta para comentar y el CTA de inema.club.