Metodologia

Como o Castnews Index coleta, processa e apresenta os dados sobre podcasts brasileiros.

256.701

Podcasts indexados

6.029.490

Episódios

11.199

Podcasts ativos

5899

Categorias

Critérios de inclusão

O que entra no índice

  • Podcasts com idioma declarado como português (pt, pt-br, pt-BR e variações)
  • O filtro é feito pelo campo language do feed RSS
  • Todos os tipos de podcast são incluídos: episódicos e seriais

Limitações conhecidas

  • Podcasts de Portugal e outros países lusófonos que declaram idioma pt (sem sufixo de país) são incluídos. Não há separação automática por país de origem
  • Podcasts brasileiros que declaram idioma incorreto (ex: en) não são capturados
  • 1.065 podcasts não possuem episódios — são feeds vazios ou com URL inacessível

Exclusão de podcasts de Portugal e outros países lusófonos

O Podcast Index não diferencia entre português do Brasil e português europeu de forma confiável. A grande maioria dos feeds usa o código de idioma genérico pt, sem sufixo de país. Nenhum feed no índice usa pt-PT.

Para identificar e excluir podcasts não-brasileiros, aplicamos uma detecção automática baseada em dois sinais combinados, analisados nas descrições dos 10 episódios mais recentes:

  • Vocabulário exclusivo pt-PT — termos que um brasileiro nunca usa: telemóvel, autocarro, comboio, pequeno-almoço, chávena, rebuçado, autoclismo, frigorífico, ecrã
  • Padrão gramatical— a construção “estar a + infinitivo” (ex: “está a fazer”, “estamos a ouvir”), exclusiva do português europeu. No Brasil, usa-se o gerúndio (“está fazendo”)

Regra: se 6 ou mais dos 10 episódios mais recentes contiverem pelo menos um desses sinais, o podcast recebe a marcação country_hint = pt e é excluído dos gráficos e estatísticas brasileiras. Os dados permanecem no banco para referência.

Essa abordagem foi validada empiricamente e apresenta alta precisão, com taxa de falsos positivos próxima de zero. A detecção é executada automaticamente a cada atualização mensal do índice.

Glossário de termos

Podcast ativo
Podcast que publicou pelo menos 1 episódio nos últimos 90 dias e não está marcado como morto. O cálculo é feito com base na data de publicação do episódio mais recente.
Podcast inativo
Podcast que não publicou episódios nos últimos 90 dias ou está marcado como morto pelo Podcast Index.
Podcast morto (dead)
Feed RSS que retorna erro persistente (404, timeout, domínio expirado). Marcação feita pelo Podcast Index após várias tentativas de acesso sem sucesso. Atualmente: 4.741 podcasts.
Novos podcasts
Podcasts cuja primeira data de publicação cai dentro do mês de referência. Baseado no campo first_pub_date calculado a partir do episódio mais antigo.
Novos episódios
Total de episódios publicados no mês de referência, considerando a data de publicação declarada no feed RSS.
Episódico vs Serial
Classificação definida pelo campo itunes:type do feed RSS. Podcasts episódicos podem ser ouvidos em qualquer ordem; seriais possuem ordem sequencial.
Hosting provider
Domínio do servidor que hospeda os arquivos de áudio (MP3) dos episódios. Detectado automaticamente a partir da URL do enclosure no feed RSS. 3.461 domínios distintos identificados.
Duração média
Média aritmética da duração dos episódios de um podcast, em segundos. Baseado no campo duration do feed RSS. Episódios sem duração declarada são excluídos do cálculo.

Pipeline de dados

O processamento segue 5 fases executadas mensalmente:

  1. Download — Baixa o dump completo do Podcast Index (banco SQLite com todos os feeds mundiais)
  2. Import — Filtra e importa para PostgreSQL apenas os feeds com idioma português
  3. Fetch de episódios — Para cada podcast, busca a lista completa de episódios via API do Podcast Index. Feeds que não respondem são buscados diretamente pelo URL do RSS
  4. Enriquecimento — Detecta o hosting provider a partir da URL dos arquivos de áudio. Enriquece metadados com informações do Apple Podcasts (iTunes)
  5. Agregação — Calcula campos derivados (duração média, datas, status ativo/inativo) e gera snapshots mensais, estatísticas por categoria e por hosting

