# 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](https://www.navidrome.org/) only.**
### Installation (pip / pipx / ...)
`castme` is available directly in [pypi](https://pypi.org/project/castme/):
```
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
```bash
$ 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
```bash
[chromecast] >> queue Harld enI
Queueing Harold en Italie
```
- Display the queue
```bash
[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%
```bash
[chromecast] >> volume 50
[chromecast] >> volume +20
```
- Pause and resume
```bash
[chromecast] >> playpause
[chromecast] >> playpause
```
- List the backends and switch to the local backend to play the music on the computer
```bash
[chromecast] >> switch
Available targets: chromecast, local
[chromecast] >> switch local
```
- Skip the current song and display the new queue
```bash
[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
```bash
>> 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:
```bash
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.
Raw data
{
"_id": null,
"home_page": "https://github.com/Blizarre/castme",
"name": "castme",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "subsonic, chromecast",
"author": "Simon Marache-Francisco",
"author_email": "pypi@simon.marache.net",
"download_url": "https://files.pythonhosted.org/packages/de/b5/3f1df131a01f86b900cf58a7e84adbb957a2ed3d5a79ec8f81923a494546/castme-0.3.1.tar.gz",
"platform": null,
"description": "# CastMe\n\nCastMe is a simple Python REPL that allows you to cast music from a Subsonic server to a Chromecast device, or to the local device.\n\n**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](https://www.navidrome.org/) only.**\n\n### Installation (pip / pipx / ...)\n\n`castme` is available directly in [pypi](https://pypi.org/project/castme/):\n```\npip install castme\n```\n\nJust create the configuration file using `--init` and edit the content:\n\n```\n> castme --init\nConfiguration initialized in /home/blizarre/.config/castme.toml, please edit it before starting castme again\n```\n\nCastme 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.\n\n### Usage\n\nRun the script, and enter the commands in the REPL. For instance:\n- List the available Albums\n```bash\n$ castme\nCurrently playing on chromecast\n[chromecast] >> list\nSaint-Sa\u00ebns: Le carnaval des animaux Le onde\nBrandenburg Concertos 5 and 6 - Violin Concerto Harold en Italie\n```\n- Play an album based on fuzzy search\n```bash\n[chromecast] >> queue Harld enI\nQueueing Harold en Italie\n```\n- Display the queue\n```bash\n[chromecast] >> queue\n 1 Harold in the mountains (Adagio - Allegro) / Harold en Italie by Hector Berlioz\n 2 The Pilgrim's Procession (Allegretto) / Harold en Italie by Hector Berlioz\n 3 Serenade of an Abruzzian highlander (Allegro assai) / Harold en Italie by Hector Berlioz\n 4 The Robbers' orgies (Allegro frenetico) / Harold en Italie by Hector Berlioz\n ```\n- Set the volume to 50%, then increase by 20%\n```bash\n[chromecast] >> volume 50\n[chromecast] >> volume +20\n```\n- Pause and resume\n```bash\n[chromecast] >> playpause\n[chromecast] >> playpause\n```\n- List the backends and switch to the local backend to play the music on the computer\n```bash\n[chromecast] >> switch\nAvailable targets: chromecast, local\n[chromecast] >> switch local\n```\n- Skip the current song and display the new queue\n```bash\n[local] >> next\n[local] >> q\n 1 The Pilgrim's Procession (Allegretto) / Harold en Italie by Hector Berlioz\n 2 Serenade of an Abruzzian highlander (Allegro assai) / Harold en Italie by Hector Berlioz\n 3 The Robbers' orgies (Allegro frenetico) / Harold en Italie by Hector Berlioz\n```\n- Exit the app\n```bash\n>> quit\n```\n\ncommands: `help, list (l), next (n), rewind (r), play (p), playpause (pp), queue (q), quit (x), volume (v), clear (c)`.\n\nAliases are defined for the most common commands (in parenthesis).\n\n\n### Installation (dev)\n- Clone the repository\n- Install the required dependencies using Poetry or the `install` makefile target:\n\n```bash\nmake install\n```\n- Copy the config file template \"castme/assets/castme.toml.template\" to one of the supported directory and update the values inside\n - \"castme.toml\"\n - \"~/.config/castme.toml\"\n - \"/etc/castme.toml\"\n\nDuring development, `make dev` will run the formatters and linters for the project.\n\nThere is a debug mode that print additional information at runtime. Use the `--debug` flag.\n",
"bugtrack_url": null,
"license": "GPL-3.0-only",
"summary": "REPL to stream music from a Subsonic server to a chromecast",
"version": "0.3.1",
"project_urls": {
"Bug Tracker": "https://github.com/Blizarre/castme/issues",
"Homepage": "https://github.com/Blizarre/castme",
"Repository": "https://github.com/Blizarre/castme"
},
"split_keywords": [
"subsonic",
" chromecast"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "aadf655f871198a40706d0791dde8a4c6cc3d176e67d105911dfbb8144249439",
"md5": "39831da6b30e1e2f95bc63d70853aeb1",
"sha256": "f0e530787351958c38dd5daa30b0b2dd1516c8d2f63e72750b3abf2379d4f55a"
},
"downloads": -1,
"filename": "castme-0.3.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "39831da6b30e1e2f95bc63d70853aeb1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 25330,
"upload_time": "2024-10-20T15:01:36",
"upload_time_iso_8601": "2024-10-20T15:01:36.155051Z",
"url": "https://files.pythonhosted.org/packages/aa/df/655f871198a40706d0791dde8a4c6cc3d176e67d105911dfbb8144249439/castme-0.3.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "deb53f1df131a01f86b900cf58a7e84adbb957a2ed3d5a79ec8f81923a494546",
"md5": "d946f15db1bf665f5a4b16e552fc5832",
"sha256": "29f62a2a02e883b7c66e98dfb273a277014ba966c6ad104cf5b125f751a6ceee"
},
"downloads": -1,
"filename": "castme-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "d946f15db1bf665f5a4b16e552fc5832",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 23232,
"upload_time": "2024-10-20T15:01:39",
"upload_time_iso_8601": "2024-10-20T15:01:39.155646Z",
"url": "https://files.pythonhosted.org/packages/de/b5/3f1df131a01f86b900cf58a7e84adbb957a2ed3d5a79ec8f81923a494546/castme-0.3.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-20 15:01:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Blizarre",
"github_project": "castme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "castme"
}