Browse and play internet radio from the community-driven Radio Browser directory, directly inside Lyrion Music Server.
Find stations by name, ordered by community votes. (~58k stations)
Most Voted and Most Played lists (top 5k).
Drill into ~11k tags and genres.
Browse every country with stations (250+ countries).
Auto locate your country and display local stations.
Quick access to the last stations you played (configurable count, persists across restarts).
Bitrate · codec · country shown on each line, with favicons.
Honours every Radio Browser API guideline.
api.radio-browser.info.Net::DNS is used for mirror load-balancing when present; it
is not a hard dependency — the plugin falls back
automatically if it is missing.Radio Browser is part of the official Lyrion plugin library, so it installs straight from the LMS Plugins screen — no repository URL needed.
When a new version is published, LMS shows an update next to the plugin — no manual download needed.
RadioBrowser-<version>.zip from the
Releases page./var/lib/squeezeboxserver/Plugins/~/Library/Application Support/Squeezebox/Plugins/C:\ProgramData\Squeezebox\Plugins\Plugins/RadioBrowser/.The folder must be named RadioBrowser
so it matches the Perl package path Plugins::RadioBrowser::Plugin
declared in install.xml.
Go to Radio → Radio Browser on any player or the web UI, then choose a browsing mode:
| Menu | What it does |
|---|---|
| Search Stations | Type a name; results ordered by votes. |
| Top Stations | Most Voted / Most Played, top 100. |
| By Tag / Genre | Top 200 tags, drilling into matching stations. |
| By Country | All countries; drill into stations by country code. |
| Recently Played | The last stations you played, newest first; includes a Clear action. |
Select a station to play it. Each play is routed through the Radio Browser click-counter so popularity stats stay accurate.
all.api.radio-browser.info picks a server at random and
reverse-resolves it for valid TLS; falls back to
https://all.api.radio-browser.info if needed.User-Agent: LyrionRadioBrowserPlugin/1.0.stationuuid./m3u/url/<uuid> endpoint, which registers a click and
returns an M3U pointing at the live stream.Tag and country lists are cached for 24 hours to ease load on the directory.
RadioBrowser/
├── install.xml # Plugin metadata read by LMS at startup
├── Plugin.pm # Core module (extends Slim::Plugin::OPMLBased)
└── strings.txt # Localized UI label tokens
Plugin.pm builds on Slim::Plugin::OPMLBased so LMS
renders the hierarchy natively. All HTTP is non-blocking via
Slim::Networking::SimpleAsyncHTTP, and JSON is decoded with
JSON::XS inside eval blocks. Failed requests
degrade gracefully to a single “Unable to load” item.
| Subroutine | Role |
|---|---|
initPlugin | Resolves the mirror and registers under the Radio menu. |
_resolveBaseUrl | DNS round-robin with graceful fallback. |
_apiGet | Central async GET + safe JSON decode. |
handleFeed | Builds the top-level menu. |
searchStations | Name search. |
topStations | Top voted / clicked. |
listTags / stationsByTag | Tag list and drill-down. |
listCountries / stationsByCountry | Country list and drill-down. |
_stationsToOpml | Converts API stations into OPML audio items. |
playStation | Click-tracking resolve-then-play. |
RadioBrowser and that LMS was restarted.api.radio-browser.info; enable the
plugin.radiobrowser log category under
Settings → Advanced → Logging.recentCount setting (default 100, range 1–1000) and a Clear recently played action.maxTags setting (default 1000, range 1–10 000) to control how many tags appear in the Tags browse list.maxResults and cacheTTL options.maxResults setting.Full history in CHANGELOG.md.