My Media - Your Music and Video on the Roku DVP

Moderators: RokuDouglas, RokuShawnS, RokuRyan, RokuJamesL, RokuKen

My Media - Your Music and Video on the Roku DVP

Postby el.wubo » Thu Feb 11, 2010 11:23 am

My Media

A simple personal media server and channel for streaming your music, video, and photo collection to your Roku

MyMedia is a "private channel" which means you install it by clicking on a link instead of finding it by browsing through the Roku channel store. The installation of MyMedia is a bit more involved than most of the private channels you encounter because it requires that special software be running on both your Roku (the channel) and your personal computer (the MyMedia server.) Stick with it and soon you'll be listening to your music collection, watching your own movies, and browsing your own photos all streamed to your television through your Roku.

Add the channel to your Roku!

This is the place to ask questions if you have any! You can tell from the length of this thread that quite a few people use MyMedia and they love to help each other out.

You can also check out our wiki and our Frequently Asked Questions page.

Features so far:

* Stream MP3's and WMA's from your Windows, Mac, or Linux computer over your local network to your Roku DVP.

* Music is organized on your Roku using the same directory system you have on your desktop.

* MP3 ID3 tags provide metadata about the music

* Album art is displayed where available.

* Video (See encoding instructions in later posts)

* Uses your existing organization scheme. Just tell it where you keep your Music and Video.

* Music Shuffle / Loop forever

* Playlists

* Photo Browsing

* All open source. Artists, developers, testers, and writers are all welcome to join in and lend a hand to make this the media player we all want it to be.

Enjoy!
-Brian


Stop reading now unless you're interested in installing MyMedia in developer mode instead of using the private channel mechanism

Ok, you're still reading. I guess you want to do things the hard way. MyMedia is an open source project that encourages contributions from the community. As such, we also have a process to help you install MyMedia in developer mode so that you can tweak the channel code and contribute changes back to the community. If you're interested in doing this, follow these instructions:

Download it Here and follow the instructions at that page to get things set up.

Technical development group
http://groups.google.com/group/mymedia-roku-developers/

Main GitHub Page
http://github.com/netguy204/roku_media_server/


EDIT: Moved Video from being a planned feature to being a deployed feature.

EDIT: Added link to developers group.

EDIT: Changed download link to direct link

EDIT: Changed name to My Media (from My Music)

EDIT: Added Mac link, photo browsing is official planned feature now

EDIT: Updated primary links to point at new project page

EDIT: Tips n' hacks link

EDIT: Retooled now that we're a private channel
Last edited by el.wubo on Sun Mar 25, 2012 6:24 am, edited 16 times in total.
el.wubo
 
Posts: 243
Joined: Sun Jan 31, 2010 7:54 pm
Location: Baltimore, MD

Postby umbighouse » Thu Feb 11, 2010 11:50 am

For those of you who have gotten this working for Windows, here's how to automate the web server startup.


How to start the Python web server automatically
This can be done with a simple batch file. First, you should add en environment variable for your Python installation so that you can call the python.exe file from anywhere. To do this, modify the PATH statement in your environment variables to include this:
Code: Select all
c:\python26

To add environment variables in Windows 7 & Vista:
Right-click My Computer and then click the Advanced system settings link. Click the Environment variables button. In the System Variable section, select the PATH item and click the Edit button. At the end of this string, add a semicolon and then your new variable for Python.

Now, assuming that your Roku Media Player files are in a folder named roku_media_player, create a batch file like this:
Code: Select all
cd c:\roku_media_player\server
python rss_server.py

Save it as "roku_start.bat" to and double-click it to start your web server.

So you've noticed that the command windows stays open?
Here's how to run this without showing the command window (invisible mode)
Create another file that looks like this:
Code: Select all
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "c:\Python26\roku_start.bat" & Chr(34), 0
Set WshShell = Nothing

Save this file as "roku_start.vbs". When you launch this .VBS file, it will call the .BAT file you made above, but will not show the command window.

Now, how do I get this to run each time I start my computer?
Easy. Just put the roku_start.vbs (or a shortcut to it) into your Windows Startup folder.

Windows Startup folder locations
Windows 7 + Vista
NOTE: The all users Startup folder is a hidden system folder located at:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

Windows XP
C:\Documents and Settings\All Users\Start Menu\Programs\Startup

How do I stop the Python web server if I can't see the command window?
Normally, you could use CTRL+C to stop the web server, but without a command window, this isn't possible. Just open Windows Task Manager and on the Processes tab, sort the list to fine the process called Python. Select it and then hit the End Process button to stop the web server.
umbighouse
 
Posts: 54
Joined: Mon Dec 28, 2009 7:45 pm
Location: Oklahoma

video timeline

Postby srankin » Thu Feb 11, 2010 3:43 pm

I noticed personal video in the planned features. Any idea on a timeline for that?

thanks
srankin
 
