{"id":24205327,"url":"https://github.com/m-fila/jukebox","last_synced_at":"2025-10-11T21:07:01.026Z","repository":{"id":208864531,"uuid":"235655773","full_name":"m-fila/jukebox","owner":"m-fila","description":"python youtube player with web interface","archived":false,"fork":false,"pushed_at":"2020-02-26T11:14:20.000Z","size":101,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-11T21:06:59.729Z","etag":null,"topics":["audio","audio-player","cherrypy","mpd","music","music-player","pafy","python","youtube"],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m-fila.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-01-22T20:02:23.000Z","updated_at":"2021-07-31T22:50:33.000Z","dependencies_parsed_at":"2023-11-23T18:00:05.959Z","dependency_job_id":null,"html_url":"https://github.com/m-fila/jukebox","commit_stats":null,"previous_names":["m-fila/jukebox"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/m-fila/jukebox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fjukebox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fjukebox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fjukebox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fjukebox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m-fila","download_url":"https://codeload.github.com/m-fila/jukebox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-fila%2Fjukebox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008717,"owners_count":26084494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["audio","audio-player","cherrypy","mpd","music","music-player","pafy","python","youtube"],"created_at":"2025-01-13T23:34:56.931Z","updated_at":"2025-10-11T21:07:00.994Z","avatar_url":"https://github.com/m-fila.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jukebox ![Alt text](app/static/subwoofer.png \"jukebox\")\npython youtube player with web interface\n## About\nTired of hanging on jack, drained by streaming bluetooth, infuriated by no playing in background? Stoppping audio and loud ads? Here's jukebox: grab some speakers/sound system, connect them to your computer/phone and run jukebox on it, control what you are listening to from minimalistic web interface. \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/m-fila/jukebox/blob/master/docs/screen.png\" alt='screenshot'\u003e\n\u003c/p\u003e\n\n## Getting started\nJukebox uses `youtube-dl` and `pafy` for communication with YouToube. The web interface is run with `cherrypy` and `genshi`. The playback is realized using music player daemon (`mpd`) and it's python client `python-mpd2.` The python dependencies are:\n```\npip install cherrypy Genshi python-mpd2 youtube_dl pafy\n```\nMoreover you should have `mpd` built from source or from your repo (even the outdated Debian packages are fine):\n```\nsudo apt install mpd\nor\nsudo pacman -S mpd\nor\nsudo xbps-install -S mpd\nor\n...\n\n```\nNow you'll have to [generate YouTube-Data API key](https://developers.google.com/youtube/registering_an_application). At the time of writting google gives 10k free entries to each key every day (which is enough for this personal usage project). Once you have the key add in to the `config.json` file.\n## Usage\nOn system connected to speakers or sound system run:\n```\npython __init.py__ config.json\n```\nto start jukebox. If successful a web interface should be availible at address specified in congifuration.\n\nDue to live changes to YouTube remember to keep youtube_dl up to date:\n```\npip install youtube_dl -U\n```\n### Configuration\nconfig.json file:\n```\n{\n    \"port\": 8080,                 port for web interface\n    \"local host\": false,          web interface at localhost\n    \"default host\": true,         web interface at primary host if \"local host\"==false\n    \"custom host\": \"127.0.0.1\",   custom web interface host if \"default host\"==false\n    \"mpd host\": \"127.0.0.1\",      custom mpd server host (default localhost)\n    \"mpd port\": 6600,             custom mpd server port (default 6600)\n    \"ssl\": false,                 enables ssl encryption for https connection\n    \"cert\": \"cert.pem\" ,          path to ssl certificate\n    \"privkey\": \"privkey.pem\",     path to ssl privkey\n    \"APIkey\":\" \"                  your YouTube-Data API key goes here\n}\n```\nSSL isn't supported yet!!\n\n## Features\n- [x] playback videos (audio) and playlists\n- [x] browsing YouTube for videos and playlists\n- [x] video queue\n- [x] simple parsing YouTube dash manifests\n- [x] http web interface\n- [x] mobile friendly\n- [x] control panel\n- [x] autoplay next audio\n- [ ] https web interface\n- [ ] saving sessions\n- [ ] spotify?\n## Troubleshooting\n* ```ERROR: xxxxxxxxxxx: Youtube says: Unable to extract video data```\nmeans you have to update youtube_dl with `pip install youtube_dl -U`,\n\n## License\nDistributed under the GPL-3.0. See `LICENSE` for more information.\n## Resources\n* [cherrypy](https://cherrypy.org/) - framework\n* [genshi](https://genshi.edgewall.org/) - templating\n* [mini.css](https://minicss.org/) - css\n* [fontawesome4](https://fontawesome.com/v4.7.0/icons/) - icons\n* [icons8](https://icons8.com/icons/) - favicon\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-fila%2Fjukebox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm-fila%2Fjukebox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-fila%2Fjukebox/lists"}