Remoku - A Web App for Remote Control of Roku Players

Copyright 2012, A. Cassidy Napoli. All rights reserved, licensed under the Simplified BSD License Terms.

What it does
  • Will discover and control Rokus on a local network, configures itself with minimal user input
  • Supports all features found on the newer Roku remotes, except game remote functions (motion, A and B)1
  • Supports direct text entry
  • Supports touch devices and desktop browsers
  • On devices with keyboards, keyboard shortcuts are available, see step 3 below for reference
  • Works on recent versions of most major browsers

Requirements

  • Just an up-to-date browser! 2

Getting Started

1. Browse to remoku.tv
If your browser supports it, the remote will be automatically installed. 

Some browsers may prompt you to allow the website to store data for offline use. It is recommended that you allow offline data storage for Remoku.tv, so that the app is always available for use, even if the website is having problems. 
2. The first time you use Remoku you'll need to scan for Rokus, or manually add one in Settings before you can use the remote:

Search Help

In order to search for Rokus, Remoku first needs to know the base network address (e.g. 192.168.1.X).
An easy way to determine the base address is to consult your home router's user manual for the address you use to connect to its administration page.
Some of the most common home networks are listed below:
192.168.0.X
192.168.1.X
192.168.2.X
10.0.0.X
10.0.1.X
10.1.0.X
10.1.1.X
10.1.2.X
10.2.1.X

TIP: If you find that your Roku's address changes frequently, and thus you have to scan frequently, you may wish to set a dhcp reservation for your Roku on your router. This will assure that the Roku always gets the same address. Most home routers support DHCP reservations (although sometimes under a different name).  Consult the manual or support site for your router to enable this feature.
3. After setup, you can start using the remote by clicking on the remote icon and using the image below for reference:

Ways to use Remoku

Besides visiting remoku.tv in your browser Remoku is also available in the following forms:

  • Browser Add-On
        For browsers, Remoku is in available in the following forms:
(Note: for Internet Explorer (8+), install Remoku as a 'Web Slice'.
To install, click Remoku's About icon. Then hover your mouse over the version information box (beneath the help link), you should see the web slice icon: Web Slice Icon. Clicking the icon will cause Internet Explorer to request permission to add Remoku's web slice to your favorites bar.)

  • Mobile App

    • On iPads, iPhones and iPod Touch devices, you can add Remoku to your home screen to launch it full screen and use it like a regular app. Just use the Safari Action button: and choose "Add to Home Screen".

    • On Android devices, Bookmark the page you want to add to a Home screen, open the browser “bookmarks” screen, long-press the bookmark you want, then select “Add to Home screen”.

  • Mac/PC/Desktop App

    • Use Remoku as a native-feeling MacOS X app, via http://fluidapp.com/

    • Using Chrome, you can choose to "Create Application Shortcuts" from the Tools menu. Then you can choose to place shortcuts to Remoku onto your Start Menu, Taskbar, and/or Desktop to get a Roku remote for PCs. Chrome web apps launch in their own window, so you can also use Remoku like a native desktop app.

Goodies

