2026-04-26 15:18:41 +02:00
2026-04-26 13:01:40 +02:00
2026-04-26 13:01:40 +02:00
2026-04-26 13:01:40 +02:00

RadioPlayer

RadioPlayer is a Vite + React web app for browsing, playing, and casting radio stations. It loads its station catalog from public/stations.json, supports custom stations, and includes a built-in updater for refreshing that list from the live Radio.si feed.

Features

  • Station browser with search, categories, favourites, and recent stations
  • Audio playback with previous/next station controls
  • Cast support
  • App install prompt for supported browsers
  • Custom station editor
  • Live station metadata and artwork rendering

Requirements

  • Node.js 18 or newer
  • npm

Getting Started

Install dependencies:

npm install

Start the development server:

npm run dev

Build for production:

npm run build

Preview the production build:

npm run preview

Station Data

The app reads station data from public/stations.json.

To refresh the file from the remote source, run:

npm run update:stations

That command fetches the latest station list from:

https://data.radio.si/api/radiostations?857df78efd094abcb98c7bbb53303c3d

and rewrites public/stations.json while preserving the existing JSON structure used by the app.

You can also pass a custom source URL or a custom output path if needed:

node scripts/update-stations.mjs <source-url> <output-path>

Project Structure

index.html
package.json
public/
  manifest.json
  stations.json
  sw.js
src/
  App.jsx
  main.jsx
  player.js
  styles.css
scripts/
  update-stations.mjs

Notes

  • The app uses a module-based frontend build, so src/main.jsx is the browser entry point.
  • The updater script uses the remote feed as the source of truth for the station list and writes the merged result into public/stations.json.
  • If you add or edit stations manually, re-run npm run update:stations when you want to sync back to the remote catalog.
Description
No description provided
Readme 5.5 MiB
Languages
JavaScript 61.8%
CSS 19.3%
TypeScript 11.9%
HTML 5.3%
Shell 1.4%
Other 0.3%