Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Checking your feed

How to check a podcast feed of Exponential yourself - in the browser, in the RSS list, and on the command line with curl - covering the headers, the channel, every episode's enclosure, Range requests, caching and the…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/podcasters/checking-your-feed.md

On this page

Checking your feed

This page is for producers and administrators who want to be sure a podcast feed is right before a directory or a listener finds out it is not. Run these checks after building the feed, after changing an export, and after any change to the site's host name, HTTPS or proxy.

Contents

  1. In the RSS list
  2. In the browser
  3. On the command line
  4. The episodes
  5. When a change does not show
  6. Checklist

In the RSS list

Setup > RSS shows a card per export (RSS feeds). Check:

  • Active, and the format Apple Podcasts (RSS 2.0 + iTunes);
  • Feed address: the public host, https://, then /rss/feed/<access URL>;
  • Sources: the show folder, the episode class, no "(missing)";
  • no Needs attention marker. It lists a missing address, no source, or a source that no longer exists.

In the browser

Open the feed address in a private window, so you see it as a visitor does. Most browsers show the XML or offer to download it; use "view source" if needed. Look for:

  • <rss version="2.0" ...> with the itunes namespace;
  • the channel's title, description, itunes:image href="...", itunes:category, itunes:owner;
  • one <item> per episode, newest first;
  • in each item an <enclosure url="..." length="..." type="..."/>.

On the command line

The feed is served with Content-Type: application/rss+xml and a Last-Modified header; a request with a matching If-Modified-Since gets 304 Not Modified (kernel/private/classes/views/rss/feed.php).

# headers of the feed
curl -sI https://www.example.com/rss/feed/example-show

# the first lines of the feed
curl -s https://www.example.com/rss/feed/example-show | head -40

# headers of an episode file: size, type, range support
curl -sI "https://www.example.com/content/download/123/456/example-show-042.mp3"

# a range request, as players and apps make it: expect 206 Partial Content
curl -s -o /dev/null -w '%{http_code}\n' -H 'Range: bytes=1024-2047' \
  "https://www.example.com/content/download/123/456/example-show-042.mp3"

Replace the host, access URL and download address with your own; copy the download address from the feed's enclosure url. The file headers come from eZFile::downloadHeaders() (lib/ezfile/classes/ezfile.php): Content-Length, Accept-Ranges: bytes, Content-Disposition and Content-Type.

The episodes

For each new episode compare the feed with the file:

In the feedMust match
enclosure lengththe Content-Length of a full request for the file
enclosure typean audio or video type (audio/mpeg, video/mp4), never application/octet-stream
enclosure urlopens and plays signed out
guidthe same value as last time for an existing episode
itunes:durationpresent for a CBR MP3; may be missing otherwise, which is allowed
linkopens the episode page on the public site

When a change does not show

The feed is cached for settings/site.ini [RSSSettings] CacheTime seconds, 1200 as shipped. The RSS card's Last written says when the cached copy was written. Wait, or ask an administrator to clear the RSS cache:

php bin/php/ezcache.php --clear-id=rss_cache --allow-root-user

Podcast apps and directories also cache feeds on their side, on their own schedule; Exponential cannot make them fetch sooner.

Checklist

  • To do: The feed answers with 200 and application/rss+xml.
  • To do: Addresses use the public host and https://.
  • To do: Artwork address opens the image.
  • To do: Every item has an enclosure with a real type and length.
  • To do: Range requests answer 206.
  • To do: Old episodes kept their guid.
  • To do: No test or draft episode is listed.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x