/roku-remote

A go CLI to interact with Roku devices on your local network

Primary LanguageGoMIT LicenseMIT

Roku Remote CLI

A go cli for interacting with Roku devices on your home network.

Setup

Build it yourself

git clone git@github.com:grahamplata/roku-remote.git
cd roku-remote
go build -o roku-remote -v .

Usage

Using SSDP (Simple Service Discovery Protocol) access your Roku's RESTful API

Usage:
  roku-remote [command]

Available Commands:
  apps        List the applications on your Roku.
  find        Find Roku Remotes on your local network.
  help        Help about any command
  live        Status of the Roku media player.
  send        Send an action to your Roku Device.

Flags:
      --config string   config file (default is $HOME/.roku-remote.yaml)
  -h, --help            help for roku-remote
      --host string     host ip of the roku

Use "roku-remote [command] --help" for more information about a command.

find

roku-remote find

Use the arrow keys to navigate: ↓ ↑ → ←
? Select a default Roku from your network:
  ▸ http://192.168.10.95:8060/
    http://192.168.10.122:8060/

help

roku-remote find

Using SSDP (Simple Service Discovery Protocol) access your Roku's RESTful API

Usage:
  roku-remote [command]

Available Commands:
  apps        List the applications on your Roku.
  find        Find Roku Remotes on your local network.
  help        Help about any command
  live        Status of the Roku media player.
  send        Send an action to your Roku Device.

Flags:
      --config string   config file (default is $HOME/.roku-remote.yaml)
  -h, --help            help for roku-remote
      --host string     host ip of the roku

Use "roku-remote [command] --help" for more information about a command.

live

roku-remote live

Playing: Plex - Stream for Free
Watched: 23m10.633

send

roku-remote send select

Sent select action to Roku

describe

roku-remote send select

Vendor:  Roku
Model:   Roku Express+ 3710X
Network: Free-Wifi
MAC:     xx:xx:xx:xx:xx:xx
Uptime:  30549
Version: v9.4.0

Available Actions

Navigation:  left, right, up, down, select, home, search
Keyboard:    backspace, enter
Remote:      fwd, rev, play, replay, tuner, poweroff, channeldown, channelup, volumedown, volumeup,  info, mute, replay
Inputs:      HDMI1, HDMI2, HDMI3, HDMI4

apps

apps is for interacting with channels on your Roku

Add, Launch and List available channels.

Usage:
  roku-remote apps [flags]
  roku-remote apps [command]

Available Commands:
  add         Add applications to your Roku.
  launch      Launch applications on your Roku.
  list        List the applications on your Roku.

Flags:
  -h, --help   help for apps

Global Flags:
      --config string   config file (default is $HOME/.roku-remote.yaml)
      --host string     host ip of the roku

Use "roku-remote apps [command] --help" for more information about a command.

Configuration

# .roku-remote.yaml
roku:
  host: http://192.168.1.1:8060/

Tree

.
├── LICENSE
├── README.md
├── cmd
│   ├── apps.go
│   ├── describe.go
│   ├── find.go
│   ├── helpers.go
│   ├── live.go
│   ├── root.go
│   └── send.go
├── go.mod
├── go.sum
├── main.go
└── roku
    ├── apps.go
    ├── config.go
    ├── instructions.go
    └── roku.go

Notes

  • Roku documentation
  • Rokus use External Control Protocol (ECP)
    • Enables a Roku device to be controlled over a local area network by providing a number of external control services.
    • The Roku devices offering these external control services are discoverable using SSDP (Simple Service Discovery Protocol).
    • ECP is a simple RESTful API that can be accessed by programs in virtually any programming environment.
  • On a Mac