nodeku
Discover Roku devices via ssdp
and control the device with methods that perform http
requests to the device.
requirements:
- node
7.0.0 or higher
- connected to the same network as the Roku device.
- a router/network that supports UPnP (for ssdp)
usage
const Nodeku = require('nodeku')
Nodeku()
.then(device => {
console.log(`device found at: ${ device.ip() }`)
return device.apps()
})
.then(apps => {
apps.forEach(app => console.log(app))
})
.catch(err => {
console.error(err.stack)
})
getting started
$ npm install nodeku
nodeku
Invoking Nodeku
will return a promise and on success it will pass a device module. This module will contain the methods needed to control a roku device. Commands are sent to the Roku device via HTTP
protocol as found on the docs.
caveats
This project uses immutablejs which means all the data structures received through this module will be immutable.
method name | params | return type | details |
---|
.ip() | None | String | network ip and port xxx.xxx.xxx.xxx:8060 |
.apps() | None | List[{}, ...] | list of many objects with props: id, name, type, version |
.active() | None | List[{}] | list with one object with props id, name, type, version |
.info() | None | Map{} | map with too many(29) props |
.keypress('...') | String | Boolean | true if success, false if error |
.keydown('...') | String | Boolean | true if successful, false if error |
.keyup('...') | String | Boolean | true if successful, false if error |
'.icon(1) | Number | Buffer | jpeg image as buffer |
'.launch(1) | Number | Boolean | true if successful, false if error |
keypress values
Home
Rev
Fwd
Play
Select
Left
Right
Down
Up
Back
InstantReplay
Info
Backspace
Search
Enter
tests
$ npm test
references
Roku - External Control Service Commands
Roku - Keypress Key Values
additional information
Only tested on OSX and with Roku3 device. halp?