Packages

Checks a podcast RSS feed against RSS 2.0 and the Apple Podcasts requirements and reports what falls short, with a spec link for every rule.

Current section

Files

Jump to
check_my_feed README.md
Raw

README.md

# 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
```elixir
def deps do
[
{:check_my_feed, "~> 0.1.0"}
]
end
```
## Usage
```elixir
{: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`.