ContentForge
Pipeline autónomo de vídeo short-form que vai de tendência → render → publicação (estilo Opus/Vizard). Núcleo de render em produção; camada de gestão e analytics por cima.
// estado núcleo de render em produção · auto-publicação em staging (pré go-live)
// Pipeline tendência → clip
Tendência
detetação
e ingestão
faster-whisper
Análise
ContentScorer
· transcrição
ffmpeg PT-aware
Render
multi-clip HD · face-zoom
karaoke · emojis
orchestrator
Publicação
multi-conta · analytics
(staging)
⚙
Arquitetura polyglot: o núcleo de render é um monólito Python 3.11 (decisão pragmática vs hexagonal por RPC); por cima corre a camada de gestão em Fastify/TypeScript + dashboard Angular 18.
// Núcleo de render (produção)
Um monólito Python 3.11 (run.py) que transcreve, pontua e renderiza - coeso e testável. Escolhido por pragmatismo depois de a via hexagonal por RPC partir o e2e.
Transcrição
faster-whisper converte áudio em texto com timestamps.
ContentScorer
Pontua segmentos para escolher os melhores momentos a recortar.
Render ffmpeg PT-aware
Multi-clip em HD com face-zoom, legendas karaoke e emojis contextuais.
# núcleo de render — produção
segments = whisper.transcribe(audio) # faster-whisper
clips = scorer.rank(segments, k=K) # ContentScorer
for clip in clips:
(ffmpeg(clip)
.face_zoom() # enquadra o rosto
.captions(style="karaoke", lang="pt")
.emojis(clip.context) # contextuais
.export(hd=True)) # multi-clip HD
// Camada de inteligência
🎲
Hooks por Thompson sampling
Multi-armed bandit sobre padrões de hook: aprende o que converte e equilibra exploração vs exploração.
✍
Copywriter de 5 variantes
Gera várias hipóteses de copy por clip para testar ângulos diferentes.
🔌
LLM swappable
Gateway OpenRouter com LLM_MODEL por env - o modelo é infraestrutura trocável, não uma dependência rígida.
💰
Custo controlado
~0,012 USD por clip, com o gateway a escolher o modelo mais barato que cumpre a tarefa.
~$0,012
custo de LLM por clip
44/44
testes pytest + vitest
5
variantes de copy por clip
HD
render multi-clip PT-aware
// Camada de gestão
🧮
Orchestrator Fastify/TS
Filas com BullMQ e queries type-safe com Kysely/PostgreSQL; Redis no suporte das filas.
💾
BFF + presign S3/MinIO
Backend-for-frontend que entrega URLs pré-assinados para upload/download direto ao object storage.
📊
Dashboard Angular 18
Multi-conta e multi-plataforma, com analytics reais: views, likes, top performers e trends.
🔗
Integração de publicação
Camada de publicação via Meta Graph API - em staging, ainda antes do go-live.
// Entrega (Gitea Actions, self-hosted)
Cada push passa por um quality gate em catraca e, em staging, um deploy que se protege a si próprio: smoke test e, se algo degrada, rollback automático com aviso.
Promote dev→main
Com git commit-tree (árvore exata, zero conflitos) e mirror filtrado para GitHub.
Disciplina de CI
Apanhei um teste mascarado por «|| true»; build fresco, tsc limpo e 44/44 no vitest.
$ act deploy:staging
✓ quality gate ratchet · gitleaks · semgrep
✓ build images python · ts · angular
✓ secrets ← vaultwarden
✓ compose up
✓ smoke test 200 OK
✗ health degraded → rollback (auto)
→ ntfy "staging revertido"
✓ mirror → github (filtrado)
// detalhes
// núcleoPython 3.11 · faster-whisper · ffmpeg
// gestãoFastify · BullMQ · Kysely/Postgres · Redis
// dashboardAngular 18 · multi-conta
// storageMinIO (S3) · Docker
// LLMOpenRouter (swappable) · ~0,012 USD/clip
// CI/CDGitea Actions · gate + smoke + rollback
// testespytest + vitest (44/44)
// papelAutoria completa - pipeline, gestão e entrega