Structuur en vereisten van RSS 2.0 voor podcasts
Een podcast-feed is in de basis een XML-document dat moet voldoen aan de RSS 2.0-specificatie. Om door podcast-apps en indexen correct te worden geïnterpreteerd, gelden er strikte regels voor de opbouw van dit bestand. De validator controleert of de XML-structuur aan deze standaarden voldoet.
Het document moet aan de volgende structurele basiseisen voldoen:
- Het hoofdelement van het document moet
<rss>zijn. - Het
version-kenmerk van<rss>moet exact zijn ingesteld op "2.0". - De RSS-feed moet precies één direct onderliggend
<channel>-element bevatten. Als er een afwijkend aantal wordt aangetroffen, resulteert dit in de foutmelding: "RSS moet precies één direct onderliggend<channel>-element bevatten;‹count›gevonden.". - Er mag geen DOCTYPE-declaratie in het bestand staan. Indien deze wel aanwezig is, toont de tool de foutmelding: "Verwijder de DOCTYPE-declaratie voordat je deze feed controleert.".
Wanneer de XML-structuur fundamenteel beschadigd of onvolledig is, kan de parser het bestand niet verwerken. In dat geval verschijnt de foutmelding: "Herstel de verkeerd opgemaakte XML en valideer vervolgens opnieuw.". Eventuele aanvullende technische informatie van de parser wordt getoond als: "Parserdetail: ‹detail›".
Specifieke eisen voor Apple Podcasts
Naast de algemene RSS 2.0-regels, vereisen platforms zoals Apple Podcasts specifieke metadata en naamruimten om de feed correct te indexeren. Een van de belangrijkste vereisten is dat de Apple Podcasts-naamruimte correct moet worden gedeclareerd op het <rss>-element. Als deze declaratie ontbreekt, geeft de validator de foutmelding: "Declareer de Apple Podcasts-naamruimte op <rss>: ‹namespace›".
Binnen het <channel> en de individuele <item>-elementen (de afleveringen) gelden de volgende regels voor specifieke velden:
- Verplichte velden: Indien een vereist veld voor het kanaal of de aflevering ontbreekt, toont de validator de fout: "Voeg de vereiste
‹field›toe.". - Links en afbeeldingen: Elk veld dat een URL vereist, moet een volledige HTTP- of HTTPS-URL bevatten. Voor algemene links geldt bij een fout: "
‹field›moet een volledige HTTP- of HTTPS-URL zijn.". Voor afbeeldingen geldt specifiek: "Stel href van<itunes:image>in op een volledige HTTP- of HTTPS-URL.". - Categorieën: Categorieën moeten correct worden gedefinieerd met het juiste kenmerk. De foutmelding bij een onjuiste categorie is: "Voeg een niet-leeg text-kenmerk toe aan
<itunes:category>.". - Expliciete inhoud: De tag
<itunes:explicit>is verplicht en kent slechts twee toegestane waarden. De foutmelding luidt: "Stel<itunes:explicit>in op true of false.". - Seriële shows: Indien een podcast is ingesteld als een seriële show, is een gestructureerde nummering vereist. De validator controleert dit en geeft de melding: "Seriële shows hebben voor elke aflevering een positief geheel getal itunes:episode nodig.".
Validatie van audio-enclosures
De audiobestanden van een podcast worden binnen de XML gedefinieerd met het <enclosure>-element. Dit element bevat de metadata die podcast-apps vertelt waar het audiobestand staat, hoe groot het is en van welk type het is. Elke aflevering moet exact één <enclosure>-element bevatten. Als er meerdere worden gevonden, geeft de tool de foutmelding: "Bewaar precies één <enclosure> in deze aflevering; ‹count› gevonden.".
De validator voert de volgende controles uit op de kenmerken van de enclosure:
- Aanwezigheid van kenmerken: Als een verplicht kenmerk ontbreekt, verschijnt de foutmelding: "Voeg het vereiste
‹attribute›-kenmerk toe aan<enclosure>.". - URL-validatie: De locatie van het bestand moet een geldige URL zijn. Foutmelding: "Stel het url-kenmerk van
<enclosure>in op een volledige HTTP- of HTTPS-URL.". - Bestandsgrootte: De grootte van het bestand moet in bytes worden uitgedrukt als een geheel getal. Foutmelding: "Stel het length-kenmerk van
<enclosure>in op een geheel aantal bytes.". Indien de lengte op 0 staat, geeft de tool de waarschuwing: "Het length-kenmerk van<enclosure>is 0. Controleer het werkelijke aantal bytes voordat je publiceert.". - MIME-type: Het bestandstype moet een geldige specificatie hebben. Foutmelding: "Gebruik een geldig MIME-type, zoals audio/mpeg.". Als het MIME-type niet naar een audiobestand verwijst, volgt de waarschuwing: "Deze
<enclosure>is niet als audio gemarkeerd. Controleer of de aflevering bewust een video of document bevat.". - Extensiecontrole: De bestandsextensie in de URL moet overeenstemmen met het opgegeven MIME-type. Bij een afwijking toont de validator de waarschuwing: "De bestandsextensie en het MIME-type komen niet overeen (
‹extension›en‹mime›).".
Datums en afleveringsbeheer
Correcte datumformattering is essentieel voor podcast-apps om afleveringen in de juiste chronologische volgorde te tonen en nieuwe releases te detecteren. Datums in een podcast-feed moeten voldoen aan de RFC 2822-specificatie.
- Ontbrekende publicatiedatum: Als een aflevering geen publicatiedatum heeft, geeft de tool de waarschuwing: "Voeg
<pubDate>toe zodat podcast-apps deze aflevering correct kunnen sorteren en publiceren.". - Ongeldig datumformaat: Als de datum niet voldoet aan de RFC 2822-standaard, of een onbestaande kalenderdatum bevat, verschijnt de foutmelding: "Gebruik een RFC 2822-datum met een echte kalenderdatum en tijdzone, bijvoorbeeld: Sat, 01 Apr 2023 19:00:00 +0000.".
- Tijdzones: Het gebruik van tekstuele tijdzones (zoals EST of GMT) kan compatibiliteitsproblemen veroorzaken. De validator adviseert daarom via de waarschuwing: "Deze benoemde tijdzone wordt geaccepteerd, maar is minder draagbaar; geef de voorkeur aan een numerieke offset zoals +0000.".
Daarnaast controleert de tool op dubbele waarden en de omvang van de feed:
- Unieke ID's: Elke aflevering moet een unieke GUID en een unieke enclosure-URL hebben. Dubbele waarden leiden tot de foutmeldingen: "Deze GUID herhaalt de waarde op regel
‹first›." of "Deze<enclosure>-URL herhaalt de waarde op regel‹first›.". - Aantal afleveringen: Een kanaal moet minimaal één aflevering bevatten, anders volgt de foutmelding: "Voeg ten minste één
<item>-aflevering toe aan het kanaal.". Indien een feed extreem groot is, waarschuwt de tool: "Deze feed bevat‹count›afleveringen; Apple Podcasts toont alleen de 2.000 meest recente.".
Fouten opsporen met XML-paden en regels
Wanneer de validator problemen vindt, worden deze overzichtelijk gepresenteerd onder de kop "Feed-diagnose". De resultaten tonen direct het aantal fouten, waarschuwingen en gedetecteerde afleveringen via de labels:
- "
‹count›fouten" - "
‹count›waarschuwingen" - "
‹count›afleveringen"
Om het herstelproces te vereenvoudigen, geeft de tool voor elk probleem de exacte locatie in het XML-bestand aan met de aanduiding "Regel ‹line›, kolom ‹column›". Daarnaast wordt er een XPath-achtige structuur weergegeven om de exacte positie van het element aan te duiden via het label "Oplossing: ‹path›". Gebruikers kunnen direct naar de juiste locatie in de code springen met de interactieve link "Ga naar ‹path› op regel ‹line›".
Indien er een zeer groot aantal problemen in de feed aanwezig is, kan de lijst worden ingekort. Dit wordt aangegeven met de melding: "De eerste ‹shown› van ‹total› problemen worden getoond.". Als de feed volledig vrij is van fouten en waarschuwingen, verschijnt de melding: "Geen structurele problemen gevonden.". Bij de aanwezigheid van problemen wordt de samenvatting getoond als: "‹errors› fouten en ‹warnings› waarschuwingen gevonden.".
Privacy en technische limieten
De verwerking van de podcast-feed vindt volledig lokaal plaats. De feed van je podcast wordt in je browser gecontroleerd. BroBroGo uploadt of bewaart niets.
De validator hanteert een strikte limiet van maximaal 500.000 tekens per controle. Indien deze limiet wordt overschreden, toont de interface de melding: "Deze tool accepteert maximaal ‹max› tekens per controle.". Als de analyse door technische redenen niet kan worden voltooid, gelden de volgende foutmeldingen:
- Time-out: "De validatie duurde te lang. Probeer een kleinere feed.".
- Algemene fout: "Validatie kon niet worden voltooid.".
- Lege invoer: "Plak de RSS-XML van je podcast voordat je valideert.".
Het is belangrijk te begrijpen dat deze tool een statische structuurcontrole uitvoert. De URL’s van de feed, het artwork en de media worden niet daadwerkelijk geopend of gedownload. Een succesvolle validatie garandeert dat de XML-structuur technisch correct is, maar biedt geen garantie dat externe podcast-directories de feed probleemloos zullen accepteren of publiceren. Zaken zoals de bereikbaarheid van de server, de daadwerkelijke audiodecodering en platformspecifieke redactionele regels moeten afzonderlijk worden gecontroleerd.
Veelgestelde vragen
Wat controleert deze Podcast RSS Validator?
De validator controleert of de RSS 2.0-XML goed is opgebouwd, of verplichte RSS- en gangbare Apple Podcasts-velden aanwezig zijn, en controleert <enclosure>-kenmerken, dubbele waarden en RFC 2822-datums.
Test het het audiobestand?
De validator controleert de URL van <enclosure>, het aantal bytes, het MIME-type, dubbele URL’s en of bestandsnaam en type overeenkomen. Het audiobestand wordt niet gedownload of gedecodeerd.
Wordt een feed die slaagt overal geaccepteerd?
Nee. Podcast-apps en -catalogi kunnen extra regels en controles op afstand toepassen. Slagen betekent alleen dat de geplakte XML aan de statische controles op deze pagina voldoet.