Posts: 16
Joined: Tue Jan 06, 2009 8:53 am

Postby dougrb » Thu Feb 11, 2010 5:26 pm

I got the channel installed on Roku. Server is running... I can connect to http://<server IP>:8001/feed from another PC. Server IP address is correct on the roku.

The channel hangs on "retrieving..."

Could spaces in the music path cause problems? Anything else to check?

EDIT: Spaces in the path is the problem. Even enclosed in quotes.

"C:\Documents and Settings\Doug\My Documents\My Music" doesn't work but C:\Music does. Could be the path with spaces is too long also.
dougrb
 
Posts: 122
Joined: Thu Apr 23, 2009 4:29 pm

Postby el.wubo » Thu Feb 11, 2010 5:59 pm

dougrb:

I'm surprised that the path with spaces was the problem. I'll give that some more testing but I'm glad you got it working in the mean time. I think a few other testers have been successful with spaces in their music path. I know, on linux, that spaces work provided I don't enclose the path in quotes.

Other than that it sounds like your up in running. Did I understand you correctly? Does everything seem to be working?

srankin:

The major technical issue I'm still working through in my head is the best way to help everyone get their media into the correct format. The Roku player is very particular about supported video formats and everyone's favorite DivX isn't on the list.

The most ideal scenario would be to translate any video compression (within reason) in real-time to the format that the Roku expects. That way you don't have to spend a lot of time converting your video to yet another format and waste space storing it in that format. One of our users has done some speed testing going from DivX to H264+AAC (the preferred Roku format) and reported that the process was very slow and not suitable at all for real time.

Second most ideal scenario is that we put together a tool using one of the great catch-all libraries (avisynth comes to mind) that will automate converting your collection into the Roku format. Then everyone can schedule an overnight or several day batch job to get their stuff converted and go from there.

Finally, I could just take a weekend and get the player ready to handle H264+AAC format video and leave it up to everyone else to solve the conversion problem.

Timeline: Don't know yet. Still some improvements to be made in the music player and I want to focus on that right now. I'll keep you posted.
el.wubo
 
Posts: 243
Joined: Sun Jan 31, 2010 7:54 pm
Location: Baltimore, MD

Postby umbighouse » Thu Feb 11, 2010 5:59 pm

I use spaces in the path. Be sure not to use quotes, even with spaces. Are you using the springboard.py GUI file to do the install?
umbighouse
 
Posts: 54
Joined: Mon Dec 28, 2009 7:45 pm
Location: Oklahoma

Postby dougrb » Thu Feb 11, 2010 6:25 pm

I initially didn't use quotes and then figured I might need them. I did try a shorter path name with spaces C:\My Music Test and it works.
dougrb
 
Posts: 122
Joined: Thu Apr 23, 2009 4:29 pm

Postby el.wubo » Thu Feb 11, 2010 6:35 pm

dougrb:

Using your original setup (with the long path and spaces) were you able to browse and drill down into your collection when you connected to the server using your web browser?

If so, then this could be some limitation in path length in the client that we need to know about.
el.wubo
 
Posts: 243
Joined: Sun Jan 31, 2010 7:54 pm
Location: Baltimore, MD

Postby dougrb » Thu Feb 11, 2010 6:50 pm

