The Myth Video On Demand App or MythVodka, formerly MythStreams, is a plugin that plays streaming content full screen using the internal player. It supports flash/rtmp content (Hulu, BBC iPlayer) and http streaming content like Diggnation from anywhere (but I only use it for Revision 3 stuff).
It is currently only useful for people / computers in the UK (BBC) or US (Hulu). See #Other countries below.
This plugin is based heavily on the Movie Times plugin, which was an awesome starting point. It will become less based on this as development continues. So hats off to movie times streaming dev guy, and apologies from ripping off your code and messing it all up.
All content is downloaded in whatever ungodly format those crazy internet TV providers care to use, then transcoded into an mpeg2 (using either mencoder or ffmpeg) which mythtv plays. Its wasteful on resources and adds an extra dependancy, but is reliable. If anyone wants to help out and get the internal player to play the streaming h264 files, then be my guest!
You can see version .07 here: http://www.youtube.com/watch?v=VvQNEgEBFYM
Prerequisites: Mencoder (part of mplayer) Curl (in most distros) QMake MythTV Source (or so it seems) Perl XML-DOM []
cd into your mythplugins source dir then...
wget http://stashbox.org/352189/mythvodka.07.tar.gz tar xzf mythvodka.07.tar.gz cd mythvodka qmake mythvodka.pro make make install cp scripts/* /usr/local/bin/ wget http://garr.dl.sourceforge.net/sourceforge/rtmpdump/rtmpdump-v1.2a.tar.gz tar xzf rtmpdump-v1.2a.tar.gz cd rtmpdump make cp rtmpdump /usr/local/bin/ chmod 777 /var/tmp
Check your path on mencoder, mine is in /usr/bin/mencoder
Next you have to add the menu entries for the plugin:
Add the following lines:
<button> <type>STREAM</type> <text>Myth Vodka</text> <action>PLUGIN mythvodka</action> <depends>mythvodka</depends> </button>
Add the following lines:
<button> <type>SETTINGS_MYTHVODKA</type> <text>MythVodka Setting</text> <action>CONFIGPLUGIN mythvodka</action> <depends>mythvodka</depends> </button>
Out of the box at the very least it should be able to play Revision 3 content like diggnation, and if your in the UK then hopefully with those instructions iPlayer will work as well. Hulu does work but as I'm outside of the US I cant test connecting directly out. It takes ages to build the Hulu content, cos theres loads of it. If you think its too slow then set the gethulu.pl command as a cronjob (gethulu.pl /var/tmp/hulu.xml) and then change the grabber path to be a command that does '/bin/cat /var/tmp/hulu.xml'. No more hour long waiting for the data to be catalouged.
All credit for being smart and getting the iPlayer files goes to www.linuxcentre.net - they do the hard work, I just wrap it up into a plugin. All credit for Hulu grabbing goes to http://sourceforge.net/projects/rtmpdump/ and the XBox Media Centre guys, I just used some of there Python and the free open source rtmpdump tool. For the standalone hulu downloading app see the rtmpdump page.
In fact for the record all I've done is use the Python from XBMC for the grabber and RTMPDump, just put together the open source utilities, nothing new going on here. And not even packaged it up that well, its a pain to install, has loads of dependancies, wastes CPU and the GUI is rubbish. But still, it works.
get_iplayer has dropped support for hulu (http://linuxcentre.net/get_iplayer-dropping-channel4-4od-demand-five-and-hulucom/). The developer preferred to focus on BBC due to hulu obfuscating their HTML and adding "actionscript decryption functions". Perhaps, something could be done with the gethulu.pl script, but the script would have to keep up with hulu's anti-scraping attempts.
I have not successfully finished installing MythVodka on my system, but using the information at http://ubuntuforums.org/showthread.php?t=1006069 and the above information, this is what I've managed so far. After installing the prerequisites, the compiling of the mythvodka source went much more smoothly.
$> sudo apt-get install libmyth-dev python-beautifulsoup curl qt4-qmake libxml-dom-perl $> sudo apt-get source mythplugins
$> wget http://mythvodka.googlecode.com/files/mythvodka.07.tar.gz $> tar -zxvf mythvodka.07.tar.gz $> cd mythvodka/mythvodka $> qmake mythvodka.pro $> make $> sudo make install $> sudo cp ../scripts/* /usr/local/bin $> sudo mv /mythtv/plugins/libmythvodka.so /usr/lib/mythtv/plugins/ $> sudo rm -rf /mythtv $> wget http://www.linuxcentre.net/get_iplayer/get_iplayer $> chown +x get_iplayer $> sudo mv get_iplayer /usr/local/bin $> sudo cp streams-ui.xml /usr/share/mythtv/themes $> cd /usr/share/mythtv/themes $> for i in `ls | grep -v streams-ui.xml`; do sudo cp streams-ui.xml $i/; done $> cd /usr/share/mythtv $> sudo vim library.xml <button> <type>STREAM</type> <text>Myth Vodka</text> <action>PLUGIN mythvodka</action> <depends>mythvodka</depends> </button> $> sudo vim media_settings.xml <button> <type>SETTINGS_MYTHVODKA</type> <text>MythVodka Setting</text> <action>CONFIGPLUGIN mythvodka</action> <depends>mythvodka</depends> </button>
I'm not living in the UK / US, but want to get BBC iPlayer / Hulu content
This is generally not possible, because both BBC and Hulu restrict visitors / watchers to the UK (BBC) and US (Hulu), based on geolocation of the IP address. This is due to licensing of content and / or financing.
You can get around it by renting a "Virtual Private Server" (VPS, from a web hosting company) in the country the content is in, so for beeb get a VPS in UK, for Hulu get a VPS in the US. If this is all your using it for, you should be able to get by with a 64 MB RAM box which should be very cheap. Install debian, apache2 and PHP, download and build the RTMP dump tool and then use the PHP script in the scripts folder of this release, its setup for Hulu. Then if you goto http://yourserver/stream.php?url=http://www.hulu.com/watch/2711/family-guy-padre-de-familia (for example, put in any episode page) it will stream the flv. You can use it with the included hulu-int script that instead of downloading the vid directly grabs it from the US server.
Whether this is legal, is up to you to determine.