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.
api methods
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?