The official Plex client for the Roku. This client is maintained by a combination of Plex developers and community volunteers. We love contributors, so please don't be shy to fork and hack away.
Movies are filtered such that certain ratings are not able to be played. They still appear in lists, but the play etc. controls are disabled. Currently the following ratings are prevented:
12A, PG-13, 12, 15, 18, R, R18, NC17
If you're just trying to install the channel normally, you don't need to be
here. You can install the released version of the channel using the Roku
Channel Store. There's also occasionally a test version of the channel
released as a private channel, sort of like a beta. You can install that
using the private channel code plextest
.
Ok, if you're still reading then you presumably want to install from source and hopefully make some useful changes. You don't need to download or install anything from Roku, but you should take a look at Roku's developer site. In addition to the downloadable PDF documentation, you can browse the docs online. Roku's docs are well above average.
Before you can actually install Roku channels from source, you need to make sure your Roku is in "dev" mode:
- Using the Roku remote, press
Home-Home-Home-Up-Up-Right-Left-Right-Left-Right
- Choose to Enable the Installer
You only need to do this once, it will remain in dev mode. If you ever want to exit dev mode you can use the same remote sequence.
There's a Makefile that should take care of everything for you. You just need to set an environment variable with the IP address of your Roku. Assuming you're in a unix-like environment:
export ROKU_DEV_TARGET=192.168.1.2
(substituting your IP address...)cd Plex
make dev install
There are some additional targets in the Makefile, like make rel install
to
build a release, but you don't generally need them. One other nicety is the
ability to take a screenshot using make screenshot
.
Note: Some Roku versions are beginning to require HTTP authentication for
the installer. This is somewhat handled, but not necessarily robustly, so
you may need to make some tweaks. You can set environment variables for
ROKU_DEV_USERNAME
and ROKU_DEV_PASSWORD
, which default to rokudev
and
plex
respectively.
The Roku doesn't have logging per se, but dev channels are able to write messages to a console that you can tail using telnet. It's as simple as
telnet $ROKU_DEV_TARGET 8085
Did I already mention we love contributors? Please fork and hack away. Let us know in the forums what you're working on. And of course there's GitHub's standard notes on how best to contribute:
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
The Roku BrightScript compiler enforces a limit on the number of functions that can be defined by an app. This is particularly evil because the limit is different for the 3.x and 4.x firmware--512 and 768 respectively--which makes it very easy to develop against a Roku 2 and not notice. We've already exceeded the first gen Roku limit once before, and it's a very ugly crash.
So, any time you add a function, you need to make sure we're not over the limit and potentially delete another function (or subroutine) to free up a slot. While we're currently very close to the limit, there are plenty of areas that could be cleaned up to free some slots.
In particular, the things we've borrowed from SDK examples (screensaver and web server) could easily be trimmed. UnixNL and WinNL could easily be inlined, and the various logging functions could be combined.