AHHH... that's what the server page is supposed to look like. Here's what I get with the problem path name. I don't see any way to add file attachments. I'll try a cut and paste but it might be ugly (not like it's that pretty in HTML).

<class 'eyeD3.tag.TagException'> at /feed
Multiple PCNT frames not allowed.Python C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\eyeD3\tag.py in __loadV2Tag, line 1358
Web GET http://localhost:8001/feed

Traceback (innermost first)
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\eyeD3\tag.py in __loadV2Tag
...
raise TagException(str(ex)); ...
â–¶ Local vars
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\eyeD3\tag.py in link
...
padding = self.__loadV2Tag(f); ...
â–¶ Local vars
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\rss_server.py in file2item
...
if not tag.link(fname): ...
â–¶ Local vars
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\rss_server.py in getdoc
...
items.append(file2item(os.path.join(base,file), config, curr_image)) ...
â–¶ Local vars
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\rss_server.py in GET
...
return getdoc(config.get("config", 'music_dir'), config).to_xml() ...
â–¶ Local vars
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\web\application.py in handle_class
...
return tocall(*args) ...
â–¶ Local vars
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\web\application.py in _delegate
...
return handle_class(cls) ...
â–¶ Local vars
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\web\application.py in handle
...
return self._delegate(fn, self.fvars, args) ...
â–¶ Local vars
C:\Documents and Settings\Doug\Desktop\netguy204-roku_media_server-a66bfac\server\web\application.py in process
...
return self.handle() ...
â–¶ Local vars
Response so far
HEADERSVariable Value
Content-Type 'application/rss+xml'

BODY

Request information
INPUT

No data.
COOKIES

No data.
METAVariable Value
app_stack [<web.application.application instance at 0x00E12350>]
fullpath u'/feed'
headers [('Content-Type', 'application/rss+xml')]
home u'http://localhost:8001'
homedomain u'http://localhost:8001'
homepath u''
host u'localhost:8001'
ip u'127.0.0.1'
method u'GET'
output u''
path u'/feed'
protocol u'http'
query u''
realhome u'http://localhost:8001'
status '200 OK'

ENVIRONMENTVariable Value
ACTUAL_SERVER_PROTOCOL 'HTTP/1.1'
HTTP_ACCEPT 'text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1'
HTTP_ACCEPT_CHARSET 'iso-8859-1, utf-8, utf-16, *;q=0.1'
HTTP_ACCEPT_ENCODING 'deflate, gzip, x-gzip, identity, *;q=0'
HTTP_ACCEPT_LANGUAGE 'en-US,en;q=0.9'
HTTP_CACHE_CONTROL 'no-cache'
HTTP_CONNECTION 'Keep-Alive, TE'
HTTP_HOST 'localhost:8001'
HTTP_TE 'deflate, gzip, chunked, identity, trailers'
HTTP_USER_AGENT 'Opera/9.80 (Windows NT 5.1; U; en) Presto/2.2.15 Version/10.10'
PATH_INFO '/feed'
QUERY_STRING ''
REMOTE_ADDR '127.0.0.1'
REMOTE_PORT '9818'
REQUEST_METHOD 'GET'
SCRIPT_NAME ''
SERVER_NAME 'localhost'
SERVER_PORT '8001'
SERVER_PROTOCOL 'HTTP/1.1'
SERVER_SOFTWARE 'CherryPy/3.1.2 WSGI Server'
wsgi.errors <open file '<stderr>', mode 'w' at 0x00A540C0>
wsgi.input <web.wsgiserver.SizeCheckWrapper object at 0x00E64C70>
wsgi.multiprocess False
wsgi.multithread True
wsgi.run_once False
wsgi.url_scheme 'http'
wsgi.version (1, 0)
dougrb
 
Posts: 122
Joined: Thu Apr 23, 2009 4:29 pm

Postby wizzy1291 » Thu Feb 11, 2010 8:50 pm

I installed the latest version. WMAs play great. The artwork looks great.

CURRENT REQUESTS:
Artist Name/Album/Track displayed while songs are playing.
Pause function.

...and that's all I need.


I feel like Steve Martin in the Jerk:

http://www.youtube.com/watch?v=1el59ig9AK8
wizzy1291
 
Posts: 30
Joined: Wed Feb 10, 2010 10:28 pm

Postby wizzy1291 » Thu Feb 11, 2010 8:54 pm

Here's another point that might be obvious to many if not most (but wasn't instantly obvious to me), but if you are running the media server on your PC, you should probably assign that PC a static IP address.
wizzy1291
 
Posts: 30
Joined: Wed Feb 10, 2010 10:28 pm

Postby nrao1 » Thu Feb 11, 2010 9:46 pm

Think I did something wrong right of the bat. :-/

Followed the troubleshooting tips and I can't get to http://localhost:8001/feed. I do see a Tk window with a big button saying “Stop Server.â€
nrao1
 
Posts: 39
Joined: Sun Oct 25, 2009 7:40 pm

Postby wizzy1291 » Thu Feb 11, 2010 10:13 pm

Quirk report:

The client cannot handle non-standard english characters. So if you are trying to open a folder with (for example) an album with Spanish language songs with accents and special characters you will not be able to open the folder. Also, if you are trying to access an artist folder with a special character (like, I'm guessing Mötley Crüe) you will not be able to even access the artist folder.

The quick solution is obvious: just rename a couple files and you are good to go.
wizzy1291
 
Posts: 30
Joined: Wed Feb 10, 2010 10:28 pm

Postby hammerpocket » Thu Feb 11, 2010 11:25 pm

Is it possible to run the server on Mac OS X in its present form? And if so, can I configure it using springboard.py? I have launched springboard.py and have figured out most of the settings (need to check the Roku MAC address to find the IP), but I haven't yet clicked the "Launch Server" or "Install Client" buttons.
hammerpocket
 
Posts: 191
Joined: Tue Jan 19, 2010 6:43 pm

Postby el.wubo » Fri Feb 12, 2010 5:50 am

dougrb:

Looks like the ID3 library (the code that figures out the artist and album names) wasn't able to handle one of your mp3's and took down the server in the process. I've added some error checking that will make it skip the problem mp3 an keep going. If you run springboard_debug.bat or launch_server_debug.bat it will print out which MP3 it skipped. This is in the latest version at the usual place.
el.wubo
 
Posts: 243
Joined: Sun Jan 31, 2010 7:54 pm
Location: Baltimore, MD

Next

Return to Roku Streaming Player General Discussion

Who is online

Users browsing this forum: No registered users and 16 guests