#tv #remote #roku

roku-ecp

A library for the Roku External Control Protocol (ECP)

4 releases

0.0.3 Jan 26, 2021
0.0.2 Jan 25, 2021
0.0.1 Jan 25, 2021
0.0.0 Jan 15, 2021

#876 in Hardware support

MIT license

27KB
521 lines

roku-ecp-rs

Expect breaking changes until 0.1.0 since Roku ECP has incorrect/missing documentation.

Documentation Crate

A Rust crate for Roku's External Control Protocol.

Installation

Add the following to your Cargo.toml:

[dependencies]
roku_ecp = "0.0.3"

For usage, view the examples.

Available APIs

General:

  • query/media-player
  • keydown/<KEY>
  • keyup/<KEY>
  • keypress/<KEY>
  • launch/<APP_ID>
  • install/<APP_ID>
  • query/device-info
  • query/icon/<APP_ID>
  • query/active-app/<APP_ID>
  • query/apps/<APP_ID>
  • search
  • input (Accelerometer, Orientation, Gyroscope, Magnetometer, Touch and multi-touch)

TV:

Feel free to make a PR for these features. I do not have a Roku TV to test.

  • query/tv-channels
  • query/tv-active-channel
  • launch/tvinput.dtv

Dependencies

Operating Systems

Windows and macOS: None

Linux: OpenSSL + headers > v1.0.1

  • Debian: sudo apt install libssl-dev
  • Fedora: sudo dnf install openssl-devel

Async Runtime

This crate requires an asynchronous runtime such as tokio or async-std.

Finding Your Roku Device's IP

In the main menu, navigate to Settings > Networking > About.

Credits

@carloabelli's roku crate which was used as a reference.

Dependencies

~8–12MB
~202K SLoC