Outdated: The BBC iPlayer MythStreams plug-in has been discontinued. Updated: Oh no it hasnt! Ive just been busy. And its now called Myth Video On Demand Killer App! Or MythVodka. And now it plays Hulu content.
MythVodka 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).
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 strreaming 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://uk.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://www.bewhere.co.uk/mythvodka.06.tar.gz tar xzf mythvodka.06.tar.gz cd mythvodka qmake mythvodka.pro make make install cp scripts/* /usr/local/bin/ wget http://www.linuxcentre.net/get_iplayer/get_iplayer mv get_iplayer /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:
cd /usr/local/share/mythtv vi library.xml
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 inctructions 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 cat /var/tmp/hulu.xml. No more hour long waiting for the data to be catalouged.
All creadit 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.
!!! Im out of the UK / US but want to get Hulu / BBC iPlayer content
What you need is a VPS 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 64meg 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.