cast-central / service

Utilities and libraries used in all the cast-central packages
0 stars 0 forks source link

Circle CI

Cast Central

Welcome to 'cast-central' you're one stop shop for interfacing with casting devices (chromecast, or roku, send pull request if more is needed!) all in one place. Just start the 'cast-central-service' on a you're target linux machine and use the 'cast-central-client' to interface with it. Further information on what each gives you follows.

the_ecosystem

cast-central-service

This is the main service which controls all the casting devices on a single network. The cast-central-service is an express-js RESTFul web service which speak GET's and returns JSON. The cast-central-client simply helps generate the GET requests for the user.

Below are the current actions the cast-central-service can perform:

Discovery

Chromecast (courtesy of the 'node-castv2-client' and 'castv2-youtube' folks)

Roku (TODO)

This is in the works still.. It will be complete soon. You can follow this latest work on the 'develop' branch.

cast-central-client

This is the main interface for controlling the 'cast-central-service' while it's running. It is a full command line interface and allows for performing any action with the 'cast-central-service'.

Usage (because I'm lazy)

$ cast-central-client.js --help
Connect and control the cast-central-service.
Usage: nodejs ./bin/cast-central-client.js {list|launch|load|setVolume|setMute|seek|stop} <options>

Options:
  --host          The hostname/ip of the cast-central-service                               [required]  [default: "localhost"]
  --port          The port of the cast-central-service                                      [required]  [default: "8000"]
  -p, --protocol  Cast discovery protocol to use [mdns, ssdp]                             
  -s, --search    Search term to look for cast devices                                    
  -n, --name      Name of cast device to communicate with                                 
  -a, --app       Launch an application on the cast device [DefaultMediaReceiver, Youtube]
  -m, --media     Media to load onto launched application                                 
  --params        Extra parameters to send for the load action                            
  -v, --value     Value for seek, mute, or volume                                         
  --version       The version of the cast-central-service                                   [required]  [default: "v1"]
  --type          The type of cast to perform action on, available is chromecast            [required]  [default: "chromecast"]
  -t, --timeout   Amount of seconds to wait until give up                                   [default: 10]
  -h, --help      Shows this usage                                                        

Contribute

Feel free to fork and send pull requests whenever.. Please mind that this is definitely not my full time job but is a hobby and turns out to be pretty useful for controlling all of my chromecasts in one spot. Here are some things that will be in the works soon (unless someone else gets to them first).

In priority order:

  1. Add Roku support (once I buy one :-))
  2. Complete the unit tests.
  3. Complete the Documentation.