Brainstorm Cafe Podcast Player

Brainstorm Cafe Podcast Player turns a public podcast RSS feed into a polished, searchable episode library for your WordPress website. A customizable, responsive podcast player for WordPress with a shared full-width audio player, optional sticky controls, three layouts, light and dark themes, transparent mode, episode search, season filtering, display controls, subscription links, Podcasting 2.0 transcripts and chapters, block and shortcode support, and no analytics or paid features.

Add your podcast feed, choose a theme and layout, decide which feed details to display, and place the player anywhere using the WordPress block or shortcode. Episodes continue to be hosted by your existing podcast provider, so there is no need to recreate or upload them to WordPress.

The integrated audio player displays the complete episode title above full-width playback controls. Listeners can play or pause episodes, seek through the audio, adjust the volume, mute playback, and change the playback speed. An optional compact sticky player keeps those controls accessible as visitors browse the page.

Choose between light and dark themes, three responsive layouts, or a transparent outer background that blends into your website. Search and season-filter controls are styled to match the selected theme, while the sticky player remains opaque and readable even when transparent mode is enabled.

Free forever—without catches

Brainstorm Cafe Podcast Player is free and will always remain free.

There is no premium edition, feature paywall, recurring subscription, license key, required account, advertising, or limited trial. Updates and new features are available to everyone.

The plugin is open-source software released under the GPLv2-or-later license.

Features

Integrated audio player

  • Professional custom play and pause controls
  • Complete episode title displayed above the player
  • Full-width seek bar
  • Elapsed and total playback time
  • Volume slider and mute control
  • Multiple playback speeds
  • One shared player for the entire episode library
  • Optional compact sticky player
  • Opaque sticky controls for reliable readability
  • Native browser audio controls as a no-JavaScript fallback
  • Responsive design for phones, tablets, and desktops
  • No autoplay

Episode browsing

  • Instant episode search
  • Theme-matched search field and season selector
  • Season filtering when season information is available
  • Progressive “Show more episodes” browsing
  • Configurable number of visible and available episodes
  • Expandable show notes
  • Professional SVG icons that do not depend on the active theme’s fonts
  • Protection from conflicting WordPress theme form and link styles

Themes and layouts

  • Light theme
  • Dark theme
  • Transparent outer background
  • List layout
  • Card layout
  • Compact layout
  • Site-wide appearance defaults
  • Per-block and per-shortcode appearance overrides
  • CSS custom properties for advanced customization
  • Built-in CSS customization guide

Feed display options

Individually show or hide:

  • Podcast artwork
  • Podcast description
  • Episode artwork
  • Expandable episode notes
  • Publication dates
  • Episode durations
  • Season and episode numbers
  • Podcast and episode authors
  • Explicit-content labels
  • Episode webpage links
  • Podcasting 2.0 transcripts and captions
  • Podcasting 2.0 chapters
  • Listen and subscribe links

Missing optional feed information is omitted automatically.

Podcasting 2.0 support

  • Transcript and caption links supplied through podcast:transcript
  • On-demand chapter files supplied through podcast:chapters
  • Interactive chapter markers that seek to the appropriate playback position
  • Chapter data is loaded only after a listener requests it
  • Direct chapter-file fallback when interactive loading is unavailable

Podcasting 2.0 features appear only when the podcast feed provides the corresponding information.

Listen and subscribe links

Add optional links for:

  • Apple Podcasts
  • Spotify
  • YouTube
  • The podcast RSS feed
  • Two custom destinations of your choosing

Only links with a configured URL are displayed.

WordPress integration

  • Dedicated Podcast Player section in the WordPress dashboard
  • One site-wide podcast feed
  • Dynamic Brainstorm Cafe Podcast Player block
  • Primary [brainstorm_cafe_podcast_player] shortcode
  • Backward-compatible [simple_podcast_player] and [podcast_feed_player] shortcode aliases
  • Optional feed override for individual blocks or shortcodes
  • Per-embed theme, layout, visibility, browsing, and Podcasting 2.0 overrides
  • Saved-settings preview
  • Built-in shortcode documentation
  • Built-in CSS customization documentation
  • Manual feed-cache refresh
  • Settings preserved during uninstall by default
  • Optional complete settings cleanup

