# MEMO - Viral Social Pro
> Arquivo de memoria persistente. Ao iniciar um novo chat, diga: "Leia o arquivo /home/glauko/viral-social/MEMO.md"
> Atualizado em: 2026-03-07 00:40 UTC

---

## Sobre o Projeto
- **Nome:** Viral Social Pro
- **Dono:** Glauko (glaukocarvalho@gmail.com)
- **GitHub:** glaukocarvalho/viral-social
- **URL:** https://viral.chatys.com.br
- **Servidor:** Ubuntu, usuario glauko, nginx + SSL Let's Encrypt

## Stack Tecnica
- **Backend:** Python, FastAPI, SQLAlchemy, SQLite
- **Frontend:** Jinja2 + Tailwind CSS (CDN) + Alpine.js + Chart.js + Lucide Icons
- **Scrapers:** YouTube API, TikTok Creative Center, Apify, ScrapeCreators, yt-dlp
- **Servico:** systemd (viral-social.service), User=glauko, porta 8000
- **Banco:** /home/glauko/viral-social/data/viral_social.db

## APIs Configuradas
- YouTube API Key: CONFIGURADA (gratis, 10K req/dia)
- Apify Token: CONFIGURADO ($5 creditos gratis - TikTok + Instagram)
- ScrapeCreators: NAO CONFIGURADA (precisa $10 - cobertura maxima Instagram)
- Instagram Cookies: NAO CONFIGURADO (precisa login)

## Estrutura de Arquivos
```
/home/glauko/viral-social/
  backend/
    api/routes.py          # Todas as APIs REST
    api/pages.py           # Rotas de paginas HTML
    app.py                 # FastAPI main app
    core/config.py         # Configuracoes (.env)
    database/connection.py # SQLAlchemy + SQLite
    models/
      video.py, creator.py, trend.py, collection.py, idea.py
    services/
      video_service.py, viral_detector.py, discovery.py
      downloader.py, sora_downloader.py, bulk_download.py
      scheduler.py, alerts.py, trend_analyzer.py
      content_calendar.py, creator_service.py
      exporter.py, hashtag_research.py
    scrapers/
      youtube.py, tiktok.py, instagram.py
      apify_scraper.py, scrapecreators.py, tiktok_creative.py
  frontend/templates/
    base.html              # Template base (dark mode, sidebar, mobile nav)
    dashboard.html          # Dashboard principal
    feed.html              # Feed Viral (NOVO)
    discover.html          # Descobrir videos
    scrape.html            # Motor de coleta
    intelligence.html      # Inteligencia Viral (NOVO)
    ideas.html             # Banco de Ideias Kanban (NOVO)
    sounds.html            # Sons & Musicas trending (NOVO)
    trends.html            # Tendencias
    hashtags.html          # Pesquisa de hashtags
    creators.html          # Espiao de criadores
    calendar.html          # Calendario de postagem
    collections.html       # Colecoes
    downloads.html         # Downloads
    scheduler.html         # Automacao
    alerts.html            # Alertas
  .env                     # Chaves de API
  requirements.txt         # Dependencias Python
  data/viral_social.db     # Banco de dados
```

## Historico de Sessoes

### Sessao 1 - 2026-03-06
**O que foi feito:**
1. Autenticacao GitHub CLI (gh auth login)
2. Listagem de repositorios (5 repos encontrados)
3. Analise completa do codigo viral-social
4. Migracao do projeto de /root/ para /home/glauko/ (usuario glauko)
   - Recriou virtualenv, instalou dependencias
   - Atualizou systemd service (User=glauko)
   - Memoria caiu de 1.4GB para 87MB
5. Configuracao de APIs:
   - YouTube API Key configurada
   - Apify Token configurado
6. Teste de descoberta: 106 videos coletados (56 YouTube + 50 TikTok)
7. Bug fix: video_service.py avg_score calculava count() em vez de avg()
8. Redesign COMPLETO da interface:
   - Dark mode com glassmorphism
   - Font Plus Jakarta Sans + icones Lucide
   - Mobile-first com bottom navigation
   - Sidebar recolhivel no desktop
   - Score ring visual
   - Gradientes e animacoes suaves
9. Novas paginas criadas:
   - /feed - Feed Viral com filtros e grid/lista
   - /intelligence - Inteligencia Viral (DNA do conteudo, graficos, comparativo)
   - /ideas - Banco de Ideias (Kanban: Ideia > Roteiro > Producao > Publicado)
   - /sounds - Sons & Musicas trending do TikTok
