CheckMyFeed
Checks a podcast feed (a raw XML string) against RSS 2.0 and the Apple Podcasts
requirements, and reports what falls short. Every rule has an id, a severity
(:error, :warning or :info), an explanation and a link to the
specification it comes from.
The library never fetches anything and never fixes up the feed before looking at it: what it sees is exactly what a podcast app would get. It only checks what the feed text itself shows, so it does not download artwork or media to verify pixel sizes, file types or loudness.
Installation
def deps do
[
{:check_my_feed, "~> 0.1.0"}
]
end
Usage
{:ok, report} = CheckMyFeed.check(xml)
for finding <- report.findings do
IO.puts("[#{finding.severity}] #{finding.rule_id}: #{finding.detail}")
end
# rules that were checked and passed
Enum.map(report.passed, & &1.id)
CheckMyFeed.check/1 returns {:error, {:invalid_xml, reason}} if the
document cannot be parsed at all.
License
AGPL-3.0-or-later, see LICENSE.