REPL to stream music from a Subsonic server to a chromecast
Project description
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
- Display the queue
[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
- Pause and resume
[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
- Exit the app
>> quit
commands: help list (l), next (n), 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file castme-0.3.0.tar.gz
.
File metadata
- Download URL: castme-0.3.0.tar.gz
- Upload date:
- Size: 23.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25672ebb697ae197c43e1086cdb8e7dc1e65949bda3cf5e93ccc8437ed3d9115 |
|
MD5 | ca9824577d38c6c46be6a8ed44616563 |
|
BLAKE2b-256 | bfb8cbe9178174cda33db37874e7db07b841326e0a390575fad4f8dcf48d66b4 |
File details
Details for the file castme-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: castme-0.3.0-py3-none-any.whl
- Upload date:
- Size: 25.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6af0f10b21471c48e109b9e675ac86317fdf69cc0ea05970f2cdcb6bba4c4a91 |
|
MD5 | 457a36db21b4e65585eaccd808432cac |
|
BLAKE2b-256 | 7b4539f5607758b364f90c672057a0af994cc40c9fa4bc2f3bc6d68da6442c7d |