Integrations 8 min read Frederick Written by Frederick
stream now-playing integrations icecast shoutcast azuracast

Connect an Existing Stream to a RadioSiteMaker Website

You do not have to move your station to get a proper website. RadioSiteMaker plays the stream you already have. Your host keeps doing the streaming, automation and playlists. The website is where listeners press play, check the schedule and find your shows, DJs and podcasts.

This page covers what the website needs from your stream host: one stream URL, served over HTTPS. It also explains how the site works out what is playing, because that part depends on who hosts your stream.

RadioSiteMaker is our product. Everything below about how the site reads your stream describes what the software does today.

What a stream URL is

A stream URL is the address of the audio itself, not the address of a page with a player on it. Open it in a browser and you get a bare audio control, or the browser starts downloading. Some typical shapes:

  • https://stream.example.com:8000/live (an Icecast or SHOUTcast mount point)
  • https://radio.example.com/listen/my_station/radio.mp3 (AzuraCast)
  • https://s2.radio.co/s1234abcd/listen (Radio.co)
  • https://play.radioking.io/mystation (RadioKing)
  • https://example.com/hls/my_station/live.m3u8 (HLS playlist)

If your host gives you a .pls or .m3u playlist file, that is a small text file pointing to the real stream. The stream tester below opens it and shows you the address inside, which is the one to use.

Paste the stream URL in Settings → Stream on your RadioSiteMaker dashboard. Leave Stream Type on Auto-detect unless a section below tells you otherwise for your host.

The stream must be HTTPS

Your RadioSiteMaker site is served over HTTPS, so the stream has to be HTTPS too. Browsers treat an http:// stream on an https:// page as mixed content. MDN describes what they do with it: <audio>/<video>/<img> HTTP requests on HTTPS pages are auto-upgraded to HTTPS (blocked if host is an IP address)[1]. If your server has no HTTPS listener, the upgraded request fails, and a stream addressed by a bare IP address is blocked outright.

RadioSiteMaker does not try to work around this. The site's player only hands HTTPS stream addresses to the browser; an http:// stream URL gets an error asking you to switch to HTTPS. Most hosts offer an HTTPS address for the same stream. If yours does not, ask them for one.

Formats

Browsers play standard audio streams in an ordinary <audio> element: MP3 (audio/mpeg) and AAC (audio/aac, audio/aacp) are the safe choices, and Ogg and Opus streams play in most current browsers. HLS (.m3u8) plays natively in Safari, and RadioSiteMaker loads hls.js automatically for other browsers. HLS segments are fetched by JavaScript, so outside Safari the host must send CORS headers on the playlist; the tester checks for them.

Check your URL here. The tester reports reachability, format, bitrate (when the server sends it), HTTPS and whether now-playing data came back, using the same detection a RadioSiteMaker site uses.

Icecast, SHOUTcast, AzuraCast, HLS (.m3u8), .pls/.m3u, Radio.co, RadioKing, Live365 and others. Nothing is stored.

Open the full tool →

How the site finds what's playing

The player shows the current track's title, artist and cover art, and the site keeps a Recently Played list of the last 25 tracks. That information has to come from somewhere. RadioSiteMaker tries these sources in order and uses the first one that produces a track:

  1. RadioHost Studio. If the station is driven by RadioHost Studio (our automation product) or a RadioHost live show is on air, the site reads its structured feed directly: title, artist, uploaded cover art, the show on air and the time the track ends, so the title changes within a second or two of the music.
  2. Your Now Playing URL. If you fill in the Now Playing URL field in Settings, the site reads that first. It understands AzuraCast's now-playing JSON, JSON with artist, title and artwork_url fields, and JSON with a single title in "Artist - Title" form. If the URL fails, the site does not give up: it falls back to the stream (steps 3 to 5) and flags the broken URL on your Settings page. If you paste your audio stream URL into this field by mistake, it is ignored and you see a note saying so.
  3. Your host's own API, when the stream URL shows which host it is (the table below).
  4. The server's status page. For Icecast that is the JSON status page, /status-json.xsl (since Icecast 2.4.0)[2]. For SHOUTcast it is the DNAS 2 stats JSON (/stats?sid=1&json=1 ; all streams: /statistics?json=1[3]), then the older v1 /currentsong page.
  5. ICY metadata inside the stream. As a last resort the site reads the title tags your encoder sends in-band with the audio.

