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.
Display languages: English, German, Spanish, French, Italian, Dutch, Russian*, and Ukrainian*
Unique users as of April 23rd 2023: 3,800
- monero:84PR6SkYd5zaFLKDjAFrQfbaAg2c7SV3q3XDZ15QCpEZUggrN4YzY7n8m9XC3deXjo41yWHTm1LrsUpPTYGnRQbD9Cwp8En
- PayPal
- Translate Music Caster to other languages
- IMPORTANT INFORMATION: The tray icon will be in the tray, so you will need to move it to your taskbar
- Command line installation:
winget install "Music Caster"
- VirusTotal scan
- If Music Caster is auto-removed, open "Virus & threat protection", then "protection history," and restore all files related to Music Caster
Not 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.
mkdir -p ~/bin && git clone --depth 1 https://github.com/elibroftw/music-caster.git ~/bin/music-caster
cd ~/bin/music-caster
./linux_install.sh # use sudo for non-interactive install in case a dependency needs to be installed
- Chromecasts only support the AAC version of WMA files
- Emojis might not work well. There's always settings.json + WEB GUI though
- Road Map
- Global media hot-keys are supported
- Web GUI (QR code in Settings window)
- Command Line Arguments
Here are Music Caster specific keyboard shortcuts aside from the global media hot-keys.
Shortcut | Window | Behaviour |
---|---|---|
Ctrl + Shift + Alt + M | Global | Activate Main Window |
Ctrl + (Shift) + } | Main | Toggle mini-mode |
Esc | Main | Close Window |
Ctrl + Shift + Q | Main | Exit Program |
Scroll | Main | Volume and Progress Bar |
⬆ / A | Main | Decrease Volume by 5% |
⬇ / D | Main | Increase Volume by 5% |
# | Main | Set Volume to # * 10% |
K | Main | Pause / Resume / Start Playing |
Shift + N | Main | Next Track |
Shift + P / Shift + B | Main | Previous Track |
J | Main | Rewind 5 seconds |
L | Main | Fast-forward 5 seconds |
Ctrl + R | Main | Cycle Repeat |
Ctrl + M | Main | Mute |
Ctrl + 1 | Main | Go to Tab 1 (Queue) |
Ctrl + 2 | Main | Go to Tab 2 (URL) |
Ctrl + 3 | Main | Go to Tab 3 (Library) |
Ctrl + 4 | Main | Go to Tab 4 (Playlists) |
Ctrl + 5 | Main | Go to Tab 5 (Timer) |
Ctrl + 6 | Main | Go to Tab 6 (Metadata) |
Ctrl + 7 | Main | Go to Tab 7 (Settings) |
- I do not recommend editing unless you know what you are doing
- Music Caster will detect changes within 10 seconds of editing
settings.json
- Some settings values are hidden from the GUI for good reason
Below is the reasonable data that is collected when errors are encountered. I'm sure other programs collect way more than necessary.
# in handle_exception,
payload = {'VERSION': VERSION, 'FATAL': restart_program, 'EXCEPTION TYPE': exc_type.__name__,
'LINE': exc_tb.tb_lineno, 'TRACEBACK': trace_back_msg, 'LOG': log_lines,
'MQ[0]': playing_uri, 'PLAYING_STATUS': str(playing_status), 'DEVICE': device,
'CWD': os.getcwd(), 'PORTABLE': not os.path.exists(UNINSTALLER),
'MAC': hashlib.md5(get_mac().encode()).hexdigest(), 'OS': platform.platform(), 'TIME': current_time}
In addition, I collect MD5 hashed MAC addresses and IP addresses in a Google Excel Sheet. Only 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.
- Hashed MAC so that I know how many users without knowing the actual MAC addresses
- IP because I can map out the IPs to a visual map to see where my users are located
- Define correct PY variable (requires rebuilding the image)
- Obtain the mc-builder Image
- Option A:
docker pull elibroftw/mc-builder
- Option B:
docker build . -t elibroftw/mc-builder
- Remember to have Docker desktop/daemon running already
- Option A:
- Build source code using:
docker run --rm --volume .:/var/music-caster elibroftw/mc-builder
python3.12 -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Non-Windows