Macros

  • Macros use a subset of JSON; each Macro consists of a name, and one or more commands. Each command can have one parameter.
  • In addition to button presses, Remoku also support the following features for macros: text strings, pauses,  loops, channel launch and input parameters.
  • Each command in a macro takes the following form: {"commandname":"parameter"}
  • You can string multiple commands together by seperating them with commas.
    • Example: {"commandname":"parameter"},{"commandname":"parameter"}
    • Some working example commands: {"keypress":"Home"},{"keypress":"Play"}
  • The "wait" command will pause the macro for the specified time.  The wait parameter is specified in HH:MM:SS, HH and MM may be omitted.
    • Example: {"wait":"30:00"} <-waits 30 minutes
  • Loops will repeat the entire macros when prepended to the sequence using a "repeat" command.
    • Example: {"repeat":"5"},{"keypress":"Play"},{"wait":"30:00"} <- Send a Play command then wait thirty minutes, repeat sequence 4 more times.
  • Valid Commands:
    • keypress, keyup, keydown
      • These commands all take the same possible parameters:
        • Home
        • Rev
        • Fwd
        • Play
        • Select
        • Left
        • Right
        • Down
        • Up
        • Back
        • InstantReplay
        • Info
        • Backspace
        • Search
        • Enter
      • keydown should always be followed by a keyup of the same type.
        • Example: {"keydown":"Right"},{"wait":"00:05"},{"keyup":"Right"} <-Equivalent to holding right arrow key down for 5 seconds)
    • launch
      • launch takes an app id and, optionally, additional URL parameters, in the format: appId?params
        • Example:{"launch":"11?contentId=12"} <- Launch the Channel Store focused to the Netflix channel info page.
    • input
      • input sends commands to the currently running app (NOT YET IMPLEMENTED IN REMOKU).
    • text
      • Sends a string of text characters to the Roku, for input to search or text fields.
        • Example: {"text":"I am a string of text"}
    • wait
      • Pauses macro execution for the specified amount of time. Time is formatted as HH:MM:SS
        • Example: {"wait":"30:00"} <-Pauses execution for 30 minutes 
    • repeat
      • Loops through the rest of the commands in the macro for the specified number of times.  NOTE: repeats should only appear as the first command of a macro.
        • Example: {"repeat":"2"},{"keypress":"Up"}

Launchers

In addition to macros, Remoku also supports starting up the Shoutcast channel to a specific stream, and launching the channel store to a specific channel id.  These are provided as examples of the possibilities of launch and input parameters.  Interested Roku app developers are welcomed to contact me about implementation possibilities, involving Remoku or not!

Additional Support

If you need additional help or to report a bug you can request support using this form or post to the Remoku thread on the Roku Community Forums..

Version Information

Remoku doesn't use traditional (e.g. 1.1) version information.  It is designed so that you can choose between 3 different versions, referred to as channels:

Stable Channel- remoku.tv This is the channel most people will want to use.  The code it uses is considered the most tested and mature.

Beta Channel- remoku.tv/beta This channel contains code that may be ready for regular use, but which hasn't yet been highly tested by users. You can expect the occasional broken bit of functionality and for the interface to occasionally change at random.  Bug reports are welcomed!  In exchange for putting up with broken stuff and reporting it, you'll gain early access to features and the ability to give input about the direction they may take :).

Dev Channel- remoku.tv/dev  - Abandon hope all ye who enter here. Proceed at your own risk! This is where active development takes place, and no guarantee is made that it will be usable at any given moment.  Here be dragons!  Seriously, don't use it.

To use a different channel, simply visit the corresponding link above.  Settings are currently shared between the channels, although that may change in the future.

License

The Remoku web app is available under a simplified BSD license, so developers should be free to incorporate it into their projects, commercial or personal.

Development

The remote source code is available for independent review, reuse, or contribution. If anyone is interested in contributing code or style improvements, they would be most welcome. Let me know if you are interested, and we'll work out how to incorporate your contribution. All of the source is visible as html, css, and js files. 

Thanks

Thanks to: Gilgamesh, yungblood, manoflinux, crow550, fofer, ing5, steamer, and Schmye Bubbula for testing, and TheEndless for contributing the sliced remote images!

Notes

1)  The game remote has features that have yet to be publicly documented by Roku. If and when documentation is released, Remoku will be updated with support for any features possible.

2)  Chrome 11+, Firefox 4+ (and other Mozilla variants like IceWeasel 4+ and SeaMonkey 2.1+), Safari 5+, Mobile Safari/iOS devices(iOS 4.1+), Epiphany 3.2, Kindle Touch, and Internet Explorer 8+ are all confirmed to function with Remoku. Most devices are untested but expected to work if they have a modern browser, feedback on working/non-working hardware is very welcome.