[tvscraper] falsche Zuordnung Untertitel/Staffel/Folge

  • 1. Ich kenne auch keine API und ich denke auch, so ist das gedacht. Einzelne Serien würdest du nur über einen Web Zugriff bekommen. Aber es ist einfacher, einmal am Tag alles zu holen und dann lokal in z.B. /var/cache/vdr/plugins/tvscraper/eplists speichern.

    2. Englische Episodennamen sind selten, wenn es die gibt, dann in der Datei <Titel>.en.episodes . Alles ohne .* ist deutsch.

    Beispiel: eplists.de/eplist.cgi?action=show&file=American Dad.en

    3. Ich würde nicht versuchen, Suchergebnisse von thetvdb als Basis für eine Suche in eplists verwenden. Besser den EPG Titel verwenden, darauf ist eplists ausgerichtet. Bei abweichendem Titel können in eplists auch Links angelegt werden (Beispiel "Akte X"). Die passende Datei für die Suche nach dem Episodennamen ist immer <EPG Titel>.episodes

    Anmerkung: Doku vom Dateiformat hast du sicher schon gesehen, danke daran, dass eine Episode mehrere Episodennamen haben kann (#alternative)

    Format der Episodenlisten

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, tvscraper, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

    Edited once, last by kfb77 (October 9, 2025 at 7:47 PM).

  • Womöglich hilft da der Sourcecode von EPGD weiter?

    Gute Idee.

    Hier der Code von EPGD

    https://github.com/horchi/vdr-epg…0/series.c#L263

    Da werden nur die Änderungen seit dem letzten Download abgerufen (TGET newer than %d minutes). Macht Sinn, spart Traffic.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, tvscraper, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Nur mal als Beispiel:

    "Doctor Who", Folge "Silversternacht mit Daleks"

    Code
    https://thetvdb.com : Special (Season 0), Episode 158
    eplists:                       Season 13, Episode 7

    Ich will jetzt nicht diskutieren, ob eplists oder thetvdb recht hat. Ich will nur sagen, dass sich die Daten nicht mischen lassen.

    Wenn ich eplists anstelle von thetvdb verwende, verliere ich alle episodenspezifischen Daten von thetvdb:

    • Season Poster
    • Bild aus der Episode
    • Episode - Inhalt
    • Episode - Erstausstrahlung
    • Episode - Laufzeit

    Für mich: Sehr hoher Aufwand (eine weitere Datenbank), mit eingeschränkter Funktionalität.


    Alternative:

    Wir legen eine .json Datei ins Internet (z.B. im git, mit Schreibrechten für alle Portal-User, die danach fragen). In dieser Datei werden Episoden gepflegt, die

    1. (noch) nicht in thetvdb stehen: mit Staffel/Episodennumer, wie thetvdb sie vermutlich verwenden wird
    2. in thetvdb noch nicht übersetzt sind: mit Staffel/Episodennumer wie von thetvdb für die Originalsprache verwendet
    3. in thetvdb übersetzt sind, aber in thetvdb ist ein anderer Episodenname verwendet als im EPG (das kommt selten vor)

    Die zu 1. und 2. gepflegten Daten löschen wir, sobald die fehlenden Informationen in thetvdb verfügbar sind.


    Was meint ihr?

  • "Doctor Who" ist natürlich ein problematisch Fall, hier passt nichts. Bei den meisten Serien wird es keine großen Abweichungen geben, höchstens durch den Zeitpunkt, wann neue Folgen in deutsch eingefügt werden. Ich würde auch nicht grundsätzlich in beiden Datenbanken suchen, nur wenn man in A nichts findet, in B suchen. Schön wäre es, die Prio der DBs konfigurieren zu können.

    Die fehlenden Bilder/Infos würden mich nicht stören, Hauptsache Staffel/Folge stimmt. Wem das wichtig ist, kann ja thetvtb priorisieren, dann fehlen die Infos nur da, wo dort nichts gefunden wurde.

    Ob nochmal eine weitere Datenbank zu pflegen genug Nutzer finden wird, damit sie einen Mehrwert bringt, bezweifle ich. Vor allem als .json im git ist nicht für jeden machbar.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, tvscraper, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Nachtrag: Das setzt natürlich voraus, "in thetvdb nicht gefunden" zur realisieren. Aktuell sieht das für mich so aus, dass eine Zuordnung auf jeden Fall vorgenommen wird, egal wie schlecht der Treffer ist. Hier mal ein Beispiel, wo die Folge in deutsch nicht in thetvdb gepflegt ist:

    Da wäre es meiner Meinung nach sinnvoller, keine Zuordnung zu machen als "Eine Frage des Vertrauens" == "Ein Date in Gefahr". Es ergibt sich das Problem, dass die Wiederholungserkennung von epgsearch auf die tvscraper Felder der Meinung ist, Folge 5 sei bereits aufgenommen worden, obwohl dies nicht der Fall ist.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, tvscraper, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Wir legen eine .json Datei ins Internet (z.B. im git, mit Schreibrechten für alle Portal-User, die danach fragen). In dieser Datei werden Episoden gepflegt,

    Wäre es nicht besser die Daten gleich bei tvdb einzupglegen? Oder ist das arg kompliziert :?:

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte: MV_Backup (RSync) | MV_BorgBackup (Borg)
    Skin: Skin FlatPlus

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.7)

    VDR 2.7.7; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    > Systeminfo.txt < [VDR-User #1540]

  • > Wäre es nicht besser die Daten gleich bei tvdb einzupglegen? Oder ist das arg kompliziert

    Doch, das wäre besser. Teste doch bitte mal, wie aufwändig das ist.

  • Habe mal einen Account registriert. Ist eine menge klickerei, da jede Folge einzeln ausgewählt werden muss...

    Geht aber. Habe die Deutschen Titel eingegeben.
    .

    https://www.thetvdb.com/series/423158-…sons/official/1

    Die Daten sind wieder mal von Fernsehseren.de:

    https://www.fernsehserien.de/hysteria/episodenguide

    Damit wären wir (ich) wieder bei der Frage, warum man nicht fernsehserien.de direkt zur Abfrage verwenden kann? Gefült 99% der Infos kommen eh von da

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte: MV_Backup (RSync) | MV_BorgBackup (Borg)
    Skin: Skin FlatPlus

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.7)

    VDR 2.7.7; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    > Systeminfo.txt < [VDR-User #1540]

  • So wie du das beschreibst, hört sich das wirklich nach zu viel Aufwand für vermutlich eher geringen Nutzen an.
    Generell hätte ich nichts gegen eine durch Nutzer gepflegte Alternative, allerdings möglichst nicht als json-Datei, weil das vermutlich kaum jemand pflegen kann und will.
    Ich fand die Grundidee von eplists immer sehr einfach und praktisch, evtl. kann man da ja trotzdem irgendwie drauf aufbauen.

    Für thetvdb habe ich mir mal einen Account angelegt und ein wenig drin rum gekuckt, allerdings ist das schon auch ziemlich komplex.
    Dazu sind offenbar viele Sachen gelockt und lassen sich nicht ändern - die Hoffnung wäre da natürlich, dass sie korrekt eingepflegt worden sind.
    Was mir da aber vor allem im Verhältnis zu eplists fehlt, ist die Möglichkeit, alternative Titel für die Folgen anzugeben, die dann die teils schwachsinnigen Episodennamen der privaten Sender matchen.

    VDR zwei drei
    • VDR 01 (Server): VDR 2.7.7 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.7.5 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Ich glaube auf wunschliste.de werden auch alternative Folgennamen angezeigt...

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte: MV_Backup (RSync) | MV_BorgBackup (Borg)
    Skin: Skin FlatPlus

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.7)

    VDR 2.7.7; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    > Systeminfo.txt < [VDR-User #1540]

  • Ich glaube auf wunschliste.de werden auch alternative Folgennamen angezeigt...

    Hm, da sehe ich nur den deutschen und den englischen Titel - wo genau hattest du da Alternativen gesehen?

    VDR zwei drei
    • VDR 01 (Server): VDR 2.7.7 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.7.5 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Das ist schon ne weile her. Und sicher bin ich mir nicht... Welche Serie/Folgen haben denn unterschiedliche Namen?

    Kanallogos: Picon.cz2VDR | Picons2VDR | MP-Logos
    Backupskripte: MV_Backup (RSync) | MV_BorgBackup (Borg)
    Skin: Skin FlatPlus

    "Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus wollen würde."
    [Ken Olson], Präsident der Digital Equipment Corp., 1977

    VDR01 - yaVDR 0.7 (VDR 2.7.7)

    VDR 2.7.7; Gehäuse: Antec Fusion V2 Black & iMon LCD; Atric IR-Einschalter Rev. 4; Board: Intel DH77EB, Core i5-3550, GTX 1050 Ti, 8 GB RAM; DVB: 1x Digital Devices CineS2 Quad V6.5

    > Systeminfo.txt < [VDR-User #1540]

  • Das ist schon ne weile her. Und sicher bin ich mir nicht... Welche Serie/Folgen haben denn unterschiedliche Namen?

    Z.B. alles, was in https://www.eplists.de/eplist.cgi?act…le=Doctor%20Who mit #alternative drin steht.

    VDR zwei drei
    • VDR 01 (Server): VDR 2.7.7 - 4 x TT Budget S2-3200
      Plugins: [channellists - control - epgsearch - live - markad - streamdev-server - tvscraper]
    • VDR 02 (Client): VDR 2.7.5 - 1 x TT Premium S2-6400 (HDMI an TV), 1 x softhddevice (HDMI an TV); TV Grundig 40 VLE 8160 SL; TFT-Display Origen AE 16T
      Plugins: [channellists - control - dvbhddevice - epgsync - graphtftng - iptv - osdteletext - skinnopacity - softhddevice - svdrpservice - tvscraper]
  • Im git ist ein update.

    Zusammenfassend:

    Wenn in thetvdb Episoden fehlen passiert es nun seltener, dass falsche Episoden gefunden werden.

    Und jetzt die Details:

    Die Episodennamen (Kurztext) der Sender sind oft verändert, z.B. "(K)ein Bund fürs Leben Tägliche Serie, D 2025 Altersfreigabe: ab 6". tvscraper macht da einen Vergleich auf Ähnlichkeit der Texte und findet normalerweise trotzdem die Episode (im Beispiel "(K)ein Bund fürs Leben"). Es wird die Episode gewählt, die am Besten zum Kurztext passt.

    Daher ist es auch normalerweise nicht notwendig alternative Episodennamen zu pflegen.

    Wenn jetzt die korrekte Episode nicht in thetvdb ist, dann wird (oft) eine falsche Episode mit geringer Übereinstimmung gewählt. Ich habe jetzt die Mindestanforderung an die Übereinstimmung zwischen Kurztext des Senders und Episodennamen in der Datenbank erhöht, falls der externe EPG Provider einen Episodennamen bereitstellt.


    Testet das gerne. Der relevante Parameter ist "const int dist_required_if_episodeName_ext_epg_provider_is_available = 550" in movieOrTv.c.

    Im Prinzip kann der Parameter auf Werte zwischen 0 und 1000 gesetzt werden. Zur Zeit im git ist der Wert 550, der alte Wert war 650.

    • Höherer Wert: es werden mehr Episoden gefunden, auch wenn der Kurztext und der Episodenname nur so ungefähr übereinstimmen
    • Niedrigerer Wert: wenn die korrekte Episode nicht in thetvdb ist, wird seltener eine falsche Episode zugeordnet.
  • Ich habe noch ein fehlendes \n gefunden, sowas hatten wir doch schon mal. Diesmal vor "Name in external database" Damit findet epgsearch bei mir keinen Titel.

    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, tvscraper, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

  • Zu früh gefreut, nur ein Teil funktioniert:

    Code
    e
    E 265 1760481000 1800 50 1E
    T Star Trek: Lower Decks
    D Mariner versucht, ihre beste Freundin von der Sternenflotten-Akademie zu beeindrucken, die jetzt Captain ist. Boimler wird auf ein medizinisches Schiff der Sternenflotte geschickt, nachdem er durch einen Transporterunfall "außer Phase" gerät.Name in external database: Star Trek: Lower Decks|Name der Episode: Alte Freunde, neue Planeten|Nummer der Staffel: 4|Nummer der Episode: 10
    G 33

    Stört das "." am Ende der Beschreibung ? Das haben beide aktuellen Beispiele, die anderen gehen.

    Edit: es kann nicht alleine der "." sein, weil das funktioniert:

    Code
    e
    E 279 1760394600 1800 50 1E
    T Star Trek: Lower Decks
    D Die Cerritos besucht die Heimatwelt der Ferengi.|Name in external database: Star Trek: Lower Decks|Name der Episode: Dos Cerritos|Nummer der Staffel: 5|Nummer der Episode: 1
    G 30
    VDR

    Server: Ubuntu 24.04 headless VDR im LXC Container, Plugins: satip (Octopus NET SL SX8), live, epgsearch, tvscraper, markad

    Clients: LibreELEC auf RasPi3 und RasPi 3+

    Edited once, last by kfb77 (October 13, 2025 at 8:54 PM).

  • Vermutlich ein nicht-druckbares Sonderzeichen. Was da die Sender so alles ins EPG schreiben ...

    Ich werde mal remove_trailing_whitespace() so ändern, dass nicht nur whitespace, sonder alles zwischen 0 und 32 (ASCII) entfernt wird.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!