Description
StreamSera puts your radio station on your own website. Add your stream, design a player in your colors and place it anywhere – no code needed. Listeners see the song that’s playing, and you manage every station from one screen in your WordPress admin.
It works with the stream you already have: Icecast, Shoutcast, HLS and MPEG-DASH, from hosts such as AzuraCast, Radio.co, Zeno.FM or your own server.
Quick tour
Station manager
Run one station or a whole network from one place.
- Every station at a glance. See what each station is playing, how many people are listening (when your server reports it), which streams are on air and which need attention.
- Find and tidy up fast. Search by name, genre or city, filter by on air, needs attention or drafts, and publish, duplicate, move to draft or delete several stations at once.
- Backup streams. Give a station extra stream addresses; players switch over when the main one drops. Check any stream from the editor with one click.
- Song titles from the right place. StreamSera detects your server type and reads now playing from Icecast and Shoutcast status pages, or from inside the stream itself for hosts without a status page.
- Live status your way. Mark a station live or off air by hand, with a message for listeners.
- See where it’s used. Each station shows which players use it, and its page, card and now-playing shortcodes are ready to copy.
A player that looks like your station
- 5 layouts – card, hero, compact, a single “Listen live” button and a station shelf – and 5 styles in light, dark or following the visitor’s device.
- Your brand – colors, logo, font and rounded corners, with only the parts you want shown. You hear your real stream while you design it.
- Station switcher – let listeners change channel inside one player.
- Off-air fallback – loop a standby track or show a message like “Back on Monday at 8” until the live stream returns.
- Phone friendly – lock-screen and headset media controls where supported, and the player remembers each listener’s volume.
- Accessible – keyboard controls, screen-reader labels, dark mode and right-to-left language support.
Pages your listeners can bookmark
- Listen page – a full-screen player with share buttons and a station switcher. It opens in its own tab, so the music keeps playing while visitors browse your site.
- Station pages and directory – every station gets its own page, and a directory lists them all with search and genre filters.
- External players – playlist links (.m3u and .pls) for apps such as VLC.
- On-air graphics – a transparent now-playing overlay for OBS and vMix, and a plain-text feed for studio screens and signage.
- Share anywhere – paste a station page link into another WordPress site and it shows the player.
Works with your site
- Block editor – Player, Now playing, Listen button, Station and Station list blocks, plus ready-made patterns for a hero player, a sidebar box and a station landing page.
- Page builders – native widgets and modules for Elementor, Divi 4 and Divi 5; a Player element for Beaver Builder and Bricks; shortcodes for Breakdance, Oxygen and any other builder.
- Shortcodes and classic widgets –
[streamsera id="12"],[streamsera_now_playing],[streamsera_listen_button],[streamsera_station]and[streamsera_stations]. - Any theme, classic or block, on single sites and multisite networks.
Easy to run
- Setup wizard – paste your stream link and get a working station and player in a few minutes.
- Dashboard – which stations are on air, what’s playing and what to set up next, with notices when something needs attention (for example a stream that won’t play on a secure site).
- Light on your stream server – your website checks what’s playing on a timer (every 15 seconds by default) and shares it with every listener, instead of every visitor asking your server.
- Export and import – move stations, players and settings to another site.
- Private by default – no WPSera analytics, no listener tracking, no cookies of its own. See External services and Privacy below.
Who it’s for
Internet and community radio, college and student stations, station networks with several channels, DJs and live shows, churches, mosques and community groups broadcasting live, and venues or event organizers with an audio stream.
Need more?
StreamSera Pro adds a show schedule with hosts, song requests and shout-outs, private listening statistics, a sticky player that can keep playing across pages, playlists and podcasts, recently played tracks, artwork lookup and more. Everything described above is free.
For developers: WP-CLI commands (wp streamsera), a REST API, PHP filters and a JavaScript API. See the FAQ for details.
External services
StreamSera does not call any service run by WPSera. It connects only to the services listed below.
1. Your stream server (the radio station’s streaming host)
- What it is and why: the Icecast, Shoutcast, HLS or DASH server whose stream addresses you enter for each station. It is needed to play the stream and to show the current song and listener count.
- When and what is sent:
- When a visitor presses play, the visitor’s browser requests the stream (and, for HLS/DASH, the media segments and timing address named in the stream’s manifest). The stream server receives the visitor’s IP address, browser user agent and normal request headers.
- About once a minute for each published station (while Keep it fresh when nobody listens is on, the default), while listeners are playing a station, and when you press “Detect” in the station editor, your WordPress server requests the stream’s status page or reads the first few kilobytes of the stream to get the song title. With Keep it fresh when nobody listens turned off, this only happens while someone is listening. The stream server receives your website server’s IP address and normal request headers. No visitor data is sent.
- Terms and privacy: the stream server is chosen by you and run by you or your streaming provider (for example AzuraCast, Radio.co, Zeno.FM or your own Icecast server), so its own terms of service and privacy policy apply. Check them with your provider.
2. Share buttons (X, Facebook, WhatsApp)
- What it is and why: the listen page and station pages show plain links that let a visitor share the page.
- When and what is sent: nothing is loaded from these sites when the page loads. Only when a visitor clicks a share link does their browser open the service, which receives the shared page address and title and the visitor’s normal browser data.
- X: terms of service, privacy policy.
- Facebook (Meta): terms of service, privacy policy.
- WhatsApp: terms of service, privacy policy.
All plugin scripts, styles and icons are served from your own site. The bundled hls.js and dash.js libraries contain web addresses such as XML namespace identifiers (for example http://schemas.xmlsoap.org/soap/envelope/); these are names inside the code and are never requested. dash.js’s default time server (time.akamai.com) is turned off; clock sync uses the stream’s own manifest or server.
The optional “Powered by StreamSera” link on players is off by default and only appears if you turn it on in Settings.
Privacy
StreamSera does not record listeners: it stores no IP addresses, user names or cookies of its own, and keeps no listening statistics. To show what’s playing, your site caches metadata reported by your stream server. Stream providers and your hosting server may independently keep request logs.
StreamSera keeps a few listener preferences in the browser’s local storage, such as the volume. None of it is sent to your server or anyone else.
Credits
StreamSera bundles these open-source libraries:
Screenshots










Blocks
This plugin provides 3 blocks.
- Listen Button A call-to-action that opens the listen page or plays the player on the page.
- StreamSera Player Embed a StreamSera radio player.
- Now Playing The current track with artwork, refreshing live.
Installation
- In your WordPress admin go to Plugins Add New Plugin, search for “StreamSera” and click Install Now, then Activate. Or upload the
streamserafolder to/wp-content/plugins/and activate it on the Plugins screen. - After activation the setup wizard opens. Paste your stream URL: StreamSera checks it, detects the server type and creates your first station and player.
- To do it by hand: go to StreamSera Stations, add a station with its stream URL, then StreamSera Players to design a player in the builder.
- Add the player to a page with the StreamSera Player block, a page-builder widget or the shortcode shown in the builder (for example
[streamsera id="12"]), or turn on the listen page under StreamSera Settings General.
Requirements
- WordPress 6.6 or newer, PHP 7.4 or newer.
- A stream URL from an Icecast, Shoutcast, HLS or DASH server. If your site runs on HTTPS, the stream should be HTTPS too, otherwise browsers block it.
FAQ
-
Can I run several stations?
-
Yes, as many as you like. Each station has its own streams, logo, now-playing source and page. The station manager lists them all, a single player can switch between them, and the station directory shows them to your listeners.
-
Does it work with AzuraCast, Radio.co, Zeno.FM or Shoutcast hosting?
-
Yes. Paste the stream address your host gives you. StreamSera detects Icecast and Shoutcast servers for song titles, and reads the title from inside the stream for hosts that have no status page.
-
Which streaming servers are supported?
-
Supported formats depend on the listener’s browser and codecs: MP3, AAC and Ogg/Opus over HTTP(S), plus HLS (
.m3u8) and MPEG-DASH (.mpd), which load extra support only when a station uses them. If the connection drops, the player reconnects on its own. Now-playing information (song, artist, listener count) is read from Icecast 2 and Shoutcast 1/2 servers, and the song title from inside the stream itself for hosts without a status page (Zeno, SurferNetwork and many others). -
The player shows “Can’t play this stream” on my HTTPS site.
-
Browsers refuse to play an
http://stream on anhttps://page (mixed content). Ask your host for the HTTPS address of the stream (often port 443 or a/streampath on the same host). The dashboard shows a notice for every station with an insecure stream. -
Why does now playing take a few seconds to update?
-
To protect your stream server, metadata is fetched by your WordPress site in the background, cached and shared by every listener. The interval is set under StreamSera Settings Streams & now playing Track info refresh (15 seconds by default). While at least one station is published, a light WP-Cron job runs every minute and only contacts stream servers whose cached data has expired; turn off Keep it fresh when nobody listens on the same screen to fetch only while someone is listening.
-
Will the music stop when a listener clicks a link?
-
The listen page opens in its own tab, so it keeps playing while the visitor browses.
-
Does StreamSera work with my theme and page builder?
-
The player and blocks work with classic and block themes. StreamSera includes native elements for Elementor, Divi 4 and Divi 5, a Player element for Beaver Builder and Bricks, and its shortcodes work in Breakdance, Oxygen and any other page builder.
-
Does StreamSera track listeners?
-
StreamSera does not collect listening statistics or send analytics to WPSera. Player scripts and fonts are served locally. Your configured stream provider receives network information when a listener connects, and may have its own logging practices. StreamSera adds suggested privacy-policy text to Settings Privacy Policy Guide. See External services and Privacy below.
-
How do I remove all data when I delete the plugin?
-
Turn on StreamSera Settings Access & data Danger zone Remove all data when the plugin is deleted. When the plugin is deleted, stations, players, saved skins and settings are removed. With the setting off, your content stays so you can reinstall without losing it.
-
Where is the source code, and how do I build it?
-
The complete, human-readable source of everything in
build/ships with the plugin:assets/src/– the TypeScript/TSX source of the admin app, player, blocks and page-builder elements, and the SCSS source of every stylesheet.package.json,package-lock.json,webpack.config.jsandtsconfig.json– the build configuration. The build uses @wordpress/scripts (webpack).
To rebuild
build/from the source, install Node.js 20.19 or newer, open the plugin folder in a terminal and run:npm ci npm run build npm run start rebuilds automatically while you edit. The stylesheets and scripts of the stand-alone pages (`assets/css/`, `assets/js/`), the Divi 5 Visual Builder script (`assets/divi5/visual-builder.js`) and the Divi module definitions (`divi5/`) are not compiled; they are their own source.The streaming libraries hls.js and dash.js are installed from npm (
hls.jsanddashjsinpackage.json) and bundled intobuild/hls.jsandbuild/dash.jsby the same build. Their source code is in the linked repositories; versions and licenses are listed under Credits. -
Is there a Pro version?
-
Yes. StreamSera Pro is a separate add-on with schedules, requests, statistics, a sticky player, playlists and more. The free plugin works fully on its own and is not limited in time or in the number of stations.
-
Is there a command line or an API?
-
Yes. WP-CLI:
wp streamsera station(includingimport-csvfor a CSV withtitleandstream_urlcolumns, optionallyslogan,website,genreandlogoas a Media Library ID),wp streamsera player,wp streamsera cache,wp streamsera health check,wp streamsera exportandwp streamsera settings. There is also astreamsera/v1REST API, PHP filters for layouts, skins, page elements and metadata sources, and awindow.StreamSeraJavaScript API.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“StreamSera – Live Radio Player & Station Manager” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “StreamSera – Live Radio Player & Station Manager” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
0.1.0
- Initial release.
