Roku DVP Personal Media Server and Channel
A simple media server and a channel designed for the Roku set-top box.
With contributions from
all testers – Thank you for installing this code and providing feedback and suggestions. You make building this fun!
hammerpocket – mac PIL install guide
hoffmcs – server side improvements
renojim – video resuming. better channel error handling. overall improvements
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.
Initial development by:
Brian Taylor (email@example.com)
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 attribution 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. 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 in your music folder 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
- Download and install PIL
- Download MyMedia
- 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,
Download and Install PIL
To greatly improve the performance of photo browsing in My Media, you need additional software. The python imaging library is used to resize and thumbnail images for the slideshow feature. Follow these steps:
Download and install this package . Note that if you’re running 64 bit windows and 64 bit python you’ll need a 64 bit PIL. Since there isn’t a 64 bit version of PIL that’s official and tested we recommend you uninstall 64 bit python and install the 32 bit version so that you can run 32 bit PIL.
Linux users (debian/ubuntu)
sudo aptitude install python-imaging
Contributed by hammerpacket
IMPORTANT: PERFORM THE STEPS IN THIS ORDER.
1. Install library for conversion of jpeg images:
Download “Combo Installer: libpng & libjpeg” from the URL below and install from the disk image as you would any OS X app.
2. Install Python Imaging Library (PIL):
Open Terminal (in Applications>Utilities). Copy the following command and paste it into the terminal window and press [return].
sudo easy_install --find-links http://www.pythonware.com/products/pil/ Imaging
You will be prompted for a password. Enter the same password you normally use for OS X software installs. This command will find and install the appropriate version of PIL. The process may take a couple of minutes and it may appear nothing is happening. Be sure to wait until you see a bunch of scrolling text and the command line prompt (your user name followed by a dollar sign) before closing the window or entering any other commands.
If you want to check that PIL and libjpeg are connected, look a few lines up from the end of the text printed to the screen at the end of the install process. You should see a line that says that jpeg support is available.
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.
- music_dir – Full path to where you store all of your music
- video_dir – Full path to where you store all of your video
- server_ip – IP address (or hostname) of the computer that holds your music collection. The default value is likely to be correct.
- roku_ip – IP address of the Roku DVP (see notes above for obtaining this)
- collapse_collections – Deprecated. Set to False.
- max_folders_before_split – Makes navigating large music collections easier. 10 is a good starting value. Set to -1 to disable partitioning.
- python_path – Path to your python interpreter. The default value should be correct.
- server_port – Port number the server runs on. Use the default unless it conflicts with something else.
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.