Problems converting back to the RadioTimes grabber – solved

Posted on Updated on

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 ***************************
sourceid: 1
name: Freeview
xmltvgrabber: /bin/true
userid:
freqtable: default
lineupid: NULL
password: NULL
useeit: 0
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

amaroK, two years on

Posted on Updated on

It’s over two years since I posted my experiences with amaroK. At the time I was impressed by the meta information like album grouping and album art lookups on Amazon.

Two years later, and I’m still using it. So obviously it’s stood the test of time. I’m using the Xine engine in amaroK, and have the multimedia keys on my M$ keyboard mapped using xbindkeys (config below) I am still on version 1.3.9, on Fedora Core 4, so some of the dcop stuff might now be redundant.

Some things I would recommend for listening to music on Linux

Use the Xine engine in amaroK
I think the sound quality is better than gStreamer, and file support is broader.
Rip to FLAC
amaroK/xine sounds great, so make sure you’re using a good source file. Disk is cheap these days.
Use replaygain to losslessly “normalise” your track volumes
replay gain uses tags to tell your player what volume to play your files at. There is a replay gain script for amaroK, which reads the replay gain comments out of the file, and adjusts your volume for you.
Rip with ABCDE
Add the following to your /etc/abcde.conf to tell flacenc to use add the replay gain comments to encoded music. FLACOPTS="--replay-gain"

As mentioned above, I use xbindkeys to bind commands to certain key presses. This is especially useful for making use off the multimedia keys on keyboards. My keys just call the DCOP commands in KDE to tell amaroK to stop/start/pause,adjust volume. I’m not sure if newer versions of amaroK still use DCOP, but for now, it works for me

from ~/.xbindkeys when using Microsoft multimedia split/ergo keyboard.

    "dcop amarok player stop"
    m:0x10 + c:164

    "dcop amarok player playPause"
    m:0x0 + c:162

    "dcop amarok player prev"
    m:0x0 + c:144

    "dcop amarok player next"
    m:0x0 + c:153

    "dcop amarok player volumeUp"
    m:0x10 + c:176

    "dcop amarok player volumeDown"
    m:0x10 + c:174

mythfilldatabase failing again

Posted on Updated on

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.

MythTV XMLTV grabber errors after upgrade

Posted on

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.

amaroK Music Player rocKs

Posted on

I rebuilt my work machine to Fedora Core 4, and couldn’t be bothered recompiling BeepMediaPlayer with MP3 and iTouch, WMA etc.

So I googled around a bit and found amaroK getting good ravings. The first few versions I tried were really unstable (running under XFCE), but recent versions have improved greatly. It’s still a bit flakey when the network is busy (downloading a large file) and playing music over the network, like from a share. It goes into squeaky fastforward mode, and then locks up if you have not changed tracks by the time it (quickly) gets to the end of the current track.

There are some Killer features for me though.

  • Album Art lookups on Amazon
  • On Screen Display (OSD)
  • Grouping of tracks with rankings and stuff.
  • RSS Podcasting support (I don’t have a iPod though, so have not tested the external device support)
  • Wikipedia lookups for artists is also a nice touch.

The things I am currently living with are:

  • no WMA support, or AAC I think (although this is possibly more a limitation of gStreamer than amaroK. I should check that)
  • The Network contention issue mentioned above
  • Can’t change volume from command line (I use xbindkeys for mapping my Multimedia keys to amaroK commands like next, previous etc)

All in all. I can live with this stuff for now, and the killer features really are keeping me amaroK’d up for the time being.

CSS: Making absolute block content relative

Posted on

In CSS, a block of content marked as position: relative is moved to it`s new relative location after the content is rendered (but before it is displayed). This means that area that would have been filled with the block maintains it`s size, but is empty. This is explained here.

However, you sometimes don’t want this behaiviour. You want the gap to close up. If you use absolute positioning, then this fixes the problem and the content is moved absolutely, the gap that would have been left in the page is used by other content and everybody is happy.

Except, what if your layout does not permit the use of position:absolute ? For example, you`re using margin-left:auto and margin-right:auto to align your content centrally. After much unsuccessful googling, I started looking on the CSS Zen garden site for layouts that might have the same problem, and I found this one. Looking though the code I spotted this gem

.#quickSummary { position:absolute; margin-top:90px; margin-left:322px; height:90px; width:260px;}

So it turns out to be a simple solution. Use position: absolute but don`t give a top/bottom/left/right position. The absolute position is determined by the margins, which end up being relative. I suspect it won`t work overly well without at least a size of some kind, but in my code I only provided a width and it appears to work in the limited testing I’ve done on firefox (linux and windows) and IE 5.5

Just thought that that might be useful to someone. It took me long enough to find.