10. Novas APIs criadas:
    - CRUD completo de Ideas (/api/ideas)
    - Intelligence platform stats (/api/intelligence/platform-stats)
11. Novo modelo: Idea (banco de ideias com status kanban)
12. Navegacao reestruturada em 4 grupos: Principal, Inteligencia, Estrategia, Sistema
13. Modal de preview de video em qualquer pagina (thumbnail + stats + acoes)

**Resultados dos testes:**
- YouTube: 56 videos via API (funcionando)
- TikTok: 50 videos via yt-dlp + Apify (funcionando)
- Instagram: 0 videos (precisa ScrapeCreators ou cookies)
- 36 videos classificados como virais (score 60+)
- TikTok top: 43.6M views (Khaby Lame)

**O que falta implementar (proximas sessoes):**
- Configurar ScrapeCreators ($10) para Instagram funcionar
- Configurar cookies do Instagram (gratis)
- Radar de Nichos (mapa de calor de nichos)
- Relatorio Semanal Automatico
- Exportador de Estrategia (PDF)
- Commitar alteracoes no Git (muitas mudancas pendentes)

### Sessao 2 - 2026-03-07
**O que foi feito (REFATORACAO COMPLETA do sistema de deteccao viral):**

1. **Novo algoritmo Viral Score v2 (Outlier-based)**
   - Arquivo: `backend/services/viral_detector.py` (reescrito)
   - Pesos: Outlier Ratio 35%, View Velocity 25%, Engagement Quality 20%, Share Virality 10%, Growth Acceleration 10%
   - Remove: Absolute Reach (favorecia famosos)
   - Adiciona: Outlier Ratio (views / median do criador)
   - Engagement Quality: comments pesam 3x, shares pesam 5x
   - Resultado: Joao (2K seg, 500K views) = Score 72.6 vs Khaby Lame (160M seg, 10M views) = Score 41.1

2. **Replicability Score (0-100)**
   - Novo metodo `calculate_replicability()` no viral_detector.py
   - Componentes: Tamanho criador inverso 30%, Formato curto 25%, Elementos trending 25%, Timing 20%
   - Criador nano + video curto + hashtag viral + publicado < 24h = score ~95

3. **Creator Baseline Service**
   - Novo: `backend/services/creator_baseline.py`
   - Calcula media/mediana de views por criador (ultimos 30 videos)
   - Cache de 7 dias, atualiza automaticamente
   - Enriquece video_data antes do scoring com dados do criador
   - Novo campo `size_tier`: nano/micro/mid/macro/mega

4. **Growth Tracker**
   - Novo: `backend/services/growth_tracker.py`
   - Snapshots periodicos de metricas (views, likes, comments)
   - Detecta aceleracao/desaceleracao do crescimento
   - Status: exploding, accelerating, decelerating, dying

5. **Novas colunas no banco de dados**
   - Video: outlier_ratio, creator_avg_views, creator_followers, views_per_follower, is_small_creator, replicability_score, growth_snapshots
   - Creator: median_views, size_tier, baseline_updated_at
   - Migracao SQLite aplicada com ALTER TABLE

6. **Discovery Engine v2**
   - Arquivo: `backend/services/discovery.py` (reescrito)
   - YouTube: Rising Stars (videos < 48h com muitas views) + Niche queries + Trending
   - TikTok: Creative Center top videos + Hashtag discovery via Apify + Dynamic trending creators (nao mais lista hardcoded)
   - Instagram: Cross-platform bridge (trends do TikTok no IG) + Apify hashtags
   - Removido: lista hardcoded de 60+ criadores famosos do TikTok

7. **Novos endpoints API**
   - GET /api/opportunities - videos replicaveis (rep_score >= 50, outlier >= 3)
   - GET /api/explosions - explosoes (outlier >= 10)
   - GET /api/videos/{id}/growth - dados de crescimento
   - POST /api/baselines/update - recalcular baselines
   - GET /api/videos agora aceita: min_outlier, creator_tier, sort_by=outlier/replicability

8. **Nova pagina: /opportunities**
   - Cards com outlier badge, replicability %, explicacao do outlier
   - Filtro por plataforma, tabs (Para Replicar / Explosoes)
   - Stats: explosoes detectadas, oportunidades, virais de pequenos

9. **Dashboard atualizado**
   - Novos cards: Explosoes (10x+), Para Replicar, Virais de Pequenos
   - Badges de outlier nos cards de video
   - Badge "Criador Pequeno" para is_small_creator=True

