Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Level 7

Home Media Server (Alpha) Release

I have now pushed the new version of my (renamed) Home Media Server project to github. The project page is here.

Please note -- this is an alpha release, targeted towards other developers and very experienced users. The docs are incomplete so the initial setup will be difficult.

The goal of this project is to eventually provide an easy to install home video server for the Roku player. Currently I use it on Linux and OSX. Other than the python dependencies it needs the mp4info utility to grab the details about the mp4 file.

The project consists of 2 major components - The Roku player application (the example videoplayer app, modified somewhat). And a Python server application using tornadoweb and a couple of python modules and system tools (mp4info being the important one).

The server includes streaming and a web interface for setup, configuration and per-user playlist maintenance. The html/css code for this is ugly, but functional.

With the web interface you can:
* setup multiple user accounts with separate logins and passwords so each user can maintain their own playlist
* setup multiple media source directories to be scanned for movies and audio
* Add free-form categories for the movies. Once you add a new category it becomes available to select from the drop-down list.
* Import details on movies from The Movie Database including cover art, description, actors.
* Edit all the details of a movie
* Add avatar's for the users that show up in the player UI

Currently it does not
* Have any confirmation check on 'delete' links, so be careful
* play music
* properly handle TV series and episodes
* properly support .bif file creation
* wash your socks

The Roku app is based on the videoplayer app, it can:
* show users's personal lists
* show all movies
* show the categories the user has picked for their playlists
* show details about the movie
* play the movie

The streaming server works with:
* roku
* vlc
* quicktime
* chrome
* iPhone example movie player app (mostly -- some of my media plays while others do not)

Some things it needs
* a different title graphic -- it still says Ted Talks
* artist/album/track support for playing music
* music player support
* TV/episode support
* Better looking web UI
* better docs
* Windows support

The server code is released under GPLv2 and I haven't decided how to release the Roku code. Since it is heavily based on the example code from Roku I am inclined to not put any kind of license on it -- although I would be disappointed to see someone close it up and not contribute changes back to the project.

So, download the code, file bugreports (github has a nice issue tracker integrated into the page), and have fun with it!

Also I am going to be giving a talk on the project in April at Linux Fest Northwest.

Brian
0 Kudos
10 Replies
Highlighted
Level 7

Re: Home Media Server (Alpha) Release

You're my hero. I hope you get this working soon. I'll be looking through the code to see if there is anything useful I can do.
0 Kudos
Level 7

Re: Home Media Server (Alpha) Release

There is another great home media server setup that allows your DVP to stream Music/Video,and (Photos - Beta). You should realy check it out. Well worth the littel setup required. Enjoy!

viewtopic.php?f=28&t=25955

-ashes00
0 Kudos
Highlighted
Level 7

Re: Home Media Server (Alpha) Release

I just added per-user playback position storage. So now everyone with an account can resume the same movie at different positions.

Next I'm going to work on getting bif support back in there.
0 Kudos
Highlighted
Level 7

Re: Home Media Server (Alpha) Release

Ok, I just pushed .bif support to the repository.

New Features
* Serve up .bif files
* Add .bif file path to database on initial media addition or on subsequent scanning
* Fixed makebif.py problems with image size and timing

The makebif.py changes may be of most interest. ffmpeg spits out 2 black images at the start, this was trowing off the timing. So I strip off one of them. But then the timing was so tight that when you hit play on a locaiton you were past it already, so I offset ffmpeg by 7 seconds at the start so that when playback starts you hit the .bif image after about 4-5 seconds.

I also modified it to use the info from mp4info to dynamically size the height of the .bif image so they should look correct (only tested with SD content).

Have fun with it!

Brian
0 Kudos
Highlighted
Level 7

Re: Home Media Server (Alpha) Release

Some more changes tonight:

* Delete now works for users, sources and media
* Output server IP when first run
0 Kudos
Highlighted
Level 7

Re: Home Media Server (Alpha) Release

Slides for the presentation I gave yesterday are available here on github
0 Kudos
Highlighted
Level 7

Re: Home Media Server (Alpha) Release

Thank you so much for this software. I'm currently running it with Ubuntu 10.04 RC. I would like to run the server portion as a service so i don't need a gui, but other than that it's pretty amazing on how light weight and snappy it is.

Thanks again
0 Kudos
Highlighted
Level 7

Re: Home Media Server (Alpha) Release

Just getting started with this. I am going to write a few notes for my future reference.

1. The initial user/password for this is admin/badpassword . That took me quite a bit of digging to figure out. Once you log in, create your own user so you can remember the name.
2. Don't delete the admin user, that would be like deleting 'root', which would just be a stupid thing that nobody would ever do. :roll: Admin is the only one who can add directories to the media library... (oops)
3. Definitely need to get port 80 working for video. I don't normally run iptables on this box (and stink at iptables rules) and so I ran
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 8888
Unfortunately a few modifications to that command set merely swapped ports 80 and 8888. Strange but working for now. I'll kill apache next time and get a proper iptables rule list.

Enough for now. I need to figure out how the organization of this thing works so I can sort and display videos (some of these aren't on tmdb so I need to do it manually).

Love the 'resume playing' feature, by the way, that will be awesome.
0 Kudos
Highlighted
Level 7

Re: Home Media Server (Alpha) Release

Thanks for the feedback, I've updated the README to be a bit clearer about the admin account.
0 Kudos