Jump to content

[Plugin / Beta] Radio Browser - browse and play internet radio from radio-browser.info (Server 4.8.x)


Recommended Posts

Posted

Hi all,

I'd like to share a server plugin I've been working on and get some testers before requesting a catalog listing.

**Radio Browser** surfaces the public [radio-browser.info](https://www.radio-browser.info) catalogue - tens of thousands of internet radio stations - inside Emby as a Channel.
You browse stations by genre and country and play them directly, with no hand-maintained`.strm` / `.m3u` / `.pls` files.

It is server-side only - it adds a "Radio Browser" channel plus a settings page, with no client or context-menu UI.

**What it does**

- Adds a **Radio Browser** channel with four root folders: **Genres**, **Countries**, **Top Voted**, and **Most Clicked**.
- Plays stations directly (prefers the resolved stream URL; treated as an infinite live stream so it keeps playing).
- Two global filters applied to every list: **Preferred codec** (Any / MP3 / AAC / OGG, where AAC also matches AAC+) and **Minimum bitrate (kbps)**.
- **Hide broken stations** toggle (uses radio-browser's online-state check).
- Registers a play-start "click" with radio-browser when you start a station (this feeds the Most Clicked list). That is the only thing it sends out.

**How it works**

- Rather than making one API search per folder, it pulls the whole station catalogue **once per channel refresh**, caches it in memory, and builds the Genres and Countries folders by grouping locally. This turned a slow, sometimes-stalling sync into a handful of bulk requests - a full refresh is under ~4 minutes on my server.
- Mirror discovery via DNS of `all.api.radio-browser.info` with failover to another mirror, and a descriptive User-Agent, per radio-browser's guidelines.
- Browsing is served from Emby's channel cache; station lists refresh when the "Refresh Internet Channels" scheduled task runs (not live per-scroll).

**Notes / limitations**

- **Max stations per list** bounds how many stations Emby stores per genre/country during a refresh (default 200). It is the main knob for refresh time and database size - raising it a lot makes refreshes slower and the DB larger. `0` means load all (not recommended).
- The Genres folder shows the top ~500 tags by station count; radio-browser has a large long-tail of one-off free-text tags that would otherwise flood the list.
- Emby draws its native favorite heart on items, but Emby does not surface favorited  *channel* audio anywhere in its UI, so favorites are not a supported feature of this plugin.

**Requirements**

- Emby Server 4.8.x.

**Install**

1. Copy `RadioBrowser.dll` into your plugins folder:
   - Windows: `%AppData%\Emby-Server\programdata\plugins`
   - Linux: `/var/lib/emby/plugins`
   - Docker: `/config/plugins`
2. Restart Emby Server.
3. Open Dashboard -> Plugins -> Radio Browser -> Settings. It also shows up as its own entry in the dashboard's left navigation.
4. Run Dashboard -> Scheduled Tasks -> "Refresh Internet Channels" once to populate the channel (or wait for its schedule).

**Configure**

Set **Hide broken stations**, **Max stations per list**, **Preferred codec**, and **Minimum bitrate** to taste, then open the Radio Browser channel under Channels. After changing a setting, run the refresh task again so the cached lists pick it up.

**Beta note**

DLL is attached to this post. I'd love feedback on stability, on refresh time across different server sizes, and on station playback across clients. Please share your server version and anything in the log prefixed with `RadioBrowser` if something looks off.

Thanks!

image.thumb.png.20714f6e9d5b05bafe8c9c758198703f.png

RadioBrowser.dll

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...