Plugins 〉Radio Panel


Developer

Teuwsen services

Sign up to receive occasional product news and updates:



Panel
community

Radio Panel

  • Overview
  • Installation
  • Change log
  • Related content

Radio Panel

Interactive vinyl-style radio panel for Grafana. The panel supports weekday-based station scheduling, optional timed override, and now playing metadata per station.

Screenshots

Compact panel view Dashboard view

Features

  • Clickable vinyl disk UI that plays a configured radio stream.
  • Day-by-day station setup or one shared station for all days.
  • Optional station presets with per-day preset selection.
  • Timed override for selected weekdays starting at a specific hour.
  • Now playing presets for NPO Sterren NL, Arrow Classic Rock, and custom JSON APIs.
  • Optional continuous playback mode for dashboard playlist transitions.
  • Styling controls for panel, disk, and label borders.
  • Grafana variable support in station name, stream URL, and logo URL.

Station presets

You can optionally use presets as a faster way to configure day schedules.

  1. Enable Use station presets for days in panel options.
  2. Configure preset slots in the Presets category.
  3. Select a preset per day in the Stations category.
  4. Choose No preset for a day to use that day's custom station fields.

This is additive and non-breaking: existing day-by-day station setup continues to work.

Now Playing and CORS

This panel runs in the browser as a Grafana panel plugin and cannot use Grafana's server-side data source proxy for arbitrary HTTP requests. Some external now-playing APIs block browser-origin requests due to CORS policy.

The Arrow Classic Rock preset uses r.jina.ai as a default CORS-friendly wrapper so metadata can be fetched in browser context.

You can set one global CORS proxy for all stations with the panel option Now playing CORS proxy URL.

  • Leave empty to use the preset default behavior.
  • Use a URL prefix (for example https://r.jina.ai/) to prepend the API URL.
  • Or use {{url}} placeholder when your proxy expects a query parameter (for example https://my-proxy.example/fetch?url={{url}}).

When a now-playing request is blocked by CORS (or another network-level browser restriction), the panel stops polling that endpoint for the active station and falls back to normal station/status text. To keep now-playing metadata enabled, use endpoints that allow browser CORS or place a CORS-enabled proxy in front of the metadata API.

Add your own now-playing API

Yes. You can configure your own endpoint without code changes:

  1. Set the station now playing preset to Custom JSON API.
  2. Fill in now playing API URL with your endpoint.
  3. Optionally set Now playing CORS proxy URL when the endpoint blocks browser CORS.

The custom parser tries common keys such as artist, title, song, track, image, and coverUrl.

Requirements

  • Grafana >=12.3.0

Support

Installing Radio Panel on Grafana Cloud:

For more information, visit the docs on plugin installation.

Changelog

1.2.0 (2026-04-02)

Added

  • Added optional station presets as a non-breaking addition to day-by-day configuration.
  • Added five editable preset slots with stream URL, logo URL, and now playing settings.
  • Added per-day preset selection with fallback to custom day station fields when no preset is selected.

Changed

  • Refactored panel option builder to helper-based station/day option generation to reduce duplication and regression risk.
  • Updated day preset selector to show dynamic preset display names based on configured station names.
  • New Screenshot 2.

1.1.3 (2026-04-02)

Changed

  • More complete readme

1.1.2 (2026-04-02)

Added

  • New logo

Changed

  • Better restart stream handling

1.1 (2026-03-31)

Added

  • Added automatic stream watchdog restart when playback stalls for 10 seconds.
  • Added support for Custom JSON now playing APIs.
  • Added a global CORS proxy setting for now playing API requests.

Changed

  • Updated Arrow Classic Rock now playing preset to use a CORS-friendly proxy route by default.
  • Improved now playing parsing for wrapped JSON and markdown-like proxy responses.
  • Updated default option text labels to English.

Fixed

  • Updated panel styles to use Grafana theme tokens instead of hardcoded colors and fonts.
  • Added cleanup for the shared global audio element when the last panel instance unmounts.
  • Reduced repeated now playing polling noise after fetch failures.

1.0.1 (2026-03-09)

Fixed

  • Updated build dependency copy-webpack-plugin to 14.0.0.
  • Removed high-severity serialize-javascript vulnerability from lockfile dependency tree.

1.0.0 (2026-03-09)

Added

  • Initial community release of LP Radio Panel.
  • Vinyl-style interactive radio playback panel.
  • Weekday station scheduling with optional timed override.
  • Now playing presets for NPO Sterren NL and Arrow Classic Rock.
  • Playlist-friendly continuous playback option.
  • Styling controls and Grafana variable support for station settings.