10. **Feed Viral atualizado**
    - Novo filtro: tamanho do criador (Todos/Pequenos/Nano/Micro)
    - Novo sort: Outlier Ratio, Replicabilidade
    - Badges de outlier e replicability nos cards
    - Mostra seguidores do criador

11. **Sidebar atualizada**
    - Novo link: Oportunidades (icone target) na secao Inteligencia

12. **Scheduler atualizado**
    - Novo job: baseline_job() - atualiza baselines dos criadores
    - Novo job: growth_snapshot_job() - registra snapshots de crescimento

13. **Recalculo completo**
    - 68 baselines de criadores atualizados
    - 106 videos recalculados com novo algoritmo
    - Stats: 2 explosoes, 12 oportunidades, 1 viral (score 60+)

**Resultados do novo algoritmo:**
- Khaby Lame (160M seg, 10M views normal): Score 41.1, Outlier 1.4x, Rep 47%
- Joao (2K seg, 500K views explodindo): Score 72.6, Outlier 625x, Rep 94%
- Sistema agora PRIORIZA conteudo replicavel de criadores pequenos

### Sessao 3 - 2026-03-14
**O que foi feito (IAs Locais + Analise Avancada ViralScan):**

1. **IAs Locais instaladas e funcionais**
   - Ollama v0.18.0 com Qwen 2.5 3B + 7B + nomic-embed-text
   - faster-whisper (STT), VADER (sentimento), sentence-transformers, chromadb
   - Servico unificado: `backend/services/local_ai.py`

2. **Novo servico: Video Analyzer (`backend/services/video_analyzer.py`)**
   - Hook Score (0-100): detecta padroes de gancho (curiosity, numbers, urgency, tutorial, story, transformation)
   - Shareability Score (0-100): baseado no framework STEPPS (social currency, triggers, emotion, practical value)
   - Engagement Velocity: velocidade de crescimento do video
   - Completion Rate Predictor: previsao de retencao baseada em duracao + engagement
   - Monetization Potential: potencial de receita (nicho RPM + commerce signals)
   - Blue Ocean Score: alta demanda + baixa competicao
   - Script Analysis via IA: Qwen 2.5 3B analisa hook/problema/solucao/CTA
   - AI Suggestions: sugestoes de melhoria automaticas via IA local

3. **Novos endpoints API (8 novos)**
   - GET /api/analysis/video/{id} - analise completa com IA
   - GET /api/analysis/video/{id}/hook - hook score
   - GET /api/analysis/video/{id}/shareability - shareability
   - GET /api/analysis/emerging - videos emergentes (<24h, alta velocidade)
   - GET /api/analysis/batch - analise em lote de top videos
   - POST /api/analysis/hook-score - testar hook customizado
   - POST /api/analysis/sentiment - analise de sentimento VADER
   - GET /api/analysis/ai-status - status das IAs locais

4. **Frontend atualizado (viral_scanner.html)**
   - Cards agora mostram: Hook Score, Velocity Score, Shareability Score
   - Botao "Analisar com IA" em cada card (icone cerebro)
   - Modal de analise completa: scores grid, hook analysis, script IA, sugestoes IA
   - Novo preset "Emergentes" (< 24h, alta velocidade)

5. **Scanner API enriquecida**
   - /api/scanner/videos agora retorna hook_score, hook_type, velocity_score, velocity_label, shareability_score, shareability_label para cada video

**Status ViralScan: 70% -> 85%**
- Falta: scan por hashtag/som/efeito, scan geografico, transcricao automatica em massa, analise de thumbnail (OCR)

## Preferencias do Usuario
- Glauko e leigo em programacao, prefere passo a passo simples
- Comunicacao em portugues
- Quer a plataforma mais completa do mercado
- Foco: ver tendencias e replicar conteudo para crescer nas redes
- Nao quer baixar videos no servidor, apenas visualizar com link
- Prioriza interface bonita, acessivel e mobile-friendly

## Comandos Uteis
```bash
# Reiniciar servico
sudo systemctl restart viral-social

# Ver logs
sudo journalctl -u viral-social -f

# Status
sudo systemctl status viral-social

# Testar APIs
curl -s http://127.0.0.1:8000/api/discover/sources | python3 -m json.tool
curl -s http://127.0.0.1:8000/api/stats | python3 -m json.tool

# Descoberta rapida
curl -s -X POST "http://127.0.0.1:8000/api/discover/all?region=BR&max_per_platform=50"
```
