Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

castme-0.3b2.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

castme-0.3b2-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file castme-0.3b2.tar.gz.

File metadata

  • Download URL: castme-0.3b2.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for castme-0.3b2.tar.gz
Algorithm Hash digest
SHA256 3637826381279e2a210b4e552c8d9f4c6498cfe8185289af246127098822a677
MD5 04bde1ef7f997ba546a0c4ae6ccc3fe5
BLAKE2b-256 dd0360221557ea50f8b18c9bc80b9a856dde6128f16fd4e41260a7c540c8622e

See more details on using hashes here.

File details

Details for the file castme-0.3b2-py3-none-any.whl.

File metadata

  • Download URL: castme-0.3b2-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for castme-0.3b2-py3-none-any.whl
Algorithm Hash digest
SHA256 c5d2258620853cf3db0b2a71e0304c67d8dc0c1a9c04dc0ead469ab4be57b47f
MD5 2dfae711717ea8d30328a1b1ac002d7c
BLAKE2b-256 3bd11d24495eeb18ab232cc81435572c1a710727fa5a059c4c5df88103a8fa54

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page