Radio-Albena
New member
Hello RadioBOSS community,
I would like to share two free open-source projects I developed for my own internet station, Radio Albena.
The system provides a modern web-based song request page for RadioBOSS without requiring the public website to connect directly to the RadioBOSS database.
RadioBOSS SongSync Engine:
https://github.com/mixnetwork1959/RadioBOSS-SongSync-Engine
RadioBOSS Song Request System:
https://github.com/mixnetwork1959/radioboss-song-request-system
Both projects are required.
The SongSync Engine reads the RadioBOSS MySQL music library and generates:
define('REQUEST_PLAY_MINUTES', [15, 45]);<br>define('REQUESTS_PER_SLOT', 1);<br>
When a listener sends a request, the system checks the current RadioBOSS request queue and can display a message such as:
“Your song request was added to queue position 2. Expected play time: around 11:45. Estimated waiting time: about 45 minutes.”
The estimated time is calculated from the unplayed requests in RadioBOSS and the configured playrequestedsong scheduler events.
Security was an important part of the project:
Requirements include PHP 8 or newer, PHP cURL, PHP SimpleXML, Python 3, a RadioBOSS MySQL music library and access from the web server to the RadioBOSS Remote Control API.
Both projects are released under the MIT License.
Feedback, testing reports and suggestions are very welcome. I would also be interested to hear which request schedules other RadioBOSS users employ and whether additional configuration options would be useful.
I would like to share two free open-source projects I developed for my own internet station, Radio Albena.
The system provides a modern web-based song request page for RadioBOSS without requiring the public website to connect directly to the RadioBOSS database.
RadioBOSS SongSync Engine:
https://github.com/mixnetwork1959/RadioBOSS-SongSync-Engine
RadioBOSS Song Request System:
https://github.com/mixnetwork1959/radioboss-song-request-system
Both projects are required.
The SongSync Engine reads the RadioBOSS MySQL music library and generates:
- A public JSON catalog containing track ID, artist and title
- A private lookup file containing the actual RadioBOSS filenames
- Artist and genre lists
- Catalog information
- A duplicate report
- Fast artist and title search
- Direct requests through the RadioBOSS Remote Control API
- Optional listener messages
- RadioBOSS queue detection
- Queue position information
- Estimated playback time
- Configurable request slots
- IP-based request limits
- Protection against requesting the same song too frequently
- Responsive desktop and mobile design
- Optional embedded station player
define('REQUEST_PLAY_MINUTES', [15, 45]);<br>define('REQUESTS_PER_SLOT', 1);<br>
When a listener sends a request, the system checks the current RadioBOSS request queue and can display a message such as:
“Your song request was added to queue position 2. Expected play time: around 11:45. Estimated waiting time: about 45 minutes.”
The estimated time is calculated from the unplayed requests in RadioBOSS and the configured playrequestedsong scheduler events.
Security was an important part of the project:
- The browser never receives local music paths
- RadioBOSS API credentials remain private
- MySQL credentials remain on the SongSync computer
- Private request files are protected
- Only a hash of the listener’s IP address is stored
Requirements include PHP 8 or newer, PHP cURL, PHP SimpleXML, Python 3, a RadioBOSS MySQL music library and access from the web server to the RadioBOSS Remote Control API.
Both projects are released under the MIT License.
Feedback, testing reports and suggestions are very welcome. I would also be interested to hear which request schedules other RadioBOSS users employ and whether additional configuration options would be useful.