castme


Namecastme JSON
Version 0.3.1 PyPI version JSON
download
home_pagehttps://github.com/Blizarre/castme
SummaryREPL to stream music from a Subsonic server to a chromecast
upload_time2024-10-20 15:01:39
maintainerNone
docs_urlNone
authorSimon Marache-Francisco
requires_python<4.0,>=3.10
licenseGPL-3.0-only
keywords subsonic chromecast
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.35893s