Privacy-minded by default

  • No plugin analytics
  • No advertising
  • No tracking pixels
  • No external fonts
  • No third-party JavaScript
  • No Brainstorm Cafe account
  • No license server or subscription service
  • Search, filtering, pagination, and playback controls run in the visitor’s browser

WordPress retrieves the podcast RSS feed, while audio, artwork, transcripts, and chapters are delivered by the hosts selected by the podcast publisher.

Changelog

Version 1.6.0

This release expands the original compatibility-only update into playback improvements, optional local resume, and fixes across feed parsing, settings, accessibility, multisite cleanup, and documentation. The wider feature scope warrants 1.6.0 rather than another 1.5.x maintenance version.

New listening controls

  • Added 15-second rewind and 30-second forward buttons beside Play/Pause, with SVG icons and accessible labels.
  • Skip controls remain disabled until a usable duration is available. Seeking is clamped to the episode’s start and end.
  • Added Resume where listeners left off in dashboard settings, a block override, and the shortcode attribute resume="yes" or resume="no".
  • Added a listener-facing Clear saved progress button for each podcast. Other embeds of the same feed on the page honor the clear operation, including pending restores.

Playback and sticky-player reliability

  • Added visible failure feedback and an Open audio file recovery link. The link follows the selected episode.
  • Added clearer ready, playing, paused, loading, and finished states.
  • Retained the selected playback speed when changing episodes and receiving new media metadata.
  • Chapter playback starts directly from the listener’s gesture while metadata loads, improving compatibility with browsers that restrict delayed playback.
  • Multiple player embeds now leave one active sticky player and pause the other audio streams.
  • Dismissing sticky mode moves keyboard focus to the main playback control.
  • Kept the opaque sticky surface when the outer player uses transparency.

Chapters and feed handling

  • Tightened chapter URL handling to absolute HTTPS URLs without embedded credentials.
  • Invalid chapter timestamps—including null, blank, negative, and non-finite values—are ignored. Chapters marked toc: false remain hidden. At most 250 visible chapters are rendered in time order.
  • Chapter loading failures leave a retry control and the existing direct chapter-file link available.
  • Chapter labels continue to be rendered as text. Requests omit cookies and a referrer; files are fetched only when requested.
  • Updated the normalized-feed cache schema, causing the corrected data to rebuild without a manual settings migration.
  • When a block or shortcode selects another podcast feed, it no longer inherits the primary podcast’s Apple Podcasts, Spotify, YouTube, or custom destination links. The RSS link uses the selected feed.

Browsing, accessibility, and presentation

  • Made search accent-insensitive, so a search such as cafe can match Café.
  • Added visible Showing X of Y episodes feedback with a screen-reader status region.
  • Respect reduced-motion preferences when scrolling to newly revealed episodes.
  • Added styles for the transport group, resume controls, and playback feedback.
  • Made narrow columns and block embeds respond to their actual available width. This fixes crowded desktop-column headers and controls while preserving fixed sticky positioning.
  • Improved long-description wrapping, image sizing, and scrollable preformatted content.
  • Retained light/dark themes, transparent outer surfaces, and existing list, cards, and compact layouts.

Settings and administration

  • Hardened settings sanitization against arrays or other unexpected compound values where scalar values are expected.
  • Normalized malformed saved options before use, including booleans, selection values, episode limits, URLs, and custom-link labels.
  • Filtered unsupported compound shortcode/block override values before casting them.
  • Added localized clipboard success and failure feedback in the dashboard guides, with fallback copying when the Clipboard API is unavailable or denied.
  • Preserved keyboard focus while copying, instead of disabling the focused control.

Multisite and compatibility

  • Fixed uninstall cleanup to visit networks larger than 100 sites by processing site IDs in ordered batches.
  • Continue to respect each site’s own cleanup setting and restore blog context after each site. Sites with cleanup disabled retain their settings.

Documentation and licensing

  • Expanded the readme feature list, privacy explanation, shortcode reference, block options, feed-override behavior, changelog, and upgrade notice.
  • Updated the CSS customization reference with the current selectors and surface variables.
Version 1.4.3

Renamed the four global PHP constants with the complete plugin prefix.
Updated every reference throughout the plugin..

Version 1.4.1

First public release.

Previous Versions