Generate a podcast episodes plugin
Hosting a podcast on WordPress is a well-trodden path, but the defaults (Seriously Simple Podcasting, PowerPress) either push you toward their paid hosting or expose more settings than you need.
A dedicated plugin gives you the three things that matter: an episode CPT, a Podcasting 2.0-compliant RSS feed for Apple/Spotify, and an on-site audio player that tracks listens.
Why generate it instead of installing an existing plugin?
PowerPress is free but its settings panel is overwhelming. Seriously Simple Podcasting nudges you to Castos hosting. Libsyn-style SaaS charges monthly.
A generated plugin registers acme_episode with mp3_url, duration, season, episode number, transcript. An RSS feed at /feed/podcast is generated with iTunes/Podcasting 2.0 tags. The on-site player is HTML5 audio with a custom skin; playback events POST to a listens table for your own analytics.
If you store the MP3s on DO Spaces or S3 (recommended for bandwidth), the plugin accepts direct URLs — no upload through WordPress needed.
Example prompt
This is the kind of description that generates this plugin. You can start from it and tweak whatever you need before hitting generate.
Plugin name: Acme Podcast
Episode CPT acme_episode with fields:
- mp3_url (required, can be external like DO Spaces)
- duration (HH:MM:SS)
- season (int), episode (int)
- explicit (bool)
- transcript (textarea, markdown)
- guests (comma-separated string)
Show-level settings (options): show title, description, cover art (3000x3000), category (iTunes list), language, owner name + email, explicit default.
RSS feed at /feed/podcast with:
- <itunes:image>, <itunes:category>, <itunes:explicit>
- <itunes:duration> per item
- <podcast:transcript> with URL to /podcast/episode-slug/transcript.txt
- <enclosure> pointing at mp3_url
Shortcode [acme_player] renders an HTML5 player with: play/pause, scrubber, 15s back/forward, 1x/1.5x/2x speed.
Listens tracking: player posts {episode_id, event: "play"|"complete"} to /wp-json/acme/v1/listens. Store in a table.
Admin analytics: plays per episode, last 30 days.What the generated plugin typically includes
- Episode CPT with audio metadata
- Podcasting 2.0-compliant RSS feed
- On-site HTML5 player with speed control
- Listens tracking endpoint + analytics view
- Transcript route per episode
- Show-level settings page
RSS fields, player controls, and analytics depth are defined in the prompt. For monetization (donations, premium episodes behind membership), add that context and the plugin ships the gating.
Frequently asked questions
Will Apple accept the feed?
As long as the show-level fields are populated and the MP3s are direct URLs with proper Content-Type. The feed passes the Apple Podcasts validator out of the box.
Can I migrate from Anchor/Libsyn?
Yes. Import existing MP3 URLs as episodes; the new RSS picks them up. Redirect the old feed URL to the new one with a 301.