After that, two things are added on top. The show name comes from your RadioSiteMaker schedule: whichever show is in the slot at the current time in your station's timezone. If that slot is set to hide track metadata, the title and artist are blanked and the player shows the show. Cover art: when the source sends none, the site looks the track up in Apple's iTunes Search; if you switch on Hide Song Art, a vinyl placeholder is used instead. Lines that are clearly server log noise rather than song titles are dropped, and the player shows the station name.

Provider by provider

What the site recognises from your stream URL, and where it reads now-playing data. Every row ends in the ICY fallback where noted, so a station keeps its titles when a host's API is down, as long as the stream itself carries them. None of these is an account integration: the site reads public stream and metadata addresses and needs no login to your host.

Host How it is recognised Where now-playing comes from
RadioHost Studio Connected from the Studio side Studio's structured feed (title, artist, cover, show, track end time)
Live365 live365 in the hostname, including CDN edge hosts Live365 station API keyed by the mount in the URL path; Live365's placeholder art is skipped
Radio.co *.radio.co hostname Radio.co public status API keyed by the station id in the path (https://public.radio.co/stations/{station_id}/status[4]); "Artist - Title" is split, Radio.co's logo fallback is dropped so a real cover can be looked up
RadioKing radioking in the hostname play.radioking.io/<slug> URLs: RadioKing widget API for the slug. Numeric listen.radioking.com/radio/<id>/stream/<id> URLs: no slug, so status page then ICY
laut.fm *.laut.fm hostname laut.fm current-song API for the station name; no cover from laut.fm
AIIR aiir.com in the hostname AIIR's now-playing service when a service id is set up for the station, then AIIR's mount history feed, then ICY
Citrus3 citrus3.com in the hostname Icecast status-json.xsl, matched to your mount; ICY if the status page is blocked
Centova Cast A /proxy/<name>/ path, on any reseller's domain Centova's /rpc/<name>/streaminfo.get: artist, title, cover and listeners; ICY if it fails
AzuraCast Stream Type set to AzuraCast, or an HLS stream AzuraCast now-playing API for your station (/api/nowplaying ; /api/nowplaying/{station_shortcode} ; /api/nowplaying_static/{station_shortcode}.json[5]); ICY if the API has no track. See AzuraCast
HLS (any host) .m3u8 URL or Stream Type HLS AzuraCast API, then Icecast status-json.xsl. HLS carries no ICY tags, so if neither answers, set a Now Playing URL
Icecast Auto-detect or Stream Type Icecast status-json.xsl (also under a port path, for SonicPanel-style hosts), matched to your mount; listener count; then ICY
SHOUTcast Auto-detect or Stream Type SHOUTcast DNAS 2 stats JSON, then v1 /currentsong, then Icecast's status page (some "SHOUTcast" hosts run Icecast), then ICY
Caster.fm Paste your caster.fm station page address The site extracts the stream address; Caster.fm streams are Referer-protected, so the site proxies the audio and sends the expected Referer on metadata requests (status page, then ICY)
Anything else Any HTTPS audio stream ICY metadata in the stream

Listener counts come from the same source where it reports one (AzuraCast, Centova, AIIR's feed, Icecast status pages). For Live365, Radio.co, RadioKing and laut.fm streams the site does not show a listener count.

What it looks like on your site

The player sits in a bar that stays on screen and keeps playing while visitors move between pages. Below is the real template running for a demo station.

Live demo · real RadioSiteMaker template
A demo station's home page with the full persistent player bar, which shows the track, artist and cover art, plus the show on air from the schedule. Demo content.

The schedule is where the show name in the player comes from, so it is worth filling in even if your host has its own schedule.

Live demo · real RadioSiteMaker template
The schedule page of a demo station. The show in the current slot is the show name the player displays. Demo content.

If something does not work

  • No sound: run the stream tester. The usual causes are an http:// URL, a player page pasted instead of the stream, or a mount that is offline.
  • Sound but no title: your encoder may not be sending titles, or your host publishes them at a separate address. Put that address in Now Playing URL, then press Test Now Playing in Settings.
  • Wrong station's titles on a shared AzuraCast server: set Stream Type to AzuraCast so the site asks for your station by name. See the AzuraCast page.

The radio player troubleshooting guide goes through each symptom. For the dashboard steps, see the help article Connecting your audio stream. If you want your player on another site too, the free now-playing widget gives you an embeddable player for any HTTPS stream.

Frequently Asked Questions

Do I have to move my station to RadioSiteMaker?

No. RadioSiteMaker is a website, not a stream host. You paste the HTTPS stream URL your current host gives you, and the site plays it. Your automation, playlists and streaming stay with your host.

Does RadioSiteMaker log in to my streaming account?

No. For every host listed above the site reads public addresses only: the stream itself, and the host's public status or now-playing endpoint where one exists. It never needs your host password, and it cannot change anything in your streaming account.

My host only gives me an http:// stream. Will it play?

Not on the website. Browsers try to upgrade an http:// stream on an https:// page and fail if the server has no HTTPS listener, so RadioSiteMaker only plays HTTPS streams. Ask your host for the HTTPS address of the same stream; most have one.

Why does the player show the show name instead of the song?

Either no track title came back from any source, or the current schedule slot is set to hide track metadata. Run the stream tester to see whether your stream carries titles at all, and check the slot's settings in your schedule.

Can I use an HLS stream?

Yes. The site loads hls.js for browsers that do not play HLS natively. Your host must send CORS headers on the playlist, and because HLS has no in-stream titles, now-playing data has to come from AzuraCast's API, an Icecast status page, or a Now Playing URL you enter.

Sources and verification

Competitor prices and limits change often. Each figure above was checked on the date shown against the vendor's own page. Prices exclude tax unless stated.

  1. MDN (Mozilla) · n/a: Audio/video mixed content is auto-upgraded to HTTPS — <audio>/<video>/<img> HTTP requests on HTTPS pages are auto-upgraded to HTTPS (blocked if host is an IP address). Source, checked 2026-11-05. 'Mixed content requests that would otherwise be upgraded are blocked if the URL's host is an IP address rather than a domain name.' Implication (not MDN wording): an http-only stream with no HTTPS listener will fail on an HTTPS page.
  2. Icecast (Xiph.org) · n/a: JSON status endpoint — /status-json.xsl (since Icecast 2.4.0). Source, checked 2026-11-05. Icecast docs warn the HTML status page is not an API; JSON/XSLT/raw XML preferred.
  3. SHOUTcast · n/a: Stats JSON endpoint — /stats?sid=1&json=1 ; all streams: /statistics?json=1. Source, checked 2026-11-05. Source is a mirror of the official DNAS docs ('Last Updated 16 March 2015'); help.shoutcast.com returned 403 and wiki.shoutcast.com did not respond today.
  4. Radio.co · n/a: Public station status endpoint — https://public.radio.co/stations/{station_id}/status. Source, checked 2026-11-05. Also /api/v2/{station_id} and /api/v2/{station_id}/track/current.
  5. AzuraCast · n/a: Now-playing API endpoints — /api/nowplaying ; /api/nowplaying/{station_shortcode} ; /api/nowplaying_static/{station_shortcode}.json. Source, checked 2026-11-05. Real-time updates via Centrifugo over Websocket, SSE or long polling.
RadioSiteMaker Part of the Radio Site Maker suite

Paste your stream URL and keep your host

Your stream stays where it is. RadioSiteMaker adds the website around it: a player that keeps playing across pages, schedule, DJ profiles, podcasts and events on your own domain. $99 a year + tax.

Frederick
Written by
Frederick
Founder, RadioSiteMaker

Founder of RadioSiteMaker. Passionate about making professional radio station websites accessible to every broadcaster. Builds and runs the RadioSiteMaker website platform and RadioHost Studio, the browser-based 24/7 automation suite, and writes these guides from that day-to-day work with independent stations.

Frederick → LinkedIn

Get radio station tips in your inbox

Free guides on growing your audience, building your website, and running a better station. No spam, unsubscribe anytime.