Free, no account needed
Podcast feed validator
Paste the address of a podcast feed and Inoreader fetches it the way a podcast app does, fetches the newest episode files and the artwork, and checks everything Apple Podcasts, Spotify and the apps require. The validator is free and you do not need an account.
Check everything a podcast app depends on
A podcast feed has to pass the checks of a feed reader before any of the podcast checks matter, so the report starts there and adds a section for what the directories and the apps require.
Delivery
The status, redirects, time to answer, bot protection, caching headers, compression and https.
Document and items
Well-formed XML, the encoding, and stable ids and dates on every episode.
Podcast
The size and type of the artwork, the categories, the explicit flag, the owner, the show type, every episode's file with its type and size, the duration, and transcripts. Inoreader's feed fetchers send a HEAD request and a byte-range request to the three newest episode files, and fetch and measure the artwork.
Directory requirements
| Requirement | Who asks for it | Report rows |
|---|---|---|
Square artwork, 1400 to 3000 pixels, JPEG or PNG |
Apple Podcasts, Spotify | Artwork |
At least one itunes:category |
Apple Podcasts | Category |
itunes:explicit on the channel |
Apple Podcasts | Explicit flag |
An enclosure with length and type on every episode |
Apple Podcasts, Spotify, every app | Episode files |
Files over https that answer byte-range requests |
Apple Podcasts | Episode file delivery, Byte ranges |
itunes:owner with an email |
Apple Podcasts, for ownership | Owner email |
podcast:guid, podcast:transcript |
Podcast Standards Project | Podcast guid, Transcripts |
Common fixes
Serve the files from a host that supports ranges
Object stores and CDNs do. A script that streams the file through PHP usually does not. The sign is a 200 instead of a 206 to a Range request.
Export the artwork at 3000 by 3000 pixels
Apple Podcasts refuses a show whose artwork is smaller than 1400 pixels or not square, and it refuses artwork larger than 3000 pixels too.
Set the real file size
A length that does not match the file breaks the download progress in every app and stops some downloads short.
Say whether the show is explicit
A missing flag is read as not explicit, which is the wrong answer for half the shows.
Frequently asked questions
What does Apple Podcasts require of a feed?
A well-formed RSS 2.0 feed over https with a title, a description, a language, an itunes:image of 1400 to 3000 pixels square, at least one itunes:category, an itunes:explicit flag, and an enclosure with a size and a type on every episode, served from a host that answers byte-range requests. The report checks each of these.
Why do byte ranges matter?
Every podcast app seeks inside an episode and resumes interrupted downloads with HTTP range requests. A host that answers a Range request with the whole file makes seeking impossible, and Apple Podcasts refuses the feed. The report sends a two-byte range request to the newest episodes and shows what came back.
Does the validator check Podcasting 2.0 elements?
It reports the ones the Podcast Standards Project recommends, which are podcast:guid, podcast:transcript and the locked flag. Missing ones are notes, not errors, because the directories do not require them yet.
Why does the report also show delivery, document and items sections?
A podcast feed is an RSS feed first. The server has to answer, the XML has to parse and the items need stable ids and dates before any app shows an episode. Those sections are the same checks the RSS feed validator makes.
Is the podcast validator free?
Yes. It is free and needs no account. Inoreader also plays podcasts, so you can follow the feed and listen to it next to everything else you read.
Related features
Podcasts
Listen to podcasts in your RSS reader
Find RSS feeds to follow
Find the sources worth following
YouTube
Follow YouTube channels in your RSS reader
Text-to-speech
Listen to any article