radiocontrol is a control & managment interface for MPD, mostly to be used for the needs of internet streaming radio. It was created because the existing control interfaces for streaming stations were not as flexible (usage of mpd, music preprocessing) as needed.
Note: this lists the features of the backend. Not all is yet accessible via frontend or scripts
- add music to the MPD collection
- add playlists (as m3u)
- Status check of playlists (do the files exist? are the tags as expected?)
- get schedule entries
- Add new entries to the schedule and check for scheduling conflicts
- Start playing at the scheduled time via MPD
- preprocess music (mp3gain, mixramp)
- remove or change playlists
- schedule & remove playlists by name
- remove schedule entries
- better scheduling ** see TODOs (schedule playlists after, before, in-between existing schedule entries)
- allow more flexible backend settings, seperate debug from production settings
- upload playlists as xspf
- Authentication
- placeholder schedule entries for live streaming to icecast
- ...
- api: Django 2.0 REST API - under development
- frontends: diverse frontends for the API
- web: Vue.js 2.0 frontend - under Development
- python_cmdline: Python scripts to access the API
- Python 3 (check Pipfile for Python dependencies)
- redis (for celery)
- mpd
The preferred & tested installation of this application is in a Docker container.
To build the container for the API image use the following command:
cd api
docker docker build -t radiocontrol_api:latest
MPD Server can be set via environment variables in the API container.
The example docker-compose.yml file in this project starts Redis & Celery and uses the MPD server on the host.
- LibreTime: https://github.com/LibreTime/libretime
- AuRa: https://gitlab.servus.at/autoradio
- AzuraCast: https://github.com/AzuraCast/AzuraCast
- Stefan Derkits stefan@derkits.at
If not otherwise stated, all code is licensed under the GNU Affero General Public License