{"id":17236676,"url":"https://github.com/horrendus/radiocontrol","last_synced_at":"2026-01-20T03:09:57.547Z","repository":{"id":52367177,"uuid":"44615746","full_name":"Horrendus/radiocontrol","owner":"Horrendus","description":"radiocontrol is a control \u0026 managment interface for MPD, mostly to be used for the needs of internet streaming radio","archived":false,"fork":false,"pushed_at":"2023-01-04T23:55:55.000Z","size":19163,"stargazers_count":1,"open_issues_count":18,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T08:16:40.363Z","etag":null,"topics":["mpd","radio-controller","scheduling"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Horrendus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-20T15:26:42.000Z","updated_at":"2021-05-01T10:43:21.000Z","dependencies_parsed_at":"2023-02-03T00:45:31.811Z","dependency_job_id":null,"html_url":"https://github.com/Horrendus/radiocontrol","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Horrendus/radiocontrol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Horrendus%2Fradiocontrol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Horrendus%2Fradiocontrol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Horrendus%2Fradiocontrol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Horrendus%2Fradiocontrol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Horrendus","download_url":"https://codeload.github.com/Horrendus/radiocontrol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Horrendus%2Fradiocontrol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28594958,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mpd","radio-controller","scheduling"],"created_at":"2024-10-15T05:36:42.328Z","updated_at":"2026-01-20T03:09:57.527Z","avatar_url":"https://github.com/Horrendus.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is \"radiocontrol\"\n\nradiocontrol is a control \u0026 managment interface for [MPD](http://www.musicpd.org/), mostly to be used for the needs of internet streaming radio.\nIt was created because the existing control interfaces for streaming stations were not as flexible (usage of mpd, music preprocessing) as needed.\n\n## Existing features (what it is capable of right now)\n\nNote: this lists the features of the backend. Not all is yet accessible via frontend or scripts\n\n* add music to the MPD collection\n* add playlists (as m3u)\n* Status check of playlists (do the files exist? are the tags as expected?)\n* get schedule entries\n* Add new entries to the schedule and check for scheduling conflicts\n* Start playing at the scheduled time via MPD\n\n## Feature ideas (what it should be capable of, mostly in order of preference)\n\n* preprocess music (mp3gain, mixramp)\n* remove or change playlists\n* schedule \u0026 remove playlists by name\n* remove schedule entries\n* better scheduling\n** see TODOs (schedule playlists after, before, in-between existing schedule entries)\n* allow more flexible backend settings, seperate debug from production settings\n* upload playlists as xspf\n* Authentication\n* placeholder schedule entries for live streaming to icecast\n* ...\n\n# Project Structure\n\n* api: Django 2.0 REST API - under development\n* frontends: diverse frontends for the API\n\n## Frontends\n\n* web: Vue.js 2.0 frontend - under Development\n* python_cmdline: Python scripts to access the API\n\n# Requirements \u0026 Installation\n\n## Requirements\n\n* Python 3 (check Pipfile for Python dependencies)\n* redis (for celery)\n* mpd\n\n# Installation\n\n## Docker\n\nThe preferred \u0026 tested installation of this application is in a Docker container.\n\n### Build image\n\nTo build the container for the API image use the following command:\n\n```bash\ncd api\ndocker docker build -t radiocontrol_api:latest\n```\n\n### Run image\n\nMPD Server can be set via environment variables in the API container.\n\nThe example docker-compose.yml file in this project starts Redis \u0026 Celery and uses the MPD server on the host.\n\n# Similar projects\n\n* LibreTime: https://github.com/LibreTime/libretime\n* AuRa: https://gitlab.servus.at/autoradio\n* AzuraCast: https://github.com/AzuraCast/AzuraCast\n\n\n# Author\n\n* Stefan Derkits \u003cstefan@derkits.at\u003e\n\n# License\n\nIf not otherwise stated, all code is licensed under the GNU Affero General Public License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorrendus%2Fradiocontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhorrendus%2Fradiocontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorrendus%2Fradiocontrol/lists"}