Roku-Box Media Server / Client
A simple rss media server and a client designed for the Roku set-top box.
Brian Taylor (firstname.lastname@example.org)
Special Thanks To:
all testers – Thank you for installing this code and providing feedback and suggestions. You make building this fun!
onecaribou – testing. contributing the DNS323 NAS installation guide.
umbighouse – helping debug the windows client and providing excellent beta testing feedback. Windows installation tips and scripts. Channel icon and theming.
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.)
The folder icon is distributed under the creative commons. All other channel theming artwork is Copyright 2010 umbighouse. All channel artwork is free for non-commercial use. Contact the original author if you would like to use the art under different terms.
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.
- Download and install python for your platform
- Put your Roku into developer mode
- Run springboard.vbs to install the channel on your Roku and start the server
Download and install python for your platform
You probably already have python installed. It’s pretty standard. Type python and if it starts up press Ctrl+D to quit and skip this section.
sudo aptitude install python
Go to http://www.python.org/download and select the Windows installer that suits your platform (32 or 64 bit.) Run it, accept all the defaults,
Put your Roku into developer mode
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.
Run springboard.py to install…
Run the automated client/server installation tool.
cd server python springboard.py
Double click on springboard.vbs or springboard_debug.bat.
Or, if that doesn’t work (because you put python somewhere weird):
Start | Programs | Python | IDLE
Menu: File | Open
Navigate to where you put roku_media_player
Menu: Run | Run Module (or press F5)
None of the included batch files or vbs scripts will work if you put python somewhere other than C:\Python26. If you installed python somewhere else then update the scripts you want to use as well.
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.
- If springboard.vbs doesn’t start try running springboard_debug.bat. If you recognize any errors then fix them and let us know what you did so we can help others. If a window opens and closes immediately then you probably didn’t install python at it’s standard location (c:\python26). Either edit the .bat to point at where you installed it or go through the alternate procedure of starting springboard through IDLE.
- Make sure you can get to your server from your server. Point a browser at http://localhost:8001/feed . If you changed the port number in your configuration then adjust the link appropriately. If this doesn’t work then the server probably isn’t running. Did you start it from springboard? If so, you should see a Tk window with a big button saying “Stop Server.” If you started it using the included launch_server.vbs script then press alt+ctrl+delete and make sure python is under the process tab.
- Make sure you can get to your server from another computer. Change localhost in the link above to the ip address of your server. If this doesn’t work then you almost definitely have a firewall in the way.
- Make sure the new channel appears on your home screen. If it doesn’t you may not have installed the client from springboard.
- If the client seems to hang on a loading screen you probably didn’t set the IP address of your server correctly in springboard. Also verify that a firewall isn’t blocking the port you selected.
For more help
There’s an active and growing community of users eager to help you. Drop by the forum http://forums.rokulabs.com/viewtopic.php?p=159473 or shoot me an email and hopefully we can work through whatever ails you.
Fire up your personal music channel. You should find it on your home channel listing. The new channel is 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 your collection using the arrow keys and the enter button and press enter to start a song. The up arrow will take you up one level in your collection and the Home button will exit the channel.
This is a work in progress. I welcome feedback from your experiences. Let’s make this readme file much better.