MythVodka

From MythTV Official Wiki
Jump to: navigation, search

Time.png Outdated: This plugin no longer runs against any current version of MythTV, and has been superseded by MythNetvision.

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 [[1]]

To install:

cd into your mythplugins source dir then...

wget http://mythvodka.googlecode.com/files/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


Important.png Note: You may not have qmake installed. This is the QT make utility. It often comes in the qt-devel or qt4-devel package on various distributions. Install this if you're missing qmake... You may need to explicitly call qmake with its full path (on Fedora 8 this is: /usr/lib/qt4/bin/qmake)

Next you have to add the menu entries for the plugin:

cd /usr/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>

vi media_settings.xml

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.

Mythbuntu Setup

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.

Prerequisites

$> sudo apt-get install libmyth-dev python-beautifulsoup curl qt4-qmake libxml-dom-perl 

$> sudo apt-get source mythplugins

End Prerequisites

$> 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
$> chmod +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>

$> cd /usr/local/bin

      • potentially dangerous command *** makes all files in the directory executable.

$> sudo chmod a+x *

      • for the UK start Mythfrontend, goto setup-> media settings -> mythvodka and remove entry for Hulu grabber as this is irrelevant for the uk

MythVodka will sort of work; The UI is a little messy; use the right cursor key to move to the next layer - the UI doesn't make it obvious that there are further layers (especially programs)

in my experience "revision 3" whatever that streaming service is will now work BBC will only retrieve one programme and that is expired so a timeout and error occurs.