This library is a client for the Roku ECP, which allows you to control Roku devices on your local network via http.
Roku::Discover
allows you to find a Roku device on your network.
Roku::Client
allows you to interact with Roku devices.
Roku::Input
is a small terminal application that provides keyboard shortcuts
for interacting.
Use the included bin script to get started.
$ roku
It will find your device and tell you when you're ready to interact.
If you don't want to use the included remote program, you can use the source library instead.
Find your Roku device and automatically configure the client to use it.
Roku::Client.find_device!
# => "http://192.168.0.106:8060/"
Begin interacting
Roku::Client.active_app
# => #<Struct:Roku::App:0x5611ec31c2a8
# id = "13535"
# name = "Plex"
# type = "appl"
# version = "5.3.4"
Roku::Client.keypress(:Play)
# => true
View lib/roku/client.rb for complete list of buttons presses.
This approach only supports one device at a time. I only have one device, so I can't test a scenario where multiple devices can be found on the network.