[mythtv-users] mythfilldatabase wrapper to fix dupe detection errors
chris at cpr.homelinux.net
chris at cpr.homelinux.net
Sat Sep 16 02:49:07 UTC 2006
I've been complaining on here now and then about the fact that
MythTV often gets the dupe detection wrong, at least in my opinion.
The two things that were bothering me are:
(1) If a program has no subtitle then Myth would record every
episode even if I had enabled duplicate detection. Dean said it
was a "feature" that would prevent me from missing epsiodes if
Zap2It somehow didn't know what show was on. Never mind that it
will record the same episode 5 times in one day and block all the
lower-priority shows, and in almost every case that I've seen,
Zap2It knew *exactly* what show was on, as evidenced by the
"originalairdate" value that was different each time.
(2) In cases where an episode is presented in multiple parts, 0.19
will still miss the second and subsequent part if the subtitles are
the same (even though the "originalairdate" values are different).
I was wondering why Space would show one episode of "The 4400" at
the beginning of the season with no follow-up, and only just
realized that since it was a two-parter Myth had decided that I've
already seen the second part even though the originalairdate is
still in the future.
In order to regain some sanity in the dupe department, I have
modified my settings so that instead of just running
"mythfilldatabase", the backend calls "/usr/bin/mythfilldatabase.sh
--max-days 12" (because some channels don't provide 14 days of
listings and Myth won't fill in the gaps when days have partial
data). The bash script does the actual download and then runs a
MySQL script to patch up the tables. The patch consists of
appending the originalairdate (or starttime, if originalairdate
isn't available) to the subtitle field. I moved the original
mythfilldatabase to mythfilldatabase.real to prevent it from being
run without the SQL fixes.
What's really great about this (aside from the fact that Myth
actually records both parts of two-part shows and skips episodes
I've already seen a dozen times) is that when I look at the
listings in MythWeb, having the original date in the subtitle (as
opposed to just the word "rerun") makes it easier to see whether
the rerun is a re-broadcase of last weeks show or something they
dragged out of the vaults. For example, "Saturday Night Live:
~1976-06-07" is something I'll want to watch, whereas "Saturday
Night Live: ~1989-09-02" is worth missing.
I'm just posting them here in case anyone else is as frustrated as
I am and wants their Myth system to behave in a more rational
manner. Without further ado:
/usr/bin/mythfilldatabase.sh (root.root, 0744):
/bin/date > /tmp/mythfilldatabase.log
[ ! -x /usr/bin/mythfilldatabase.real ] && exit 1
[ ! -f /usr/bin/mythfilldatabase.sql ] && exit 1
(/usr/bin/mysql -vv < /usr/bin/mythfilldatabase.sql) \
>> /tmp/mythfilldatabase.log 2>&1
/usr/bin/mythbackend --resched >> /tmp/mythfilldatabase.log 2>&1
/usr/bin/mythfilldatabase.sql (root.root, 0644):
SET subtitle = CONCAT(
IF(originalairdate, originalairdate, starttime),
WHERE seriesid != '' AND subtitle NOT LIKE '% ~%'
SET description = 'No description.'
WHERE seriesid != '' AND description = ''
The result is that for multi-part episodes I now get:
"The 4400: The New World ~2006-06-04", "No description."
"The 4400: The New World ~2006-06-11", "No description."
and for non-subtitle series I get:
"How It's Made: ~2004-01-20", "Firefighter boots; garden tools."
"How It's Made: ~2006-01-10", "Springs; pavers; pianos."
More information about the mythtv-users