show.fm hosts podcasts. This plugin brings a show.fm show into WordPress.
Blocks for any public show, with no account
Each block previews the real player in the editor. Type the show’s address, then pick an episode or “Latest episode”. The same elements are available as the [showfm] shortcode, and a pasted show.fm link becomes a player.
Publish to WordPress, for show.fm accounts
Connect the site to show.fm in Settings > show.fm and each new episode becomes a post: scheduled episodes are scheduled, unpublished ones go back to draft and deleted ones go to the bin. You choose the post type, category, author and template, and whether to add the transcript and use the episode artwork as the featured image. Posts you edit in WordPress keep your edits.
Move from another podcast host
The Migrate tab finds players from Buzzsprout, Libsyn, Captivate, Transistor, Spotify, Podbean, PowerPress and Seriously Simple Podcasting in your posts and pages. It shows a dry run first, and swaps them for show.fm blocks only when you confirm. WordPress keeps a revision of every post it changes.
Built for WordPress
wp showfm connect, status, disconnect, sync, cache flush and migrate-embeds.Source code
The plugin’s source and build instructions are on GitHub at ShowDotFM/showfm-wordpress. The block editor scripts in build/ are compiled from src/ there with @wordpress/scripts. The player scripts in assets/showfm-embed/ are copied unchanged from the MIT-licensed @showfm/embed 1.6.2 package, and a test checks every file byte for byte. The package’s MIT licence is in assets/showfm-embed-license.txt. With “Load players only after a visitor clicks” on, the plugin loads the package’s self-hosting click loader (click-loader-local.js) instead of the player script. It names no host: it loads only the bundled v1.js the plugin gives it, after a visitor presses a block, and without that it does nothing. The package’s CDN click loader is not in the plugin, and a release check fails if any script in the plugin names embed.cdn.media.
This plugin connects to show.fm, a podcast hosting service run by show.fm Ltd. It sends nothing until you add a show or an episode to a page, paste a show.fm link, or connect the site to show.fm. It collects no analytics or telemetry. show.fm’s Terms of Service and Privacy Policy apply to every service below.
A site’s own code can point the plugin at a different show.fm environment for testing, with the showfm_environment filter. The plugin then uses that environment’s hosts instead of the ones below, and sends the site key only to that environment’s API.
Gives the titles, descriptions, artwork, audio links and transcript links of public shows and episodes.
Used only after an administrator connects the site to a show.fm account.
wp showfm connect, the plugin sends the site key you give it, the site’s address and REST API address, and a one-time state and challenge.wp showfm sync. Sent: the site key and the last change the site applied. After each post is created, published or moved to the bin, the plugin reports the episode ID, post ID, post address, post status and the content hash show.fm sent for that post, so show.fm knows which version the post holds. No post text and no visitor data are sent./wp-json/showfm/v1/challenge once to confirm the site asked to connect. The site answers with the one-time challenge only./wp-json/showfm/v1/ping when an episode changes. The plugin checks the signature, then syncs in the background.Serves the artwork, audio and transcript files of show.fm shows and episodes. media.podcasterplus.com is show.fm’s older media host, which some older episodes still use.
The Player loads the episode’s details from api.show.fm and its artwork as soon as it appears, the audio when the visitor plays it, and the transcript file when the visitor opens the transcript (or as soon as it appears, if the transcript is set to open). The Episode list loads the show’s episode details from api.show.fm and each episode’s artwork as soon as it appears, the audio when the visitor plays an episode, and that episode’s transcript file when the visitor opens its transcript. The Play button loads the episode’s details from api.show.fm as soon as it appears, and the audio and artwork when the visitor plays it. The Transcript loads the episode’s details from api.show.fm and the transcript file as soon as it appears. Artwork, audio and transcript files come from m.cdn.media, or media.podcasterplus.com for some older episodes. With “Load players only after a visitor clicks” turned on, each block first shows a button (“Play podcast episode”, “Load episodes” or “Load transcript”), and nothing is requested from show.fm until the visitor presses it. The block then makes the requests above. Each request shows show.fm the visitor’s IP address and browser details, as with any web request.
Not used. The plugin’s own code never loads anything from a CDN: the player scripts ship inside the plugin, and the click loader loads only the bundled copy. show.fm embeds in pasted links are always replaced with the plugin’s local player, or with a plain link to the show.fm page when the plugin can’t play them locally.