World Radio — Privacy Policy
Last updated: 2026-05-20
World Radio is a browser-extension tuner for free internet radio. It is designed to collect as little data as possible.
TL;DR
World Radio does not collect, transmit, or store any personal data on any server operated by us. There is no backend.
What stays on your device
Locally, in chrome.storage.local on your browser, the extension stores:
- Your favorite stations
- The last country you browsed
- The last station you played
- The volume you last set
- A short-lived cache of the radio-browser.info mirror used for catalog queries
We do not have access to this storage. It lives on your device and is wiped when you uninstall the extension.
Network requests World Radio makes
The extension never speaks to a server we control. The only network requests it makes are:
| Request | When | What’s sent |
|---|---|---|
Mirror probe / catalog query to *.api.radio-browser.info |
At startup (mirror probe) and whenever you select a country (catalog query) | The ISO country code you picked, plus a generic User-Agent (WorldRadio/<version> (github.com/ssubbotin/world-radio)). No identifier of you. |
Click counter ping to *.api.radio-browser.info/json/url/{uuid} |
When you press play on a station | The station UUID from the public radio-browser catalog. This drives the catalog’s popularity sort and benefits every user. |
| Stream playback directly to the broadcaster’s public stream URL | When you press play | A standard HTTP connection from your browser to the broadcaster, the same as if you visited their website. They see your IP and basic HTTP headers; we don’t mediate. |
Nothing else leaves your browser.
What we do not do
- We don’t record audio.
- We don’t strip or insert ads into streams.
- We don’t track which stations you play, or build any profile of you.
- We don’t use analytics, telemetry, error reporting, or any tracking pixels.
- We don’t set cookies from the extension.
Permissions explained
The extension declares these Chrome permissions:
storage— saves favourites, last station, last country, and the cached radio-browser mirror inchrome.storage.local.alarms— fires a no-op alarm while audio is playing to keep Chrome’s service worker (and the offscreen audio document with it) alive across the 30 s idle timeout.offscreen— hosts the<audio>element used for playback. MV3 service workers cannot host audio themselves.host_permissions: https://*.api.radio-browser.info/*— fetches the catalog and mirror list from radio-browser. The extension talks to no other host throughfetch; stream URLs are loaded as media (<audio src>) via the manifest’s CSP.
No other permissions are requested.
Children’s privacy
The extension does not target children specifically and does not request information from anyone of any age.
Pricing and Pro tier
The current version is free. A future release may add a one-time-purchase Pro tier (sleep timer, side panel UI, hotkey customization, custom themes). Licenses, if and when offered, will be sold through a merchant of record (Lemon Squeezy / Paddle / Polar) and verified locally by the extension via an Ed25519 signature — no account, no server-side license database, no usage logging is added by the Pro tier.
Changes to this policy
Substantive changes will bump the “Last updated” date and be visible in the repository’s version history.
Contact
Questions: ssubbotin@gmail.com. Source: github.com/ssubbotin/world-radio.