Uploading episode audio files to VeloCMS
Upload MP3, M4A, or AAC episode audio from the post editor's Podcast tab, set duration and episode numbers, and verify the player and RSS feed.
Podcast episodes in VeloCMS are ordinary posts with audio attached. The post editor has a dedicated Podcast tab in its settings panel — upload your episode audio there and the built-in audio player renders automatically on the public episode page, with play, pause, seek, and volume controls.
Step 1 — Upload the audio file in the Podcast tab
Open your episode in the post editor and switch to the Podcast tab in the settings panel. Click Choose File and pick the episode audio — MP3, M4A, or AAC. The Media Library (Admin > Media) is for images, documents, and video; audio uploads always go through this tab.
- Accepted formats: .mp3, .m4a, .aac
- Duration is entered as text in HH:MM:SS format — e.g. 01:23:45
- Episode number and season number have their own fields in the same tab
- Externally hosted audio works too — paste any HTTPS audio URL instead of uploading
Uploaded audio files are stored on R2 object storage and served over HTTPS, so they stream reliably to listeners without any extra setup.
Step 2 — Check the Audio URL field
When the upload finishes, the Audio URL field in the same tab is filled in automatically — no copying needed. If you host your audio externally (Buzzsprout, Transistor, or another podcast host), paste the episode's direct audio URL into this field instead.
Step 3 — Set duration and episode numbers
Below Audio URL, enter the Duration as text in HH:MM:SS format (01:23:45 for a 1-hour-23-minute episode), plus the Episode Number and Season Number. These populate the iTunes-compatible RSS feed at /podcast.xml, which podcast apps like Apple Podcasts, Spotify, and Overcast read. There is no file-size field — VeloCMS doesn't ask for one.
Step 4 — Publish and verify the player
Publish the post, then visit the episode page on your public blog. You should see the audio player rendered on the episode page, above the show notes body — play/pause, a seek bar, a time counter, and volume control. If the player is missing, check that the Audio URL field is non-empty and starts with https://.
- Player missing: confirm the Audio URL field is non-empty and starts with https://
- The episode page renders on your public blog at its usual /blog/ URL
- Hard-refresh the published page if you just attached the audio
Step 5 — Verify the RSS feed
Your podcast feed lives at yourblog.velocms.org/podcast.xml and refreshes itself every few minutes. Open it in a browser to confirm your episode appears with its audio enclosure, then submit that URL to Apple Podcasts Connect and Spotify for Podcasters to list the show.
HTTP (non-HTTPS) audio URLs will be blocked by browsers due to mixed-content policy. Always use the HTTPS version of your audio file URL.
Troubleshooting
- Player not visible: confirm the Audio URL field is filled in and starts with https://, then hard-refresh the published page.
- Audio will not play: open the audio URL directly in a private browser tab — if it doesn't stream there, the URL is wrong or the upload didn't finish.
- Episode missing from the feed: confirm the Audio URL field is filled in — the feed is at yourblog.velocms.org/podcast.xml and refreshes every few minutes.
- Duration looks wrong: the field expects HH:MM:SS text — enter 01:01:00, not 3660.