I am currently in the process of writing a netflix/youtube-like app that allows you stream movies on your local LAN (eventually, perhaps over the internet even, but that is not an immediate priority, especially given my limited data transfer allowance by my ISP) using a web interface.
I am writing this mostly for personal use as a spare time project, but intent to release the code over some Creative Commons when done. However, I encountered a massive roadblock with Web2py. Streaming large video files (over 1GB) is painfully slow (sometimes, the movie doesn't load at all and either way, the framework doesn't recover from attempting to stream such a file in a graceful manner when the user aborts by clicking back in the browser window). At this point, I'm not sure if it's because of the Framework itself or the underlying server. I tried with both Rocket and Tornado to no avail. I was tempted to try with Apache, but then thought that if I wanted to make the app available for regular Joes to use, that might not be the most user-friendly way to distribute it. I tried with various client-side technologies (in-browser video with html5, VLC plugin, embeded DivX player, embedded WMP) to no avail. Then, just for kicks, I picked up a Node.js introductory book (Learning Node by O'Reilly) which I'm in the process of reading and tried their streaming example with a large video file and it worked a lot better. At this point, I'm tempted to use web2py for most of the app, but delegate video streaming to node (they can communicate via the database and/or sockets). Am I crazy or does my idea make sense? --