~/web-radio-player ☀ LIGHT 🎵 mp3 🎛️ winamp 🌊 noise 📊 visual ✂️ editor ☕ Support me apps ← about me
// internet radio · your list, your browser · no account

Web Radio Player — Build and Organise Your Own Internet Radio List

Build your own station list: search a directory of 50,000+ internet radio stations, or paste any Shoutcast or Icecast stream URL. Organise it with tags, favourites and drag-to-reorder, and find out which stations have quietly died. The list is stored in your browser — no account, nothing uploaded.

stopped
Nothing selected
Pick a station from your list, or add a new one.
🔊 80
my stations
add a station
Paste the stream URL, not the station's homepage. If you only have a .pls or .m3u link, paste it anyway — it will be opened to find the stream inside where the station allows it.

Why some stations refuse to play

Almost every failure in a browser radio player comes down to one of three things, and none of them are really about the player.

The stream is http:// and this page is https://. Browsers block that combination outright, and no amount of code on this page can change it. A lot of small and community stations still have not moved to https. When you paste one, this tool tells you that is what happened instead of just failing.

You pasted a playlist, not a stream. A .pls or .m3u link is a small text file that points at the real stream. This tool tries to open it and read the URL inside, but the station has to permit that; many do not, in which case open the file yourself and copy the address from it.

The station is simply gone. Internet radio is full of dead links — stations move, rebrand, or shut down and leave the URL behind. That is what the check all stations button is for: it tests every entry in your list and marks the ones that no longer answer.

Where your list actually lives

In your browser, in localStorage, on the device you are using. There is no account and no server copy, which means nobody can mine it, but it also means clearing your browser data will erase it. If the list matters to you, use export to save it as a JSON file, or share list to put the whole thing in a link you can mail to yourself. Both are plain, readable formats you can move into any other player.

What a browser can and cannot do with radio

It plays MP3 and AAC streams from Shoutcast and Icecast servers happily. What it cannot do is read the ICY metadata that carries the current track name — the audio element strips it before JavaScript can see it. Some stations publish that separately and this player picks it up when they do, but for most you will see the station name and nothing more. Any browser-based player claiming otherwise is either proxying through a server or only working for a handful of stations.

Related tools

Frequently Asked Questions — Web Radio

— Adding stations
How do I add a radio station?

Two ways. Search looks up the station by name in the Radio Browser community directory — an open database of tens of thousands of internet radio stations — and adds it with its stream URL, country, codec and bitrate already filled in. Paste URL is for anything not in that directory: give it the stream address and a name, and it is yours. Search is easier; paste always works, including offline.

Where do I find a station's stream URL?

Usually on the station's own site, behind a link called listen, stream or tune in. If clicking it opens your desktop media player rather than a web page, right-click and copy the link address instead — that is the URL you want. Failing that, the directory search here already knows the address for most stations, which is why it exists.

I pasted the station's website and nothing happened.

A homepage is a web page, not an audio stream, so there is nothing for the player to play. You need the address of the audio itself — it usually ends in something like /stream, /live, ; or a port number such as :8000, and rarely looks like a normal page URL.

What about .pls and .m3u links?

Those are not streams either — they are small text files that point at the real stream. Paste one anyway and this tool will try to open it and read the address inside. That only works if the station allows other sites to read the file, which many do not. When it fails, open the .pls file in a text editor yourself: the line beginning File1= is the URL you want.

Can I add a podcast or a YouTube link?

No. This plays continuous live streams. A podcast is an episode file better suited to a podcast app, and YouTube does not expose a stream URL that a plain audio element can play — anything claiming otherwise is scraping, and it breaks constantly.

— When a station will not play
A station is listed as “http” and refuses to play. Why?

Because this page is served over https and that station streams over plain http. Browsers block loading insecure audio into a secure page — it is a security rule, applied before any of this page's code runs, and nothing here can override it. This is by far the most common reason an internet radio stream fails in a browser, and a lot of smaller stations still have not moved to https. Check whether the station also publishes an https address; many now do.

Is there any way around the http problem?

Not from inside a web page, no. The genuine fixes are all elsewhere: the station adds https (best), you find an https mirror of the same stream, or you use a desktop or phone app, which is not bound by the same rule. Anyone offering a browser workaround is proxying the audio through their own server — which means your listening goes through a stranger's machine.

A station that used to work has stopped.

Stations move, rebrand and shut down constantly, usually without redirecting the old address. Press check all stations — it tries every entry in your list and marks the ones that no longer answer, so you can see at a glance what has rotted rather than discovering it one click at a time. This is the part most radio players simply do not do.

How does “check all stations” know a station is dead?

It tries to open each stream in the background and waits to see whether any audio data ever arrives. A station that responds is marked ok, one that errors or stays silent past the timeout is marked dead, and an http address on this https page is marked http because it was never going to load. A slow station on a bad connection can occasionally be marked dead unfairly — run the check again before deleting anything.

