[mythtv-users] The Daily Show with mythnetvision

Doug Vaughan r.d.vaughan at rogers.com
Thu Jun 10 00:52:26 UTC 2010


Chris,
    If a source does not have an API then the next best thing is a RSS 
feed. As you mentioned just using the RSS feed will sometimes only allow 
you to access the Web page. If you want to get full browser screen plus 
auto play then that takes additional work.
    
    First check the Terms Of Service (TOS) as what I will mention next 
may be illegal for some sources. Anything I mention next assumes that 
you are meeting TOS and have some programming experience. Make sure you 
read the grabber standards for the XML a grabber needs to produce. 
http://www.mythtv.org/wiki/MythNetvision_Grabber_Script_Format
    
Here are the steps I take to get to the goal of "Full browser screen and 
auto play" in MythBrowser. If you can also get download links to the 
video then that is gravy. You need to reverse engineer how the web site 
creates their video window. Usually the video is using a Flash player.

Steps:
1) View the source of the Web page in a browser.
2) Look for the <embed> tag. This can give you the html information so 
you can create a local HTML file to use as the link that MythBrowser 
executes. In MythTV trunk version of MythNetvision see the 
"mythtv/internetcontent/nv_python_libs/configs/HTML" directory for some 
examples. The grabber link would be for example 
"file:///usr/local/share/mythtv/internetcontent/nv_python_libs/configs/HTML/bbciplayer.html?videocode=b00s5nfv". 
Some sites make it easy as they actually provide the embed html code for 
you.
3) You now need to look at the RSS data and see what the "videocode" 
needs to be for each video item in the RSS feed. Sometimes that is 
straight forward but most of the times you will need to do a multi step 
process:
a) Read the RSS data.
b) Read the associated HTML page for an item as provided in the RSS data.
c) Find the "videocode" in the HTML page so you can create the link 
"file://....." as described above. When I write videocode I really mean 
the unique code used to identify a video. From the bbciplayer example 
above that would be "b00s5nfv" for one video on the BBC iPlayer site.
4) Test the link that your grabber will make in MythBrowser BEFORE 
developing the grabber. Firefox will play links that MythBrowser will 
not play.

It often takes a while before you can find the most efficient method of 
achieving the goals as stated above.

I have found that the best ways to parse XML and HTML at least with 
python is using the lxml libraries. These libraries support XPath 
expressions and XSLT style sheets. There are a growing number of 
grabbers that are implemented with the aforementioned technologies in 
MythTV trunk. See the MythNetvision wiki grabber table for grabbers 
marked for MythTV 0.24.

If you know python or want to learn it feel free to reuse the library 
functions found in "mythtv/internetcontent/nv_python_libs" directories.

Good luck.

Doug


More information about the mythtv-users mailing list