CastMe
CastMe is a simple Python REPL that allows you to cast music from a Subsonic server to a Chromecast device, or to the local device.
NOTE: The subsonic server must expose a URL over HTTPS. And since the chromecast will be the one connecting to the server, the certificate need to be trusted. This project is tested against Navidrome only.
Installation (pip / pipx / ...)
castme
is available directly in pypi:
pip install castme
Just create the configuration file using --init
and edit the content:
> castme --init
Configuration initialized in /home/blizarre/.config/castme.toml, please edit it before starting castme again
Castme will automatically look for the castme.toml
file in /etc
or in the current directory as well. use --config
in conjunction with --init
to set the location of the configuration file.
Usage
Run the script, and enter the commands in the REPL. For instance:
- List the available Albums
$ castme
Currently playing on chromecast
[chromecast] >> list
Saint-Saëns: Le carnaval des animaux Le onde
Brandenburg Concertos 5 and 6 - Violin Concerto Harold en Italie
- Play an album based on fuzzy search
[chromecast] >> queue Harld enI
Queueing Harold en Italie
[chromecast] >> queue
1 Harold in the mountains (Adagio - Allegro) / Harold en Italie by Hector Berlioz
2 The Pilgrim's Procession (Allegretto) / Harold en Italie by Hector Berlioz
3 Serenade of an Abruzzian highlander (Allegro assai) / Harold en Italie by Hector Berlioz
4 The Robbers' orgies (Allegro frenetico) / Harold en Italie by Hector Berlioz
- Set the volume to 50%, then increase by 20%
[chromecast] >> volume 50
[chromecast] >> volume +20
[chromecast] >> playpause
[chromecast] >> playpause
- List the backends and switch to the local backend to play the music on the computer
[chromecast] >> switch
Available targets: chromecast, local
[chromecast] >> switch local
- Skip the current song and display the new queue
[local] >> next
[local] >> q
1 The Pilgrim's Procession (Allegretto) / Harold en Italie by Hector Berlioz
2 Serenade of an Abruzzian highlander (Allegro assai) / Harold en Italie by Hector Berlioz
3 The Robbers' orgies (Allegro frenetico) / Harold en Italie by Hector Berlioz
>> quit
commands: help, list (l), next (n), rewind (r), play (p), playpause (pp), queue (q), quit (x), volume (v), clear (c)
.
Aliases are defined for the most common commands (in parenthesis).
Installation (dev)
- Clone the repository
- Install the required dependencies using Poetry or the
install
makefile target:
make install
- Copy the config file template "castme/assets/castme.toml.template" to one of the supported directory and update the values inside
- "castme.toml"
- "~/.config/castme.toml"
- "/etc/castme.toml"
During development, make dev
will run the formatters and linters for the project.
There is a debug mode that print additional information at runtime. Use the --debug
flag.