The stream keeps cutting out.

That is normal for internet radio, and this player handles it: when a stream drops it reconnects automatically, waiting a little longer before each attempt so it does not hammer a struggling server. After six failed attempts it gives up and says so. Most browser players have no retry at all, which is why they tend to just go quiet and stay quiet.

Nothing plays until I click. Why can't it start on its own?

Browsers refuse to let a page start audio before you have interacted with it — otherwise every site you opened would be free to make noise. One press of play is enough; after that the browser generally trusts this page for the rest of the visit.

— Your list and your data
Where is my station list stored?

In your browser's local storage, on the device you are using. There is no account, no sync and no copy on any server — which is why nothing here can be mined or sold, and also why clearing your browser data will delete it. It is also per-device: a list built on your laptop will not appear on your phone unless you move it there.

How do I back up or move my list?

Export writes the whole list to a JSON file you can keep anywhere and re-import on another device. Share list packs it into a link instead — the stations travel inside the URL itself, so you can mail it to yourself or send it to someone and they get the stations added to their own list, with no server involved. Links hold up to 60 stations; the file has no limit.

Can I import a list from another player?

If it exports JSON, probably. The importer accepts this tool's own format, a plain array of stations, or anything with a stations array, and it is relaxed about field names — url, stream and url_resolved all work, as do name and title. Stations already in your list are skipped rather than duplicated.

Is anything about my listening sent anywhere?

No. Which station you play, when, and for how long stays in your browser. The audio itself is fetched directly from the station, exactly as if you had opened the stream URL yourself, so the station sees a listener the way it always would. The only other outbound request is the directory search, and only when you press the search button. The page also loads an anonymous, cookie-free page-view counter and nothing else.

What is the Radio Browser directory?

A free, open, community-maintained database of internet radio stations, used by a number of open-source radio apps. Searching it is the one feature here that depends on somebody else's server — so if it is ever unreachable the search box says so plainly and the rest of the page carries on working. Your own list never depends on it.

— Organising and playing
How should I organise a lot of stations?

Tags, rather than folders. A station is often several things at once — jazz and belgian and morning — and a folder forces you to pick one. Add tags when you add the station or by editing it later, then click any tag to filter. The star marks favourites, and dragging by the handle on the left reorders the list permanently.

Are there keyboard shortcuts?

Space plays and pauses, arrow down and arrow up move to the next and previous station in whatever you currently have filtered, and Escape closes a dialog. They are ignored while you are typing in a box.

Can I control it from my phone's lock screen?

Yes. The station name appears in your device's media controls, and the play, pause and next-station buttons work from the lock screen, a headset, or the keyboard media keys, through the browser's Media Session support.

What does the sleep timer do?

Stops playback after the time you pick, fading the volume down over the last thirty seconds so it tails off rather than stopping mid-song. The volume goes back to where you had it afterwards. Press the button again to cancel.

Does it keep playing if I switch tabs or lock the phone?

On a desktop, yes — audio keeps going in a background tab. On a phone it depends on the browser and the operating system; most keep a playing stream alive with the screen off, but some aggressively suspend background tabs to save battery. The lock-screen controls are usually the sign that it will keep going.

— About internet radio streams
Why can't I see the song that is playing?

Because the browser will not let this page see it. Shoutcast and Icecast send the track name interleaved with the audio as ICY metadata, and the audio element strips it out before any JavaScript can read it. Some stations also publish the current track separately, and this player picks that up when they do — but most do not, so the usual result is the station name and nothing else. A player that reliably shows track names is either routing your audio through its own server or only supports a short list of stations.

Why is there no spectrum visualiser?

Same underlying reason, and it is a deliberate trade. To analyse audio a browser must be granted cross-origin permission for the stream, and almost no radio server grants it. Asking for that permission anyway would make most stations fail to play at all — so this player does not ask, and does without the visualiser. Playing reliably matters more than a moving graph.

What stream formats work?

MP3 and AAC streams from Shoutcast and Icecast servers — which is the overwhelming majority of internet radio — play everywhere. Ogg Vorbis and Opus work in Firefox and Chrome but not Safari. HLS streams ending in .m3u8 play natively in Safari but usually not in Chrome or Firefox without an extra library, so they are flagged when you add one.

Does listening here use more data than a radio app?

No — it is the same stream at the same bitrate, fetched directly from the station. A 128 kbps stream is roughly 58 MB an hour whatever plays it. If you are on mobile data, prefer a station's lower-bitrate stream where it offers one; the bitrate shows next to each station once it is in your list.

Is it legal to listen this way, and is this tool free?

You are listening to a public stream exactly as the station published it, from your own browser, with nothing rebroadcast or recorded — the same thing that happens when you open the stream URL directly. And yes, the tool is completely free: no account, no limit, no ads. It is one of the free browser tools at jasperbernaers.com.