I used to use the excellent RadioTimes XML data with the XMLTV grabber to get my listings for MythTV. When the RadioTimes data was a little slow in coming over Christmas and New Year, I gave the EIT listings data a try.
The EIT data (pulling the programme listings from out of the DVB signal) mostly worked, but I think my little argos indoor aerial is not quite reliable enough. I kept getting
Started PESPacket, but !payloadStart()
Error: offset>181, pes length & current can not be queried
and then the backend would crash. I can only assume that my DVB stream is too full of errors. I hope to get a proper loft aerial sometime, but generally recordings are “good enough” (as long as it’s not too windy).
The EIT grabber had run long enough to get a weeks worth of data, so I thought I’d turn it off and wait for the RT site to come back online. A few days later the wonderful people at the RT had their side all sorted, and I was in a position to re-instate the RT grabber. However, when I went back into mythtv-setup, XMLTV was not listed as an option when setting up the source. The mythtv-setup app would just spit out errors saying
Failed to run tv_find_grabbers
Since I had it running in the past, I knew it worked, but I had upgraded Fedora and MythTV since I had set up Myth, so maybe that script is missing from my machine, and I had not noticed.
I started out by re-running tv_grab_uk_rt --configure as per the Myth XMLTV page, and that did what it was supposed to do. Then I ran a test tv_grab_uk_rt --config-file ~/.mythtv/Freeview.xmltv --output /tmp/freeview.xml and it pulled down the listings correctly and dumped them into the xml file. So I ran mythfilldatabase again, and it still did nothing much. Therefore, the xmltv grabber must need to be configured in the database somewhere.
I had a look in the database, and found the following line
mysql> select * from videosource\G
*************************** 1. row ***************************
1 row in set (0.00 sec)
This looked promising, so I changed it to ‘/usr/bin/tv_grab_uk_rt’ and ran mythfilldatabase. However, it would complain that I was calling the grabber wrongly and the error was something like “You may need to upgrade your xmltv grabber”.
Then I changed it to just ‘tv_grab_uk_rt’ (because reading this post hinted at the fact that it might be hardcoded to the name, not the path) and it all started working again. Yey!
Don’t forget to check that all the channels are configured with the XMLTV IDs in the channel table, by looking at the Channel Info page in MythWeb (mine had all disappeared as part of the EIT change), and that your source has a corresponding xmltv file in ~/.mythtv/<sourcename>.xmltv
A few weeks ago, I found that mythfilldatabase was failing every night. It looks like it’s failing again and I am getting the same error but it appears to be for a different reason.
http://xmltv.radiotimes.com/xmltv/160.dat: Code point \u0000 is not a valid character in XML at /usr/lib/perl5/vendor_perl/5.8.8/XMLTV.pm line 1757 2007-11-02 09:18:14.826 ------------------ End of XMLTV output ------------------ 2007-11-02 09:18:14.828 FAILED: xmltv returned error code 65280.
I’ve downloaded the latest radio times channels file from CVS and I’ve upgraded perl-XMLTV and xmltv-grabbers from yum (FC6) as there were new ones available, but I am still getting the same thing.
I did get it to run once yesterday by commenting filmfour.channel4.com out of my .mythtv/Nova-T.xmltv channels file (as alluded to here), but it’s not really an ideal solution, since I do like to record movies on film4.
Someone on that thread seemed to think it might be a corrupted file cached somewhere, so as soon as I figure out what file it’s complaining about, I’ll try a
wget --cache=no and see what happens.
I recently yum’d my machine from FC5 to FC6, which went surprisingly well. Around the same time, MythTV 0.20.2 was released so I upgraded that as well.
However, at that point mythfilldatabase started erroring, and so my guide data was not updating. I did a few manual updates which would work fine, but the overnight job would always fail.
Looking through the logs I saw this message.
[Mon Sep 10 02:06:50 2007] Retrieving listings: 100% [Mon Sep 10 02:06:50 2007] Retrieving listings: 100% progress bar already finished at /usr/lib/perl5/vendor_perl/5.8.8/XMLTV/ProgressBar.pm line 70 2007-09-10 02:06:50.156 ------------------ End of XMLTV output ----------------- - 2007-09-10 02:06:50.169 FAILED: xmltv returned error code 65280.
It would never occur from an interactive shell, only from the overnight job, so I had a look at the options for the grabber to see if it would run silent, in the hope that it wouldn’t do the progress bar thingy, but the problem is that the grabber is a sub-process of mythfilldatabase.
After some delving I found that you can pass arguments to the grabber with –graboptions
So, my current config is a crontab like this, with the scheduled task in myth disabled.
/usr/bin/mythfilldatabase --graboptions "--quiet"
That seems to have worked perfectly for nearly three weeks, so I’ll look at implementing that into the mythfill setup in myth rather than running it from crontab.
I just thought it might be of use to someone.