music-caster icon indicating copy to clipboard operation
music-caster copied to clipboard

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.

>

GitHub Releases Source Forge

Music Caster is a modern music player that can cast audio files and urls to Google Chromecasts, Home minis, etc.

Donate or Translate

  • monero:84PR6SkYd5zaFLKDjAFrQfbaAg2c7SV3q3XDZ15QCpEZUggrN4YzY7n8m9XC3deXjo41yWHTm1LrsUpPTYGnRQbD9Cwp8En
  • PayPal
  • Translate Music Caster to other languages

Download (Windows)

  • 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

Linux

It 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
~/bin/music-caster/linux_install.sh

Music Caster Video Demo Thumbnail

Limitations

  • Chromecasts only support the AAC version of WMA files
  • Emojis might not work well. There's always settings.json + WEB GUI though
  • Road Map

Power User Features

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
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)

Editing settings.json

  • 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

Data Collection / Privacy Policy

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