XML EPG Horizon Category – Genremapper

PERL Script Genremapper

An dieser Stelle möchte ich euch meinen Genremapper vorstellen,
dieser ermöglicht uns die Anzeige der Content Icons in Tvheadend, sowie Die Möglichkeit ein farblich gekennzeichnetes EPG in Kodi zu bekommen, und natürlich die richtigen Genre.

Vorraussetzung dafür wäre das unsere guide.xml im abschnitt <category> die genormten EIT Genre beinhaltet.

So ziemlich alle TV-Guide Internetseiten auf denen webgrabplus+ grabbt haben ihre eigenen Category/Genre Definitionen, also ein großes durcheinander außerhalb der NORM!
Beispielsweise führt Horizon das Genre „Kinder, 10 16“
damit kann aber weder TVHeadend noch Kodi etwas anfangen.

Mein Script würde beispielsweise das gegrabbte „Kinder, 10 16“ nach EIT NORM „“Entertainment programs for 10 to 16“ mappen.

 

Inhalt vor dem mappen :

  <programme start="20190116001000 +0000" stop="20190116005500 +0000" channel="Das Erste HD">
    <title lang="de">Die Kanzlei</title>
    <sub-title lang="de">Schattenspiele</sub-title>
    <desc lang="de">Susanne Nielsens Sohn Dirk wurde in der Fernsehshow 'Deine 15 Sekunden' vom bissigen Moderator als Witzfigur verspottet. Dirk brachte sich daraufhin um.
    <credits>
      <director>Thomas Jauch</director>
      <actor>Sabine Postel</actor>
      <actor>Herbert Knaup</actor>
      <actor>Katrin Pollitt</actor>
    </credits>
    <date>2018</date>
    <category lang="de">Drama (serie)</category>
    <category lang="de">Krimi</category>
    <icon src="https://wp20-images-de-dynamic.horizon.tv/Linear_Images/180245403.box.p.9a3ea0a217677fe8a11a5f689064ae8d21cc3005.jpg" />
    <episode-num system="onscreen">S4 E9</episode-num>
  </programme>

Inhalt nach dem mappen:

  <programme start="20190116001000 +0000" stop="20190116005500 +0000" channel="Das Erste HD">
    <title lang="de">Die Kanzlei</title>
    <sub-title lang="de">Schattenspiele</sub-title>
    <desc lang="de">Susanne Nielsens Sohn Dirk wurde in der Fernsehshow 'Deine 15 Sekunden' vom bissigen Moderator als Witzfigur verspottet. Dirk brachte sich daraufhin um.
    <credits>
      <director>Thomas Jauch</director>
      <actor>Sabine Postel</actor>
      <actor>Herbert Knaup</actor>
      <actor>Katrin Pollitt</actor>
    </credits>
    <date>2018</date>
    <category lang="de">Soap / Melodrama / Folkloric</category>
    <category lang="de">Detective / Thriller</category>
    <icon src="https://wp20-images-de-dynamic.horizon.tv/Linear_Images/180245403.box.p.9a3ea0a217677fe8a11a5f689064ae8d21cc3005.jpg" />
    <episode-num system="onscreen">S4 E9</episode-num>
  </programme>

 

Hier das Script, immer Akuell in meinem github.com/DeBaschdi.

Da das Script in Perl geschrieben ist, verlangt es nach einem installierten perl.Nach dem Runterladen muss das Script ausführbar gemacht werden, als Root einmal :

chmod a+x genremapper.pl

Anschließend lässt sich das Script wie folgt benutzen :

./genremapper.pl < /pfad/zur/alten/guide.xml > /pfad/zur/neuen/guide-mapped.xml

In dem Script ist eine „Warnung“ eingebaut, eine die euch informiert falls ein genre gefunden wurde, für das es keine Definition zum mappen gibt.
Diese neue Definition könnt ihr im Script selbst hinzufügen.
Ich hoffe das Script ist selbsterklärend, sodass ihr es selbst „aktuell“ halten könnt.

Erklärung :

Also, es gibt natürlich wie für alles andere auch eine „Norm“
Tvheadend und Kodi kennen „nur“ die „echten“ genormten Genre als solche. EN 300 468 (Seite 40)

Was der Genremapper anstellt ist folgendes :
Ganz oben wird z.b folgendes definiert :

my $MOVIE = "Movie / Drama";

Links ist unsere „Gedächtnisstütze“ , rechts steht die genormte ETSI Bezeichnung.
Jetzt kommt beim grabben z.b folgendes vor :

"Warning: Unmanaged category: "Spielfilm'"

Das bedeutet das für „Spielfilm“ kein mapping im Genremapper stattfindet,weil nicht vorhanden.
Wir müssen es also definieren.

Zuerst überlegen wir uns, zu welcher genormten etsi Genre unser „Spielfilm“ am besten passt.Entscheiden wir uns für „Movie / Drama“ so mappen wir Spielfilm auf unsere „Gedächtnisstütze“ „$MOVIE“.Ab Ca. Zeile 100, wird gemappt, in unserem Beispielfall muss das jetzt so ausschaun :

"Spielfilm" => $MOVIE ,

 

Dir gefällt unser Beitrag?

Dann unterstütze unsere Serverinfrastruktur verbunden mit dessen Nebenkosten.

Tags:
Kategorie: