MythTV HTPC – Fanart mit Jamu
von Benedikt
Ein Detail, das mich an meiner ansonsten ziemlich perfekten Mythbox noch gestört hat, war dass das Herunterladen der Fanart (Hintergrundbilder für den “Watch Recordings”-Screen) nur für Serien funktioniert hat. Für Filme hat es leider nicht funktioniert und in diesem Artikel geht es nun darum, wie ich es geschafft habe, verschiedene Skripte meiner MythTV-0.23-Installation so zu patchen, dass es doch funktioniert.
Vorbereitung
Ganz ganz wichtig: Bevor irgendwelche der hier beschriebenen Schritte durchgeführt werden, sollte ein DB-Backup gemacht werden. Ich würde außerdem empfehlen von sämtlichen Dateien, die geändert werden eine Sicherungskopie anzulegen. Außerdem möchte ich nochmal betonen, dass das hier beschriebene sich auf MythTV in Version 0.23 bezieht – es sollte bei 0.24 auch noch so ähnlich funktionieren, da aber Jamu mit MythTV 0.25 abgelöst wird, wird diese Anleitung dann nix mehr nützen.
Hintergrund
MythTV zeigt (je nach Theme – bei mir ist das Mythbuntu-Theme im Einsatz) auf der “Watch Recordings”-Seite Bilder zu den Aufnahmen an. MythTV selbst erwartet dazu, dass diese Bilder im richtigen Verzeichnis (bei mir ist das “/mythtv/fanart”) Dateien mit dem richtigen Dateinamen vorliegen – für eine Sendung die bspw. “Warehouse 13″ heißt, muss die entsprechende Datei “Warehouse 13 Season 1_fanart.jpg” heißen. Mehr macht MythTV selbst nicht.
Die Bilder werden von Jamu heruntergeladen und Jamu benutzt dazu verschiedene andere APIs – unter anderem die Python-Library tmdb_api, um die Hintergrundbilder für die Filme herunterzuladen.
Ganz hilfreich beim Basteln ist der manuelle Aufruf von Jamu mittels folgendem Befehl (bei Mythbuntu sorgt normalerweise ein Cron-Job für den Aufruf):
sudo su mythtv -c "/usr/bin/python /usr/share/mythtv/mythvideo/scripts/jamu.py -MWV"
tmdb_api anpassen
In der mit MythTV 0.23 ausgelieferten Version ist die abgefragte Sprache im Source-Code der tmdb_api hartcodiert. Daher ist hier eine Anpassung notwendig, die die verwendete Sprache auf Deutsch umstellt.
Hier ist die angepasste Datei:
/usr/lib/python2.6/dist-packages/MythTV/tmdb/tmdb_api.py (Diff)
Jamu Patch
Der problematischste Teil ist Jamu selbst – hier musste ich viel Zeit reinstecken um die diversen kleinen Problemchen zu beseitigen.
Das Hauptproblem ist, dass Jamu ein bestimmtes Format der Metadaten zu den Aufnahmen in MythTV voraussetzt. Insbesondere wird davon ausgegangen, dass sobald eine Aufnahme einen Untertitel hat, es sich dabei um eine Serie handelt und es wird dann nicht mehr überprüft, ob’s vielleicht doch ein Film ist und es dafür Hintergrundbilder gibt.
Ich habe das Skript so angepasst, dass bei allen Aufnahmen mal geprüft wird, ob es nicht einen Film gibt der so heißt, falls für eine Serie mit diesem Namen nix gefunden wurde. Außerdem habe ich ein paar kleinere Bugs behoben und eingestellt, dass nicht nur der deutsche Titel sondern auch der Originaltitel geprüft wird.
Hier ist das gepatchte Skript:
/usr/share/mythtv/mythvideo/scripts/jamu.py (Diff)
Locale-Probleme
Irgendwann hatte ich das alles dann so weit, dass es gut funktioniert hat für alle Filme, die keine Umlaute und kein scharfes S im Titel haben. Ich habe mich dann vertrauensvoll an die MythTV-Users-Mailingliste gewandt und dort auch sofort eine kompetente Antwort erhalten.
Hier ist das Problem, dass in Mythbuntu 10.10 die Locale beim Starten vom Mythbackend falsch gesetzt wird. Ändert man entsprechend den Informationen im MythTV-Wiki das Skript /etc/init/mythtv-backend.conf um in folgendes, klappt’s auch mit den Umlauten:
# MythTV Backend service
description "MythTV Backend"
author "Mario Limonciello "
start on (local-filesystems and net-device-up IFACE=lo)
stop on starting shutdown
#expect fork
respawn
script
ulimit -c unlimited # Note 1.
. /etc/default/locale # Note 2.
export LANG
export LC_ALL=$LANG
USER=mythtv
ARGS="--logfile /var/log/mythtv/mythbackend.log --user $USER"
test -f /etc/default/mythtv-backend && . /etc/default/mythtv-backend || true
/usr/bin/mythbackend $ARGS $EXTRA_ARGS
end script
Wenn alle Stricke reißen
Falls es trotzdem mal bei dem ein- oder anderen Film oder einer Serie nicht klappt, etwa weil der Titel in den EPG-Daten sowieso schon falsch war, kann man auch das Bild manuell an die richtige Stelle im Filesystem legen, so dass es von MythTV ausgelesen werden kann.
Das kann man entweder dadurch erreichen, dass man auf www.thetvdb.com das entsprechende Bild für eine Serie oder auf www.themoviedb.org für einen Film sucht. Das heruntergeladene Bild muss man dann umbenennen in “<Name des Films bzw. der Serie> Season 1_fanart.jpg” und in das richtige Verzeichnis legen (je nachdem entweder /mythtv/fanart oder /mythtv/coverart).
Wichtig ist noch danach mittels
rm -rf ~/.mythtv/themecache/*
den Themecache zu löschen, damit die Hintergrundbilder auch korrekt angezeigt werden.