{"id":21352653,"url":"https://github.com/elibroftw/music-caster","last_synced_at":"2025-07-12T21:31:11.584Z","repository":{"id":39068863,"uuid":"196778665","full_name":"elibroftw/music-caster","owner":"elibroftw","description":"Music Caster is a modern music player with the ability to cast audio files, system audio, and URLs to Google Chromecasts, Google Home/Nest Minis, etc.","archived":false,"fork":false,"pushed_at":"2024-05-09T03:37:43.000Z","size":162161,"stargazers_count":141,"open_issues_count":6,"forks_count":16,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-05-09T04:27:20.156Z","etag":null,"topics":["casting","chromecast","google-home","gui","media-player","music-files","music-player","pysimplegui","vlc","web-gui"],"latest_commit_sha":null,"homepage":"https://elijahlopez.ca/music-caster/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elibroftw.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.txt","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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-07-14T00:40:43.000Z","updated_at":"2024-05-09T04:27:28.303Z","dependencies_parsed_at":"2023-11-12T01:30:36.649Z","dependency_job_id":"b022f3c6-0eeb-4bcc-8bab-9152e0f63064","html_url":"https://github.com/elibroftw/music-caster","commit_stats":null,"previous_names":[],"tags_count":757,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elibroftw%2Fmusic-caster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elibroftw%2Fmusic-caster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elibroftw%2Fmusic-caster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elibroftw%2Fmusic-caster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elibroftw","download_url":"https://codeload.github.com/elibroftw/music-caster/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225834344,"owners_count":17531471,"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","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":["casting","chromecast","google-home","gui","media-player","music-files","music-player","pysimplegui","vlc","web-gui"],"created_at":"2024-11-22T03:14:32.101Z","updated_at":"2024-11-22T03:14:32.620Z","avatar_url":"https://github.com/elibroftw.png","language":"Python","funding_links":["https://www.paypal.me/elibroftw"],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/21298211/171323258-5818355a-2c55-444b-8d0d-b0e3feee36e4.png\" /\u003e \u003c/\u003e\n\n[![GitHub Releases](https://img.shields.io/github/downloads/elibroftw/music-caster/latest/total?color=blue\u0026label=github%20downloads%40latest\u0026style=for-the-badge)](https://github.com/elibroftw/music-caster/releases/latest)\n[![Source Forge](https://img.shields.io/sourceforge/dt/music-caster?color=orange\u0026label=SourceForge%20downloads\u0026style=for-the-badge)](https://sourceforge.net/projects/music-caster/)\n\nMusic Caster is a modern music player with the ability to cast audio files, system audio, and URLs to Google Chromecasts, Google Home/Nest Minis, etc.\n\nDisplay languages: English, German, Spanish, French, Italian, Dutch, Russian\\*, and Ukrainian\\*\n\nUnique users as of April 23rd 2023: 3,800\n\n[Screenshots](https://elijahlopez.ca/music-caster/)\n\n### Donate or Translate\n\n- monero:84PR6SkYd5zaFLKDjAFrQfbaAg2c7SV3q3XDZ15QCpEZUggrN4YzY7n8m9XC3deXjo41yWHTm1LrsUpPTYGnRQbD9Cwp8En\n- [PayPal](https://www.paypal.me/elibroftw)\n- [Translate](https://github.com/elibroftw/music-caster/issues/12#issuecomment-808658776) Music Caster to other languages\n\n## Install\n\n### [Windows Download Music.Caster.Setup.exe](https://github.com/elibroftw/music-caster/releases/latest)\n\n- **IMPORTANT INFORMATION:** The tray icon will be in the tray, so you will need to move it to your taskbar\n- Command line installation: `winget install \"Music Caster\"`\n- [VirusTotal scan](https://www.virustotal.com/gui/file/40a1c61e5cb2c5eed714eb70bb84f138e9fd9742076ea665b4ac85fc8f372abf)\n  - If Music Caster is auto-removed, open \"Virus \u0026 threat protection\", then \"protection history,\" and restore all files related to Music Caster\n\n### Linux\n\nNot maintained, but I did get it to work on Ubuntu once. Music Caster is not straight forward to package, so you can invoke a sudo-free [install script](linux_install.sh).\n\n```bash\nmkdir -p ~/bin \u0026\u0026 git clone --depth 1 https://github.com/elibroftw/music-caster.git ~/bin/music-caster\ncd ~/bin/music-caster\n./linux_install.sh # use sudo for non-interactive install in case a dependency needs to be installed\n```\n\n## Demo\n\n\u003ca href=\"https://www.youtube.com/watch?v=5xwHkLPgvtQ\" title=\"Music Caster Video Demo\"\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg width=75% src=\"https://img.youtube.com/vi/5xwHkLPgvtQ/maxresdefault.jpg\" alt=\"Music Caster Video Demo Thumbnail\"/\u003e\n  \u003c/p\u003e\n\u003c/a\u003e\n\n## Limitations\n\n- Chromecasts only support the AAC version of WMA files\n- Emojis might not work well. There's always settings.json + WEB GUI though\n- [Road Map](https://github.com/elibroftw/music-caster/projects/1)\n\n## Power User Features\n\n- Global media hot-keys are supported\n- Web GUI (QR code in Settings window)\n- [Command Line Arguments](https://github.com/elibroftw/music-caster/wiki/Command-Line-Arguments)\n\nHere are Music Caster specific keyboard shortcuts aside from the global media hot-keys.\n\n| **Shortcut**           | **Window** | **Behaviour**                  |\n|------------------------|------------|--------------------------------|\n| Ctrl + Shift + Alt + M | Global     | Activate Main Window           |\n| Ctrl + (Shift) + }     | Main       | Toggle mini-mode               |\n| Esc                    | Main       | Close Window                   |\n| Ctrl + Shift + Q       | Main       | Exit Program                   |\n| Scroll                 | Main       | Volume and Progress Bar        |\n| ⬆ / A                  | Main       | Decrease Volume by 5%          |\n| ⬇ / D                  | Main       | Increase Volume by 5%          |\n| #                      | Main       | Set Volume to # * 10%          |\n| K                      | Main       | Pause / Resume / Start Playing |\n| Shift + N              | Main       | Next Track                     |\n| Shift + P / Shift + B  | Main       | Previous Track                 |\n| J                      | Main       | Rewind 5 seconds               |\n| L                      | Main       | Fast-forward 5 seconds         |\n| Ctrl + R               | Main       | Cycle Repeat                   |\n| Ctrl + M               | Main       | Mute                           |\n| Ctrl + 1               | Main       | Go to Tab 1 (Queue)            |\n| Ctrl + 2               | Main       | Go to Tab 2 (URL)              |\n| Ctrl + 3               | Main       | Go to Tab 3 (Library)          |\n| Ctrl + 4               | Main       | Go to Tab 4 (Playlists)        |\n| Ctrl + 5               | Main       | Go to Tab 5 (Timer)            |\n| Ctrl + 6               | Main       | Go to Tab 6 (Metadata)         |\n| Ctrl + 7               | Main       | Go to Tab 7 (Settings)         |\n\n### Editing `settings.json`\n\n- I do not recommend editing unless you know what you are doing\n- Music Caster will detect changes within 10 seconds of editing `settings.json`\n- Some settings values are hidden from the GUI for good reason\n\n## Data Collection / Privacy Policy\n\nBelow is the reasonable data that is collected when errors are encountered. I'm sure other programs collect\nway more than necessary.\n\n```python\n# in handle_exception,\npayload = {'VERSION': VERSION, 'FATAL': restart_program, 'EXCEPTION TYPE': exc_type.__name__,\n           'LINE': exc_tb.tb_lineno, 'TRACEBACK': trace_back_msg, 'LOG': log_lines,\n           'MQ[0]': playing_uri, 'PLAYING_STATUS': str(playing_status), 'DEVICE': device,\n           'CWD': os.getcwd(), 'PORTABLE': not os.path.exists(UNINSTALLER),\n           'MAC': hashlib.md5(get_mac().encode()).hexdigest(), 'OS': platform.platform(), 'TIME': current_time}\n```\n\nIn addition, I collect MD5 hashed MAC addresses and IP addresses in a Google Excel Sheet.\nOnly I have access to this data, I will NEVER give it to anyone else. Will stop collecting analytics once I stop caring about the number of users.\n\n- Hashed MAC so that I know how many users without knowing the actual MAC addresses\n- IP because I can map out the IPs to a visual map to see where my users are located\n\n[Developer Guide](https://github.com/elibroftw/music-caster/wiki/Developer-Guide)\n\n### Linux Build Guide\n\n- Define correct PY variable (requires rebuilding the image)\n- Obtain the mc-builder Image\n  - Option A: `docker pull elibroftw/mc-builder`\n  - Option B: `docker build . -t elibroftw/mc-builder`\n    - Remember to have Docker desktop/daemon running already\n- Build source code using: `docker run --rm --volume .:/var/music-caster elibroftw/mc-builder`\n\n### Virtualenv\n\n```sh\npython3.12 -m venv .venv\n.venv\\Scripts\\activate     # Windows\nsource .venv/bin/activate  # Non-Windows\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felibroftw%2Fmusic-caster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felibroftw%2Fmusic-caster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felibroftw%2Fmusic-caster/lists"}