nodeku
v1.0.20
Published
[](https://circleci.com/gh/sgnl/nodeku/tree/master)
Downloads
66
Readme
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() }`)
// 'xxx.xxx.xxx.xxx:8060'
return device.apps()
})
.then(apps => {
apps.forEach(app => console.log(app))
// [{ id, name, type, version }, ...]
})
.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
HomeRevFwdPlaySelectLeftRightDownUpBackInstantReplayInfoBackspaceSearchEnter
tests
$ npm test
references
Roku - External Control Service Commands Roku - Keypress Key Values
additional information
Only tested on OSX and with Roku3 device. halp?
