Saturday 29 March 2008

Using xmltv feeds with EyeTV

UPDATE: the Free*EPG service no longer provides an xmltv download. I have released a new version of the Applescript which downloads the EPG from OzTiVo.

In October last year I bought a Mac Mini to use as a media center. The software I am using is Elgato's EyeTV which does a great job of managing and recording TV shows. Initially I had setup schedules for each of the TV programs I was interested in, but this only works when shows are on at the same time every week (which the commercial networks are notorious at sticking to).

With the release of v3.0 in January one of the new features I was most interested in was "Smart Guides". This allows you to set your recordings based on search criteria (e.g find Top Gear or Doctor Who). This works well when you have a complete EPG. Now while 7, 9 and 10 transmit a 7 day guide, ABC1 & 2 only have one for the next 2 days and there nothing for SBS.

With the latest release of EyeTV (version 3.0.1) it allows xmltv files to be used as an EPG. First drag the downloaded xmltv file onto the EyeTV application. Now Go the the Channels in EyeTV and for each of the channels you want to use the xmltv file for the EPG set its EPG to xmltv.

EyeTV channel set to xmltv

In some cases if EyeTV cannot find the channel in the xmltv file it will ask you to select from a list of channels it has found in the file (this always seems to happen for SBS).

Select EPG from list

This works well, however, EyeTV needs to be restarted or the xmltv file dragged onto it for the EPG to be refreshed for a newly downloaded xmltv file.

I get my xmltv EPG from Free*EPG and to make my life simpler I have written the following Applescript which downloads the zipped file, unzips it and opens the xmltv file in EyeTV. The only user settings required is to enter your ClientID and Postcode into the two variables (they currently contain ????) and save the script.

To activate the script you can either set it to run via iCal or cron. For example I set iCal to run the script daily at 6:50.

iCal Event

The same script can be used to grab files from other services. I included a separate variable for the download link so this can be changed easily for other xmltv providers.

Edited 5th July 2008: updated locations of images

Edited 21st February 2009: included link to blog posting for the updated Applescript


Anonymous said...

Thanks a lot for the info and the script - works a treat!

Anonymous said...

Thanks for this it works great. A quick question though, after it opens and updates eyetv, can it be set so that eyetv closes again?


benb :)) said...

Great it works well for you!

To make EyeTV quit after loading the xmltv file put the following just before the "end run" line:

tell application "EyeTV"
end tell

Anonymous said...

Thank you I added those extra lines.


Unknown said...

egpstream are no longer accepting new members.

i would like to use this solution, with a different xmltv provider's url. my question is whether i need to install a different client and the tv_grab* file(s) for my specific region?



benb :)) said...

Actually epgstream discontinued the xmltv feed on 8th September :(

I am working on a new version, however this will not be quick as epgstream did a lot of the work aggregating the data for your selected region which I need to replicate.

If you have a different provider you can replace the URL with that. However, the applescript is expecting the unzipped file to be called free-epg.xml.

Also, EyeTV does not seem to like multiple xmltv files...

I don't know anything about tv_grab files, sorry.


Anonymous said...

Just wanted to say thanks for your script, did what it said on the tin, worked a treat. Unfortunately, as you've noticed, no longer works. I don't know why SBS can't get off it's aarse and supply the data through DVB, like ABC now does.

Anonymous said...

Thanks for the script! It helped a lot to automate my XMLTV guide updates.

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...

This is a cool script.
It was great when I used it, but all of the Free to Air channels in AUstralia now make their schedule available via DVB.

In EyeTV, just change Service to None in Preferences->Guide.

Then next to each channel in the Channels display, change EPG to DVB.

Change to the Program Guide display. Right click on the right side of the screen and choose clear EPG database. Then right click and choose update DVB program guide. All channels will populate their EPGs.

Thank-you TV networks of Australia :)

Anonymous said...

Thanks for the script.