RadioDJViewer v1.15.1
RadioDJViewer is a Windows desktop app that reads Now Playing data from the RadioDJ REST API and publishes it to:
- local output files (
.txt+ album-art image) - an embedded HTTP widget server for OBS/browser overlays
- Windows media integrations (SMTC + optional track-change toasts)
What Changed Since the Old v1.8.0 README
This project has moved beyond the original web-server-focused release notes. The app now includes:
- Version update: now documented at v1.15.1.
- Profile-level toggles for:
- Web server enable/port
- Clock visibility
- Toast notifications
- SMTC publishing
- Expanded web endpoints for time/playback state, not only title/artist/artwork.
- SMTC integration with metadata, artwork, playback status, and timeline behavior.
- Live-stream SMTC handling (
Duration <= 0) that keeps playback reported as active. - Track-change toast notifications with generated hero artwork.
- Polling-rate support per profile.
- UI status behavior remains tri-state (Disconnected/API/Web+API).
Core Features
- Connects to RadioDJ REST API and parses:
TitleArtistAlbumAlbumArtElapsedDuration
- Writes metadata output files for broadcast workflows.
- Serves a browser widget over HTTP from embedded resources.
- Caches metadata and artwork in memory for low-latency serving.
- Supports multiple saved profiles in
profiles.json. - Supports dark-mode theming in the app/settings UI.
Playback and Time Behavior
The app tracks playback state from API Elapsed + Duration values.
- For normal tracks (
Duration > 0):- elapsed/duration time is calculated and exposed
- paused state can be inferred from unchanged elapsed progression
- For live streams (
Duration <= 0):- treated as live (non-scrubbable)
- SMTC is forced to active
Playing - play/pause controls are disabled for read-only behavior
- fixed-length timeline updates are bypassed
Windows Integration
SMTC (System Media Transport Controls)
When enabled per profile, the app publishes:
- title + artist
- current artwork thumbnail
- playback status (
Playing/Paused/Stopped) - timeline properties for fixed-duration tracks
Live-stream mode is intentionally read-only and continuously reported as playing for system widgets/tools that depend on active media state.
Toast Notifications
When enabled per profile, track-change toasts can be shown with:
- title
- artist
- attribution line (date/time)
- generated 16:9 hero artwork image
Embedded Web Server
When enabled, the app starts an HTTP listener on the profile-configured port.
Main Widget
http://127.0.0.1:<port>/http://127.0.0.1:<port>/index.html
Metadata / State Endpoints
http://127.0.0.1:<port>/title.txthttp://127.0.0.1:<port>/artist.txthttp://127.0.0.1:<port>/time.txthttp://127.0.0.1:<port>/elapsedhttp://127.0.0.1:<port>/durationhttp://127.0.0.1:<port>/clock-visibilityhttp://127.0.0.1:<port>/status.json
Assets
http://127.0.0.1:<port>/Album-Art.pnghttp://127.0.0.1:<port>/album-art.pnghttp://127.0.0.1:<port>/style.csshttp://127.0.0.1:<port>/script.js
The widget JavaScript supports refresh tuning via query string:
?refreshrate=<seconds>
Status Indicator (App UI)
- 🔴 Red: Disconnected
- 🟢 Green: Connected to API, web server off
- 🔵 Blue: Connected to API + web server running
Requirements
- Windows
- .NET Framework 4.7.2
- RadioDJ with REST API/plugin access configured
Setup
- Launch
RadioDJViewer.exe. - Open settings and create/load a profile.
- Configure API values (
IP,Port,Password, URL format). - Configure output folder and images folder.
- Optional: configure polling rate, web server port, clock visibility, toast, and SMTC.
- Connect to API.
Repository
https://git.smartcraft.me/minster586/RadioDJViewer
Credits
Built and maintained by Smartcraft Media Group.
If you find an issue or need a feature adjustment, open an issue in the repository.