Struktura i zahtjevi RSS 2.0 standarda za podcaste
RSS 2.0 predstavlja osnovni format za distribuciju podcast sadržaja. Da bi feed bio tehnički ispravan, XML dokument mora ispunjavati stroga strukturna pravila. Prvi uslov je da korijenski element dokumenta mora biti <rss>. Unutar ovog elementa, atribut version mora biti postavljen tačno na "2.0". Svaki ispravan RSS feed mora sadržavati tačno jedan direktni <channel> element unutar <rss> korijena.
Za potrebe modernih platformi, a posebno Apple Podcasts direktorija, potrebno je deklarisati Apple Podcasts namespace na <rss> elementu. Nedostatak ove deklaracije ili nepravilna struktura onemogućit će aplikacijama da ispravno interpretiraju metapodatke vašeg podcasta.
Specifični zahtjevi za Apple Podcasts
Prilikom pripreme feeda za Apple Podcasts, primjenjuju se dodatna pravila za kanale i pojedinačne epizode. Svaki kanal mora sadržavati obavezna polja, a njihovo odsustvo aktivira grešku "Dodajte obavezni ‹field›.". Svi linkovi unutar feeda moraju biti ispravno formatirani. Ako polje sadrži nevažeći link, validator prikazuje poruku "‹field› mora biti potpuni HTTP ili HTTPS URL.".
Posebna pravila važe za sljedeće elemente:
- Slike: Atribut
hrefunutar slika mora biti ispravan. U suprotnom, pojavljuje se greška "Postavite itunes:image href na potpuni HTTP ili HTTPS URL.". - Kategorije: Elementi kategorija ne smiju biti prazni. Pravilo nalaže: "Dodajte neprazan atribut text u itunes:category.".
- Eksplicitan sadržaj: Oznaka
<itunes:explicit>mora biti postavljena isključivo na "true" ili "false". - Serijske emisije: Ako je podcast konfigurisan kao serijski (serial), zahtijeva se pozitivan cijeli broj u
<itunes:episode>za svaku epizodu.
Validacija audio elemenata (enclosure)
Element <enclosure> je ključni dio svake epizode jer sadrži direktnu vezu do audio datoteke. Svaka epizoda smije imati tačno jedan <enclosure> element. Ako se unutar jedne epizode pronađe više ovih elemenata, validator javlja grešku "Zadržite tačno jedan <enclosure> u ovoj epizodi; pronađeno je ‹count›.".
Prilikom provjere elementa <enclosure>, validator analizira nekoliko ključnih atributa:
- URL: Mora biti potpuni HTTP ili HTTPS link. Neispravan URL rezultira greškom "Postavite atribut url elementa <enclosure> na potpuni HTTP ili HTTPS URL.".
- Dužina (Length): Atribut
lengthmora sadržavati veličinu datoteke izraženu u bajtovima. Vrijednost mora biti cijeli broj. Ako je vrijednost nevažeća, prikazuje se greška "U atribut length elementa <enclosure> unesite cijeli broj bajtova.". Ukoliko je dužina postavljena na 0, validator izdaje upozorenje "Atribut length elementa <enclosure> ima vrijednost 0. Potvrdite stvarni broj bajtova prije objavljivanja.". - MIME tip: Zahtijeva se upotreba važećeg MIME tipa, kao što je
audio/mpeg. Ako se koristi nevažeći tip, pojavljuje se greška "Koristite važeći MIME tip kao što je audio/mpeg.". Ukoliko medij nije označen kao audio, sistem izdaje upozorenje "Ovaj <enclosure> nije označen kao audio. Potvrdite da je video ili dokumentarna epizoda namjerna.". Također se provjerava slaganje ekstenzije datoteke i MIME tipa; u slučaju neslaganja, javlja se upozorenje "Naziv medija i MIME tip se ne podudaraju (‹extension›vs‹mime›).".
Važnost ispravnog formatiranja datuma (RFC 2822)
Datumi objavljivanja epizoda unutar <pubDate> elementa moraju biti usklađeni sa RFC 2822 standardom. Ovaj format omogućava aplikacijama za podcaste da ispravno sortiraju i prikazuju epizode hronološkim redom. Nedostatak ovog datuma uzrokuje upozorenje "Dodajte <pubDate> kako bi podcast aplikacije mogle pouzdano naručivati i objavljivati ovu epizodu.".
Datum mora sadržavati stvarni kalendarski dan, vrijeme i vremensku zonu. Primjer ispravno formatiranog datuma je: Sat, 01 Apr 2023 19:00:00 +0000. Ako datum nije ispravan, validator prikazuje grešku "Koristite datum prema RFC 2822 sa stvarnim kalendarskim datumom i vremenskom zonom, na primjer: Sat, 01 Apr 2023 19:00:00 +0000.". Upotreba imenovanih vremenskih zona (poput GMT ili EST) umjesto numeričkih pomaka može uzrokovati probleme na određenim platformama, pa validator izdaje upozorenje "Ova imenovana vremenska zona je prihvatljiva, ali manje prenosiva; preferirajte numerički pomak kao +0000.".
Upravljanje brojem epizoda i izbjegavanje duplikata
Za stabilnost podcast feeda važno je izbjegavati dupliranje identifikatora i medijskih datoteka. Validator provjerava jedinstvenost ključnih elemenata kroz cijeli dokument. Ako se isti URL audio datoteke pojavi više puta, sistem prikazuje grešku "Ovaj URL priloge ponavlja vrijednost na liniji ‹first›.". Slično tome, svaka epizoda mora imati jedinstveni GUID (Globally Unique Identifier). Duplirani GUID-ovi uzrokuju grešku "Ovaj GUID ponavlja vrijednost na liniji ‹first›.".
Također, postoji ograničenje u broju epizoda koje platforme poput Apple Podcasts mogu procesuirati. Iako feed može tehnički sadržavati neograničen broj stavki, Apple Podcasts prikazuje samo posljednjih 2.000 epizoda. Ako vaš feed premašuje ovaj broj, validator će izdati upozorenje "Ovaj feed ima ‹count› epizoda; Apple Podcasts prikazuje samo posljednjih 2.000.". Kanal također mora sadržavati najmanje jednu epizodu da bi bio važeći.
Kako interpretirati rezultate i otkloniti greške
Nakon što pokrenete provjeru, validator generiše detaljan izvještaj pod naslovom "Dijagnostika feeda". Rezultati prikazuju ukupan broj pronađenih grešaka, upozorenja i epizoda.
Za svaku uočenu nepravilnost, validator pruža tačnu lokaciju u formatu "Red ‹line›, kolona ‹column›". Pored toga, prikazuje se XPath putanja do problematičnog elementa u obliku "Popravka: ‹path›". Korisnici mogu kliknuti na link "Idi u ‹path› na liniji ‹line›" kako bi direktno pristupili mjestu u kodu koje zahtijeva ispravku. Ako je broj problema prevelik, lista se skraćuje uz poruku "Prikazuje se prvih ‹shown› od ukupno ‹total› problema.". Kada je feed potpuno ispravan, prikazuje se poruka "Nije pronađen nijedan strukturni problem.".
Privatnost i tehnička ograničenja alata
Ovaj validator radi pod specifičnim tehničkim i sigurnosnim pravilima:
- Lokalna obrada: Vaš podcast feed provjerava se u pregledniku. BroBroGo ništa ne šalje niti sprema, što osigurava privatnost vaših podataka tokom rada.
- Ograničenje veličine: Alat prihvata XML unos do maksimalno 500.000 karaktera po provjeri.
- Vremensko ograničenje: Ako je feed prevelik ili proces traje predugo, sistem će prekinuti rad uz poruku "Provjera je trajala predugo. Pokušajte s manjim feedom.".
- Greške pri parsiranju: Ako XML sadrži DOCTYPE deklaraciju, validator će zahtijevati njeno uklanjanje porukom "Uklonite DOCTYPE deklaraciju prije provjere ovog feeda.". U slučaju neispravne XML sintakse, prikazuje se poruka "Ispravite neispravan XML, zatim ponovno validirajte.".
Važno je razumjeti da je ovo provjera statične strukture. Alat ne preuzima niti dekodira audio datoteke, niti provjerava dostupnost slika i medijskih URL-ova na daljinu. Prolazak ove validacije znači da je feed ispunio statičke provjere, ali ne garantuje da će ga vanjski direktorij bez problema prihvatiti ili objaviti.
Često postavljana pitanja (FAQ)
Šta ovaj Podcast RSS Validator provjerava? Provjerava je li RSS 2.0 XML pravilno oblikovan, jesu li unesena obavezna RSS polja i uobičajena polja kanala i epizoda za Apple Podcasts, te atribute elementa <enclosure>, duplikate i RFC 2822 datume.
Da li testira audio fajl? Provjerava URL i dužinu u bajtovima elementa <enclosure>, MIME tip, duplikate i podudaranje naziva datoteke s tipom. Ne preuzima niti dekodira audio.
Hoće li feed koji prolazi biti prihvaćen svuda? Ne. Podcast aplikacije mogu dodavati pravila i daljinske provjere. Prosljeđivanje znači da je zalijepljeni XML ispunio statičke provjere prikazane ovdje, a ne da će ga direktorij prihvatiti ili objaviti.
Zašto dobijam grešku za DOCTYPE deklaraciju? Ako je DOCTYPE deklaracija prisutna, alat prikazuje poruku: "Uklonite DOCTYPE deklaraciju prije provjere ovog feeda.".