OP3 (Open Podcast Prefix Project) is a free, open-source podcast analytics service committed to open data and listener privacy. This plugin integrates OP3 with any WordPress podcast site in minutes.
What it does
- Automatic feed prefix — Adds
https://op3.dev/e/before every audio enclosure URL in your RSS feed. Works with PowerPress (Blubrry), Seriously Simple Podcasting, Podlove, and any plugin that generates a standard RSS2 podcast feed. - Dashboard widget — Shows your podcast’s downloads for the last 7 days directly on the WordPress dashboard.
- Statistics page — A dedicated admin page with download counts per episode, switchable between last 24 hours, 7 days, and 30 days.
- Private podcast support — Podcasts behind a restricted/password-protected feed (e.g. with Restrict Content Pro) get their own self-hosted download-tracking endpoint instead of the OP3 prefix, since OP3 cannot access authenticated feeds by design. Statistics for private podcasts are calculated from your own database and shown alongside your public podcasts.
- Apps & devices breakdown — See which podcast apps (Spotify, Apple Podcasts, Overcast…) your listeners use, for both public and private podcasts.
- Country map — A world map colored by download volume, plus a ranked country list, for both public and private podcasts (private podcasts require a free MaxMind GeoLite2 license key).
- Custom date range — Pick any ”from/to” range for your stats, in addition to the quick 24h/7d/30d tabs.
- Best time to publish — Charts showing downloads by hour of day and by weekday, in your site’s own timezone.
- Unique listeners — A deduplicated listener count, for both public and private podcasts.
- Audience overlap — When two or more podcasts are shown together, see how many listeners they share, as a matrix and a ranked list. Public podcasts are compared against public podcasts, and private against private — see the FAQ below for why they’re never mixed.
- Download alerts — Get an email when an episode (published more than 14 days ago) has an unusual spike or drop in downloads compared to the previous week. Configured in a dedicated OP3 Analytics → Alertas page, with its own history log.
How the OP3 prefix works
OP3 is a transparent redirect service. When a listener downloads an episode:
- Their app requests
https://op3.dev/e/yoursite.com/episode.mp3 - OP3 logs the download anonymously and immediately redirects to
https://yoursite.com/episode.mp3 - The audio file is served normally from your server
Your audio files are not modified or hosted anywhere else. Only the URL in the RSS feed changes. Listener privacy is protected — OP3 never stores raw IP addresses.
Why OP3?
- 100% free and open source — no subscription, no lock-in
- No signup required to start measuring — just add the prefix
- Open data — your stats are publicly accessible to anyone, including app developers
- Privacy-first — no raw IPs stored, no tracking pixels
- Every show automatically gets a free public stats page at
op3.dev/show/{uuid}
Requirements
- A WordPress site with a podcast RSS feed
- A bearer token from op3.dev/api/keys for statistics (the feed prefix works without one)
External Services
This plugin connects to two external services. Both are optional in the sense that the plugin’s core feature (the feed prefix) works without any account, but statistics require them.
OP3 (op3.dev)
Used for public podcasts: the feed prefix and the statistics API.
- What it’s for: Adds an anonymous download-tracking prefix to your public podcast feed enclosures, and retrieves the resulting download counts, per-episode data, apps/devices, and country/region breakdown for the Statistics page and Dashboard widget.
- What is sent and when: When a listener downloads a podcast episode, their request passes through
op3.devbefore reaching your audio file — OP3 logs anonymised request data (no raw IP addresses are stored by OP3). Separately, when you view the Statistics page or Dashboard widget, the plugin makes an authenticated request to the OP3 API (op3.dev/api/1/) using your bearer token to retrieve this data. No personal data from your WordPress site (user accounts, post content, etc.) is sent to OP3. - Service URL: https://op3.dev
- Terms of Service: https://op3.dev/terms
- Privacy Policy: https://op3.dev/privacy
MaxMind GeoLite2 (optional, private podcasts only)
Only used if you mark a podcast as private AND enter a MaxMind license key in the plugin settings. Public podcasts never use this service (they already get country data from OP3).
- What it’s for: Resolves the country of a private podcast’s listeners from their IP address, using a local country-ranges database built from MaxMind’s free GeoLite2 data.
- What is sent and when: Once (and periodically, weekly, to keep the data current), the plugin downloads the GeoLite2 Country CSV database from MaxMind’s servers using your license key. No visitor data is ever sent to MaxMind — the lookup happens entirely on your own server against the locally stored database, and the raw IP address is never stored, only a country code and a daily-rotating salted hash used to deduplicate listeners.
- Service URL: https://www.maxmind.com
- Terms of Service: https://www.maxmind.com/en/end-user-license-agreement
- Privacy Policy: https://www.maxmind.com/en/privacy-policy
Privacy Policy
No data is collected from your site’s visitors beyond what is described in the External Services section above. IP addresses are never stored in raw form by this plugin — only a daily-rotating salted hash (for private-podcast unique-listener deduplication) and, when GeoLite2 is configured, a resolved country code.
Credits
The world map used in the country statistics (admin/img/world-map.svg) is based on ”Simple SVG World Map” by Fritz Lekschas, editing original artwork by Al MacDonald, licensed under CC BY-SA 3.0.
