Struktura a požadavky specifikace RSS 2.0 pro podcasty
Podcastové RSS kanály jsou postaveny na formátu XML a musí striktně dodržovat specifikaci RSS 2.0, aby je čtečky a adresáře dokázaly správně zpracovat. Validátor podcastového RSS provádí statickou kontrolu nahraného dokumentu a ověřuje shodu s těmito pravidly.
Základním požadavkem je správná struktura XML dokumentu. Kořen dokumentu musí být <rss>. Atribut version prvku <rss> musí být nastaven na "2.0". Uvnitř kořenového prvku se musí nacházet přesně jeden přímý <channel>. Pokud kanál obsahuje deklaraci DOCTYPE, validátor vrátí chybu "Odstraňte deklaraci DOCTYPE před kontrolou tohoto feedu.". V případě, že je samotné XML chybně strukturované, zobrazí se chyba "Opravte chybně vytvořené XML a zkontrolujte je znovu.".
Každý kanál musí obsahovat alespoň jednu epizodu, jinak se zobrazí chyba "Přidejte alespoň jednu epizodu <item> do kanálu.". Pro správnou identifikaci prvků a lokalizaci chyb v kódu využívá validátor přesné určení pozice ve formátu "Řádek ‹line›, sloupec ‹column›" a cestu XPath zobrazenou jako "Oprava: ‹path›". Uživatel se může přímo navigovat na problematické místo pomocí odkazu "Přejít na ‹path› na řádku ‹line›".
Specifické požadavky pro platformu Apple Podcasts
Apple Podcasts definuje dodatečná pravidla pro strukturu metadat, která jsou nezbytná pro správné zařazení pořadu do katalogu. Prvním krokem je správná deklarace jmenného prostoru Apple Podcasts na prvku <rss>. Pokud tato deklarace chybí, validátor nahlásí chybu "Deklarujte jmenný prostor Apple Podcasts na <rss>: ‹namespace›".
Mezi kritické prvky patří:
- Kategorie: Prvek
<itunes:category>musí mít správný formát. Pokud tomu tak není, zobrazí se chyba "Přidejte k itunes:category neprázdný atribut text.". - Explicitnost obsahu: Tag
<itunes:explicit>musí být nastaven na "true" nebo "false". Jakákoli jiná hodnota vyvolá chybu "Nastavte itunes:explicit na true nebo false.". - Sériové pořady: Pokud je pořad nastaven jako sériový, vyžaduje se kladné celé číslo pro každou epizodu. V opačném případě systém vrátí chybu "Sériové pořady potřebují kladné celé číslo itunes:episode pro každou epizodu.".
- Omezení počtu epizod: Apple Podcasts má limit pro zobrazení obsahu. Pokud kanál obsahuje více než 2 000 epizod, validátor vygeneruje varování "Tento kanál obsahuje
‹count›epizod; Apple Podcasts zobrazuje pouze posledních 2 000.".
Validace zvukových příloh a elementu enclosure
Prvek <enclosure> definuje samotný mediální soubor epizody. Každá epizoda musí obsahovat přesně jeden <enclosure>. Pokud jich obsahuje více, zobrazí se chyba "V této epizodě ponechte přesně jeden <enclosure>; nalezeno ‹count›.".
Validátor kontroluje přítomnost a správnost všech atributů elementu <enclosure>. Pokud některý chybí, zobrazí se chyba "Přidejte požadovaný atribut ‹attribute› k <enclosure>.".
| Atribut | Požadavek | Chybové hlášení / Varování |
|---|---|---|
url |
Úplná adresa protokolu HTTP nebo HTTPS | "Nastavte atribut url prvku <enclosure> na úplnou URL HTTP nebo HTTPS." |
length |
Celý počet bajtů odpovídající velikosti souboru | "Do atributu length prvku <enclosure> zadejte celý počet bajtů." |
type |
Platný MIME typ (např. audio/mpeg) | "Použijte platný MIME typ, například audio/mpeg." |
Nástroj kontroluje také logické shody a duplicity. Pokud je délka v atributu length rovna 0, zobrazí se varování "Atribut length prvku <enclosure> je 0. Před zveřejněním ověřte skutečný počet bajtů.". Pokud se shodují adresy médií u různých epizod, validátor vypíše chybu "Tento odkaz URL opakuje hodnotu na řádku ‹first›.".
Dále se ověřuje soulad mezi příponou souboru a deklarovaným MIME typem. Pokud nesouhlasí, systém zobrazí varování "Název souboru média a MIME typ se neshodují (‹extension› vs ‹mime›).". Pokud je použit neaudiální formát, zobrazí se varování "Tento <enclosure> není označen jako zvuk. Ověřte, že video nebo dokument v epizodě je záměrný.".
Formátování data a času podle RFC 2822
Správné řazení epizod v aplikacích závisí na přítomnosti a správnosti data publikace v elementu <pubDate>. Pokud tento element chybí, validátor vygeneruje varování "Přidejte <pubDate>, aby podcastové aplikace mohly tuto epizodu spolehlivě seřadit a zveřejnit.".
Datum musí striktně odpovídat standardu RFC 2822 s reálným kalendářním datem a časovým pásmem. Neplatný formát vyvolá chybu "Použijte datum RFC 2822 s reálným kalendářním datem a časovým pásmem, například: Sat, 01 Apr 2023 19:00:00 +0000.".
Použití pojmenovaných časových pásem (například EST, GMT) je sice technicky přípustné, ale snižuje přenositelnost mezi různými platformami. Validátor v takovém případě zobrazí varování "Toto pojmenované časové pásmo je přijatelné, ale méně přenositelné; preferujte číselný posun, například +0000.".
Správa duplicit a identifikátorů epizod
Jedinečnost každé epizody je v RSS kanálu zajištěna pomocí elementu <guid> (Globally Unique Identifier). Tento identifikátor musí být pro každou epizodu unikátní v rámci celého kanálu. Pokud validátor detekuje shodu identifikátorů u více epizod, zobrazí chybu "Tento GUID opakuje hodnotu na řádku ‹first›.". Duplicitní GUID způsobují, že podcastové aplikace nedokážou správně identifikovat nové epizody, případně přepíší existující data v přehrávačích uživatelů.
Ochrana soukromí a limity zpracování
Zpracování zadaného RSS XML probíhá lokálně. RSS kanál podcastu se kontroluje ve vašem prohlížeči. BroBroGo nic nenahrává ani neukládá.
Nástroj má stanovené limity pro velikost vstupu a dobu zpracování:
- Maximální délka vstupu je 500 000 znaků. Při překročení se zobrazí zpráva "Tento nástroj přijímá až
‹max›znaků na kontrolu.". - Pokud zpracování trvá příliš dlouho, proces se přeruší s hlášením "Kontrola trvala příliš dlouho. Zkuste menší kanál.".
- V případě neočekávané chyby analýzy se zobrazí "Ověření nelze dokončit.".
- Pokud se pokusíte spustit kontrolu bez vloženého textu, nástroj vás upozorní zprávou "Před ověřením vložte RSS XML z podcastu.".
Často kladené otázky
Co tento podcastový RSS validátor kontroluje?
Kontroluje, zda je RSS 2.0 XML správně vytvořené, zda obsahuje povinná pole RSS a běžná pole kanálu a epizody Apple Podcasts, dále atributy <enclosure>, duplicity a data RFC 2822.
Testuje to zvukový soubor?
Kontroluje URL a délku v bajtech, typ MIME, duplicity a shodu názvu souboru s typem. Zvuk nestahuje ani nedekóduje.
Bude feed, který projde, přijat všude?
Ne. Podcastové aplikace mohou přidat další pravidla a vzdálené kontroly. Úspěšný výsledek znamená, že vložené XML splnilo zde uvedené statické kontroly, ne že jej každý katalog přijme nebo zveřejní.