Qualidade e detecção de conteúdo artificial

Cada podcast ativo recebe uma pontuação de qualidade (0-100) calculada automaticamente com base em sinais de metadados:

  • Bônus — presença de descrição, autor, imagem, categorias, hosting conhecido, site, duração variada dos episódios, tempo de atividade
  • Penalidades — publicação em massa (50+ episódios em 30 dias), duração uniforme (sinal de TTS), ausência de metadados essenciais, erros de crawl recorrentes

Classificação

  • 70-100 — podcast em bom estado
  • 40-69 — requer revisão manual
  • 0-39 — suspeito de spam ou conteúdo artificial

Heurísticas de conteúdo

Além dos metadados, títulos, descrições e nomes de autores são analisados em busca de padrões textuais associados a problemas conhecidos:

  • Indicadores de IA — menções a “AI presenter”, NotebookLM, text-to-speech, narradores sintéticos e selos de redes conhecidas de conteúdo gerado automaticamente. Marca o podcast como ai_suspected e aplica penalidade na pontuação.
  • Spam de apostas e cassino — palavras-chave em português, inglês, indonésio e vietnamita associadas a conteúdo de gambling. Sinaliza o podcast na categoria Spam/Gambling com penalidade mais alta.

Integração com o Podcast Index

Diariamente consumimos o endpoint /recent/problematic do Podcast Index, que publica feeds sinalizados globalmente pela comunidade. Cada reason code do Podcast Index vira um rótulo visível na moderação:

  • Spam (reason 1), AI Slop (reason 2), Ilegal (reason 3), Duplicata (reason 4), Malicioso (reason 5), Hijack (reason 6)

A nota do Podcast Index é preservada junto ao flag para dar contexto ao moderador, e o worker nunca sobrescreve decisões humanas existentes.

Revisão humana e transparência

Nenhum podcast é removido automaticamente. Todas as sinalizações (metadados, heurísticas ou Podcast Index) entram em uma fila de moderação onde um humano decide entre aprovar, marcar como spam ou marcar como IA. A proporção de podcasts em cada categoria é publicada em tempo real no gráfico “Qualidade do catálogo” na home.

Reportar podcast

Qualquer usuário logado pode reportar um podcast suspeito diretamente pela página do perfil. O report é enviado para nossa equipe de suporte, que analisa e toma as medidas necessárias.

Snapshots mensais

Cada snapshot mensal registra o estado do ecossistema naquele mês. Os valores são calculados via SQL sobre a base completa de podcasts e episódios:

  • total_podcasts — podcasts com primeira publicação até o fim do mês
  • new_podcasts — podcasts cuja primeira publicação foi naquele mês
  • new_episodes — episódios publicados naquele mês
  • active_podcasts — podcasts ativos (publicaram nos últimos 90 dias, relativo à data atual)
  • inactive_podcasts — podcasts inativos (não publicaram nos últimos 90 dias)
  • episodic_count / serial_count — contagem por tipo de podcast
  • avg_duration_s — duração média dos episódios do mês, em segundos

Dados globais

Os gráficos comparativos com dados globais utilizam estatísticas do Listen Notes. Esses dados são coletados via scraping e armazenados no banco de dados para comparação com os números brasileiros.

Datasets globais disponíveis: novos podcasts por ano/mês, novos episódios por ano, podcasts por país, por idioma, por gênero, por hosting, podcasts inativos, e podcasts falsos (IA) removidos.

Atualização

Os dados são atualizados todo dia 10 de cada mês, fechando os números do mês anterior. A data do último snapshot é exibida na página principal.

Último snapshot: maio de 2026