Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A client and server combo for serving mp3s and other local media over your local network to your Roku set-top box.
Python C JavaScript

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Roku-Box Media Server / Client

A simple rss media server and a client designed for the Roku set-top box.

Brian Taylor (
Copyright 2010

Special Thanks To:

umbighouse – helping debug the windows client and providing excellent beta testing feedback


The server code in this package is to be distributed under the terms of the GPL. The client code is also GPL but with a special exception for the Roku business entity (per their SDK license agreement.)

Some third party code is also included in the web, simplejson, and eyeD3 folders. Each of these are distributed under their author’s original license (look in their source to see what they are.)

Security Warning

The way the server works essentially exposes all of the mp3’s on your computer to an outside user with intimate knowledge of this program. Definitely don’t run this unless your local network is somehow isolated from the internet at large — ie, you’re behind a router.

In other words: If your IP address isn’t something like 192...* or 10...* — for the love of your data, PLEASE don’t run the server.


I don’t think it will happen but following these instructions could break your computer or your Roku. Don’t hold me responsible if they do. If this breaks something for you, I’m sorry, and if you ask nice I may try to help you. No promises, no warranty, good luck.


Install Python

Linux Users

You probably already have it. Type python and if it starts up press Ctrl+D to quit and skip this section.

Ubuntu users:

sudo aptitude install python

Windows Users

Go to and select the Windows installer that suits your platform (32 or 64 bit.) Run it, accept all the defaults,

Automated Installation

Run the automated client/server installation tool.


cd server


Start | Programs | Python | IDLE

Menu: File | Open

Navigate to where you put roku_media_player


Menu: Run | Run Module (or press F5)

All Users

Set all configuration variables in the tool. Click on “Install Client” to update your Roku (at the IP address you specified) and click on “Start Server” to start the server. Note that sometimes the Roku will automatically launch the client after you upload it. If this happens you’ll need to go back to the home screen and then launch it again after you’ve started the server.

You’re done!

Manual Installation

Ip Address Config

Modify the server/config.ini file to match your configuration. server/sample_config.ini is a good starting point

Start Server

Start the server by moving into the directory and running It’s important that server be the current working directory.

Linux Users

cd where/you/installed/roku_media_player/server

Windows Users

Start | Programs | Python | IDLE

Menu: File | Open

Navigate to where you put roku_media_player


Menu: Run | Run Module (or press F5)

Test The Server

Test the server by pointing your browser at it. If you’re on your sever right now go to:


(assuming you didn’t change the port number)

If you see a list of songs and collections you did everything right and are ready to install the client on your Roku box. If you see Something that looks like an empty RSS feed then you did everything but configure your music directory in the server. Kill the server, scroll up, make the edits under the heading and try again. If you see nothing, dunno what happened. Maybe firewall badness? Email me if you’re stumped.

Install the Client

Here’s some more legal hairy-ness. Based on the SDK agreement with Roku, I’m not sure what I’m allowed to tell you here… so you’ll have to discover it for yourself.

Search the web for “roku SDK” and hit the first link (the roku developers site.) Agree to everything, download the sdk, and in the documentation directory you’ll find a document called the developers guide which starts out with instructions for putting your player into development mode. Do that stuff. Write down the IP address of your player.

Option 1: Copy the prebuilt version

In the zips folder you’ll find Open this file and perform the source edits described above for appMain.brs. Zip this back up and, using the instructions you found in the developers guide, upload this file to your player using the web interface described in the developers guide. Note: If you want to participate in the development of this player you’ll have to figure out how to build these zip files yourself for your platform. Linux users can follow the instructions in option 2.

Option 2: Build it yourself

Linux Users

Set the environment variable ROKU_DEV_TARGET to the IP address you wrote down, go into the client directory, and type:

export ROKU_DEV_TARGET=yourRokuIpAddress
make install

Windows Users

If you’re a windows user, you’ll find some instructions in the Roku Developers guide for how to build apps for your player. Somehow you’ll want to zip up everything in the client directory (except Makefile) and upload that to your player. I’ve never done this so I can’t elucidate further. Please give me feedback on how this works.


Fire up the client. You should find it on your home channel listing. It’s called “Music Player” and has the subtitle “Play music from your local network.” It should very quickly give you a listing of the mp3’s and the subdirectories in the music directory you configured. Navigate, hit enter, and you’re off.

If it doesn’t, you may have forgotten to set the host name in either the client code or the server code. Do the server test above. If that works, try it again from another computer (if you can.) If that doesn’t work then you probably have a firewall problem. If you can get to your server from another computer then you probably didn’t set the host correctly when you edited the source code to the client. Go back and try again.

Still having problems? Email me and I may be able to help.

Good luck!!


This is a work in progress. I welcome feedback from your experiences. Let’s make this readme file much better.


Something went wrong with that request. Please try again.