Portfólio de Vinícius Rueda Lopes

O que a audiência está dizendo sobre este vídeo?

Cole links de vídeos ou de um canal do YouTube. A página busca as estatísticas e os comentários mais relevantes, e um modelo de linguagem resume o conteúdo, mede o tom dos comentários, agrupa os assuntos e sugere títulos.

Até 5 vídeos por vez. Um link de canal traz os 5 vídeos mais recentes.

Como funciona

  1. Os links viram IDs de vídeo. Link de canal passa pela playlist de uploads, que custa 1 unidade de cota da API em vez das 100 da busca.
  2. Para cada vídeo, o servidor busca estatísticas e até 60 comentários ordenados por relevância na YouTube Data API.
  3. Cada vídeo vira uma chamada separada ao modelo, que devolve um JSON com o tom de cada comentário, os assuntos recorrentes e as sugestões. Os vídeos são processados um de cada vez, pra respeitar o limite por minuto da camada gratuita.
  4. Com dois vídeos ou mais, uma última chamada recebe só os resumos já prontos e escreve a comparação.

O percentual de sentimento é contado no servidor a partir do rótulo de cada comentário, não estimado pelo modelo. Resultados ficam 72 horas em cache no MySQL, e cada visitante tem um limite diário de análises novas, o que mantém o projeto dentro das cotas gratuitas das APIs. A análise não usa a transcrição do vídeo, porque a API oficial só libera legendas para o dono do canal.

Nichos

Andamento da coleta

Carregando o andamento da coleta…

NichoDias coletadosÚltima coletaVídeos na última coleta

Como a coleta funciona

  1. Um agendamento no servidor roda a cada 15 minutos e processa um nicho pendente do dia, até completar os 10.
  2. Para cada nicho, uma busca na YouTube Data API traz os 50 vídeos mais vistos publicados nos últimos 7 dias no Brasil, e uma segunda chamada busca as estatísticas de todos de uma vez.
  3. O servidor extrai as hashtags e tags de cada vídeo e soma quantos vídeos e quantas views cada uma teve.
  4. Um modelo de linguagem agrupa os títulos em assuntos concretos, apontando os vídeos de cada um. As views de cada assunto são somadas no servidor.

A busca é a chamada mais cara da API do YouTube, 100 unidades de uma cota de 10 mil por dia. Por isso ela nunca roda na hora da visita: o visitante só lê o que já está no banco. São cerca de mil unidades por dia para os 10 nichos.

Como funciona

  1. Cada link vira um ID de canal. Link de vídeo também serve: a página usa o canal dono do vídeo.
  2. Para cada canal, o servidor lê as estatísticas gerais e os 30 vídeos mais recentes pela playlist de uploads. São 3 unidades de cota por canal, com cache de 12 horas.
  3. Todos os números são calculados no servidor. Vídeos publicados há menos de 48 horas ficam fora da mediana, porque ainda estão acumulando views.
  4. Uma única chamada ao modelo lê os títulos de todos os canais e aponta os pilares de conteúdo pelo número de cada vídeo. A contagem e a mediana de views de cada pilar são feitas no servidor.

A API do YouTube arredonda o número de inscritos e deixa o canal escondê-lo, e ela não tem histórico: tudo aqui é um retrato de agora. Vídeo curto é o que tem até 3 minutos.

Arquitetura

Tudo roda num servidor de hospedagem compartilhada, com APIs e LLMs em camadas gratuitas. O navegador nunca fala direto com as APIs externas: as chaves ficam só no servidor.

O navegador pede dados em JSON ao servidor PHP. O servidor consulta a YouTube Data API e um LLM (Groq, com Gemini de reserva), lê e grava cache e histórico no MySQL. Um agendamento do Hostinger chama o servidor a cada 15 minutos para coletar o radar. Navegador HTML, CSS e JavaScript Chart.js pros gráficos 3 abas, sem framework Servidor PHP (Hostinger) API própria: vídeo, canais, radar métricas calculadas em PHP validação do JSON do LLM limite por visitante e teto diário chaves só no servidor YouTube Data API v3 10 mil unidades por dia LLM Groq, reserva no Gemini MySQL cache de 12 a 72 horas histórico diário do radar e consumo Cron do Hostinger a cada 15 minutos 1 nicho por chamada JSON HTTPS prompt lê e grava com token