Music Caster is a modern music player that can cast audio files and urls to Google Chromecasts, Home minis, etc.
- 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"
(auto-updates on launch) - Screenshots
- VirusTotal scan
- If Music Caster gets auto-removed, open "Virus & threat protection", then "protection history," and restore all files related to Music Caster
- Developer Guide
- 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 |
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 |
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.
- 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