Estrutura e Requisitos do RSS 2.0 para Podcasts
O ecossistema de distribuição de podcasts baseia-se no formato XML sob a especificação RSS 2.0. Para que um feed seja considerado válido, ele deve seguir regras estruturais rígidas de formatação de marcação. O documento precisa conter uma declaração XML inicial e uma única raiz <rss>. Caso o analisador identifique uma declaração de tipo de documento no arquivo, a ferramenta exibirá o erro "Remova a declaração DOCTYPE antes de verificar este feed.". Se a estrutura geral do XML apresentar tags abertas incorretamente ou caracteres inválidos, o validador emitirá o aviso "Corrija o XML malformado e valide novamente.".
A raiz do documento deve ser obrigatoriamente <rss>. Caso contrário, o erro apresentado será "A raiz do documento deve ser <rss>.". Além disso, o atributo version da tag <rss> precisa ser definido exatamente como "2.0". Se houver divergência, o validador exibirá "Defina o atributo version de <rss> como 2.0.".
Em termos de hierarquia, o elemento <rss> deve conter exatamente um elemento filho direto <channel>. Se o feed contiver zero ou mais de um canal, o sistema apontará o erro "O RSS deve conter exatamente um elemento filho <channel> direto; foram encontrados ‹count›.".
Requisitos Específicos para Apple Podcasts
A distribuição de podcasts para grandes diretórios exige a inclusão de metadados específicos que vão além do padrão RSS 2.0 básico. O namespace do Apple Podcasts deve ser formalmente declarado na tag <rss>. A ausência dessa declaração resulta no erro "Declare o namespace Apple Podcasts em <rss>: ‹namespace›".
Dentro do elemento <channel>, existem campos obrigatórios e regras de comportamento que determinam a aceitação do feed:
- Campos Obrigatórios: A ausência de elementos essenciais do canal ou dos episódios aciona a mensagem "Adicione o campo obrigatório
‹field›.". - Validação de Links: URLs de canais ou imagens devem ser estruturadas corretamente. Links inválidos geram o erro "
‹field›deve ser uma URL HTTP ou HTTPS completa.". - Imagens de Capa: O atributo de referência da imagem do podcast deve ser um endereço web válido. Se houver falhas, o validador exibirá "Defina o href de itunes:image como uma URL HTTP ou HTTPS completa.".
- Categorias: A categorização do podcast é obrigatória para a indexação. O erro "Adicione um atributo text não vazio a itunes:category." é exibido se a tag estiver vazia ou ausente.
- Conteúdo Explícito: A sinalização de conteúdo para maiores deve ser explícita, exigindo o erro "Defina itunes:explicit como true ou false." caso o valor seja diferente desses parâmetros booleanos.
- Programas Seriais: Se o podcast for do tipo serial, a ordenação correta é mandatória, gerando o erro "Os programas seriais precisam de um número inteiro positivo itunes:episode para cada episódio." se algum número de episódio for inválido ou estiver ausente.
Validação de Arquivos de Áudio (Enclosures)
Os episódios de um podcast entregam a mídia física por meio do elemento <enclosure>. Cada item de episódio deve conter exatamente um elemento <enclosure>. Se um episódio apresentar múltiplos arquivos de mídia associados, o validador apontará o erro "Mantenha exatamente um elemento <enclosure> neste episódio; foram encontrados ‹count›.".
A ferramenta analisa os atributos técnicos declarados na tag <enclosure> sem realizar o download ou a decodificação do arquivo de áudio. Os seguintes parâmetros são validados diretamente no XML:
| Atributo | Regra de Validação | Mensagem de Erro ou Aviso |
|---|---|---|
| Ausência de Atributo | Todos os atributos obrigatórios do enclosure devem existir | "Adicione o atributo ‹attribute› necessário a <enclosure>." |
| URL da Mídia | Deve ser um link absoluto e seguro | "Defina o atributo url de <enclosure> como uma URL HTTP ou HTTPS completa." |
| Tamanho (Length) | Deve ser um número inteiro representando o tamanho em bytes | "Defina o atributo length de <enclosure> como uma quantidade inteira de bytes." |
| Tamanho Zero | Dispara um alerta se o tamanho declarado for igual a 0 | "O atributo length de <enclosure> é 0. Confirme a quantidade real de bytes antes de publicar." |
| Tipo MIME | Deve ser um formato de áudio padrão e reconhecido | "Use um tipo MIME válido, como audio/mpeg." |
Além dessas validações diretas, o sistema cruza informações para identificar inconsistências de mídia. Se o tipo MIME declarado não corresponder a um formato de áudio, o validador exibe o aviso "Este <enclosure> não está marcado como áudio. Confirme se o episódio é mesmo um vídeo ou documento.". Se a extensão do arquivo no final da URL não for compatível com o tipo MIME declarado, o sistema gera o alerta "A extensão do arquivo de mídia e o tipo MIME não correspondem (‹extension› e ‹mime›).". URLs de mídia duplicadas em episódios diferentes também são bloqueadas com o erro "Esta URL de <enclosure> repete o valor da linha ‹first›.".
Formatação de Datas e Gerenciamento de Episódios
A ordenação cronológica dos episódios em agregadores depende da presença e da formatação correta da data de publicação. A ausência desse elemento gera o aviso "Adicione <pubDate> para que os aplicativos de podcast possam ordenar e publicar este episódio corretamente.".
As datas de publicação devem seguir estritamente o padrão RFC 2822. Caso o formato seja inválido ou contenha valores impossíveis no calendário, o validador exibirá o erro "Use uma data RFC 2822 com uma data de calendário e fuso horário reais, por exemplo: Sat, 01 Apr 2023 19:00:00 +0000.". O uso de fusos horários nomeados (como EST ou GMT) em vez de desvios numéricos é desencorajado, gerando o aviso "Este fuso horário nomeado é aceito, mas menos portátil; prefira um deslocamento numérico como +0000.".
Em relação ao gerenciamento do volume de episódios, o validador impõe limites práticos baseados no comportamento dos principais diretórios:
- Mínimo de Conteúdo: Um canal de podcast não pode estar vazio. O erro "Adicione pelo menos um episódio <item> ao canal." é exibido se nenhum item for detectado.
- Identificadores Únicos: Cada episódio deve ter um GUID exclusivo. Se houver repetição, o erro "Este GUID repete o valor na linha
‹first›." será exibido. - Limite de Exibição: Feeds extremamente longos sofrem truncamento em agregadores. Se o feed ultrapassar o limite recomendado, o validador emitirá o aviso "Este feed tem
‹count›episódios; o Apple Podcasts exibe apenas os 2.000 mais recentes.".
Depuração de Erros com Caminhos XML
Quando o validador processa o documento XML, ele gera um relatório detalhado sob o cabeçalho "Diagnóstico do feed". O resultado exibe um resumo indicando a quantidade de problemas encontrados, estruturado como "‹errors› erros e ‹warnings› avisos" ou, caso o arquivo esteja limpo, "Nenhum problema estrutural encontrado".
Para facilitar a correção dos problemas pelo desenvolvedor ou produtor do podcast, cada erro ou aviso é mapeado geograficamente dentro do arquivo XML. O validador exibe a localização exata no formato "Linha ‹line›, coluna ‹column›".
Adicionalmente, a ferramenta fornece o caminho XPath exato do elemento problemático por meio da linha "Correção: ‹path›". O usuário pode clicar no link de navegação rápida "Vá para ‹path› na linha ‹line›" para saltar diretamente para o trecho do código que precisa de manutenção. Se o analisador XML falhar por completo, detalhes técnicos adicionais serão exibidos em "Detalhe do analisador: ‹detail›".
Limitações da Validação Estática
Este validador executa uma análise estática do código XML fornecido. Isso significa que a aprovação do feed nos testes da ferramenta não garante que o podcast será aceito ou publicado automaticamente em um diretório ou agregador externo.
A ferramenta não realiza conexões de rede externas para verificar se as URLs de imagem ou de mídia estão online, nem realiza o download dos arquivos para checar a integridade física do áudio. O limite máximo de processamento da ferramenta é de 500.000 caracteres por verificação. Se o arquivo enviado exceder esse limite, a mensagem "Esta ferramenta aceita até ‹max› caracteres por verificação." será exibida. Caso o processamento trave ou demore muito, o sistema exibirá "A validação demorou demais. Tente usar um feed menor." ou "A validação não pôde ser concluída.".
Privacidade e Processamento de Dados
O processamento do XML do seu podcast ocorre inteiramente de forma local. Toda a análise do feed é realizada diretamente no navegador do usuário, garantindo que nenhum dado, arquivo ou conteúdo de texto seja enviado para servidores externos ou salvo pelo BroBroGo.
Perguntas Frequentes (FAQ)
O que este validador Podcast RSS verifica?
Ele verifica se o XML RSS 2.0 está bem formado, se os campos obrigatórios de RSS e os campos comuns do Apple Podcasts estão presentes, além dos atributos de <enclosure>, duplicatas e datas RFC 2822.
Ele testa o arquivo de áudio?
Ele verifica a URL de <enclosure>, a quantidade de bytes, o tipo MIME, se a URL é única e se o nome do arquivo combina com o tipo. O áudio não é baixado nem decodificado.
Um feed aprovado será aceito em todos os lugares?
Não. Aplicativos e diretórios de podcast podem aplicar outras regras e verificações remotas. A aprovação indica apenas que o XML colado passou nas verificações estáticas mostradas aqui.