XML EPG-Importer bei eigenem IPTV-Anbieter

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • XML EPG-Importer bei eigenem IPTV-Anbieter

      Einen wunderschönen Guten Abend in die Forengemeinde,

      ich wollte mal Fragen, ob mir hier jemand bei meinem Problem weiterhelfen kann.

      Zum Fernsehen nutze ich aktuell einen IPTV-Anbieter. Dieser liefert mir dem Grunde nach auch eine XML-Datei mit den entsprechenden EPGs.
      Leider funktioniert der EPG-Importer bei meinen Sendern nicht, da diese in der Namensgebung leicht variieren (z.B. DE: "Das Erste FHD" oder "DE: ZDF HD")

      Meine Idee war es jetzt die Source XML Datei anzupassen / zu erweitern. Dazu habe ich nur folgenden Eintrag hinzugefügt.
      Die URL habe ich jetzt aus Datenschutzgründen "geschwärzt" ;)

      Quellcode

      1. <source type="gen_xmltv" channels="http://.../epg/iptv.channels.xml.xz">
      2. <description>EPG-IPTV</description>
      3. <url>http://.../epg/iptv.xz</url>
      4. </source>


      Danach bin ich hingegangen und habe eine iptv.channels.xml Datei erstellt und in ein xz-Archiv komprimiert.
      Hier mal ein kurzer Auszug aus der Datei.

      XML-Quellcode

      1. <?xml version="1.0" encoding="utf-8"?>
      2. <channels>
      3. <channel id="DE: Das Erste FHD">1:0:1:0:0:0:0:0:0:0:</channel>
      4. <channel id="DE: ZDF HD">1:0:1:0:0:0:0:0:0:0:</channel>
      5. </channels>
      Ich hatte auch schon versucht den Stream mit anzugeben, hat aber leider auch nicht geholfen. Sah dann halt so aus:

      XML-Quellcode

      1. <?xml version="1.0" encoding="utf-8"?>
      2. <channels>
      3. <channel id="DE: Das Erste FHD">1:0:1:0:0:0:0:0:0:0:http://.../1234.ts</channel>
      4. <channel id="DE: ZDF HD">1:0:1:0:0:0:0:0:0:0:http://.../4321.ts</channel>
      5. </channels>
      Schlussendlich habe ich mir die XML-Datei von meinem Anbieter heruntergeladen und ohne Endung ebenfalls in ein xz-Archiv komprimiert und auf die Internet-Adresse geladen.
      Die "XML"-Datei sieht dann wie folgt aus.

      XML-Quellcode

      1. <?xml version="1.0" encoding="utf-8" ?>
      2. <tv generator-info-name="IPTV" generator-info-url="http://...:8080/">
      3. <channel id="Das Erste DE">
      4. <display-name>DE: Das Erste FHD</display-name>
      5. </channel>
      6. <channel id="ZDF.de">
      7. <display-name>DE: ZDF HD</display-name>
      8. </channel>
      9. <programme start="20180202130000 +0100" stop="20180202140000 +0100" channel="Das Erste DE" >
      10. <title>ARD-Mittagsmagazin</title>
      11. <desc>Nicht nur die</desc>
      12. </programme>
      13. </tv>
      Alles anzeigen
      Nachdem ich die Source neu geladen habe, wird mir mein eigens erstellter Eintrag "EPG-IPTV" auch angezeigt. Wenn ich diese jedoch importieren / aktualisieren möchte, werden keine Daten importiert.

      Habe ich einen Denkfehler / Verarbeitungsfehler gemacht oder eine andere Möglichkeit die IPTV-Liste so anzupassen, dass diese auch mit einem Anbieter funktioniert, ohne dass ich jeden Kanal gesondert bearbeiten muss?

      Vielen Dank für eure Hilfe.
      Gruß
      Dommschwenker
    • Denkfehler - die epg.db funktioniert nicht mit Kanalnamen sondern den servicerefs und 1:0:0:0:0.. ist da für die Erkennung ... suboptimal ... egal ob mit oder ohne url weil die url in der epg.db nicht verwendet wird.

      Lies mal den Thread aus dem DP board, da hat Ghost es mir extra nochmals erklärt und das Beispiel für das Erste im Thread sollte eigentlich ausreichen um es zu verstehen:

      dreambox.de/board/index.php?th…&postID=168243#post168243
      Danke für den Fisch

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von gutemine ()

    • Das Haupt-Problem ist, dass XMLTV-Importer nur Events von Sendern beachtet, die mit korrekter ServiceRef in der lamedb stehen. Ich habe mir zu dem Zweck einfach die lamedb meiner Server-Box kopiert (streame nur von dort). Wenn man das per Hand machen muss, ist das ein Haufen Arbeit.
      Steht der Sender nicht in der lamedb, werden die Daten gar nicht in den nächsten Schritt übernommen.
      Wenn ich das Log richtig gedeutet habe, findet danach im nächsten Schritt auch noch ein Abgleich mit Sendernamen statt. Kann mich irren, wüsste auch nicht welchen Sinn das hätte, aber das kam mir damals glaube ich beim Lesen des Logs so vor. Habe das aber nicht weiter verfolgt, weil meine Sendernamen eh 1:1 passten.
    • Eigentlich stimmt das so nicht ganz, der EPG Importer hat eine Einstellung Load EPG only Services in bouquets, nur habe ich entschieden die zu ignorieren und statt dessen nur Kanäle zu laden die auch in der lamedb sind ... das wäre aber nur ein if mehr im code um da einfach alles durch zu lassen ... oder eben nur sender aus den Favoriten zu akzeptieren ... nur hilft dir das Erstere eben NICHT, weil du dann ohne servieref auch nicht darauf zugreifen kannst.

      Insofern macht Ihr da einen Denkfehler und deswegen habe ich es auch genau so implementiert wie es derzeit ist.
      Danke für den Fisch
    • Also davon ab, dass das Label "Load EPG only Services in bouquets" aufgrund der Wortwahl nicht darauf schließen lässt für was es eigentlich gedacht ist, verstehe ich nicht wo da mein Denkfehler liegen soll.
      Mir ist klar, dass das EPG über die serviceref zugeordnet wird. Aber aus Benutzer-Sicht ist es total umständlich alle Kanäle zusätzlich in die lamedb eintragen zu müssen.

      Sinnvoll wäre z.B., einfach die bouquets durchzugehen und alle servicerefs von dort einzulesen. Dann beim Import die XML-EPG-Daten filtern und alles was zu Kanälen aus den bouquets gehört in die epg.db schreiben.
      Zusätzlich könnte es sogar eine Option geben "Nicht in lamedb vorhandene Services automatisch dort anlegen". Ist diese Option gesetzt, wird der Kanal anhand von den im Bouquet ausgelesenen Daten (serviceref + name) automatisch in der lamedb hinzugefügt.
      DAS würde dem Benutzer Arbeit abnehmen. Ihn aber dazu zu zwingen alle Kanäle in lamedb anlegen zu müssen, ohne ihm das mitzuteilen, ist ungünstig...
      Ein Otto-Normal-Nutzer würde nie darauf kommen, dass er Kanäle auch noch extra manuell in der lamedb anlegen muss. Warum auch? Name und Service-Ref sind ja im Bouquet schon vorhanden und Picons werden damit auch geladen. Warum sollte EPG-Importer damit nicht auch funktionieren? Auf die Idee den Fehler in der lamedb (die wahrscheinlich 99% nicht mal kennen) zu suchen kommt er doch gar nicht.
    • Ich sage doch gar nicht, dass die per Definition richtig wären.
      Ich sage nur, dass viele ihre IPTV-Sender nur in den Bouquets eintragen. Das macht auch Partnerbox nur so. Damit kann man dann schauen und hat bei richtigen Srefs auch Picons.
      Das einzige was dann für Otto-Normal-User noch fehlt ist das EPG.
      Und es macht für Unwissende User keinen Sinn, dass man zwar die Sender streamen kann und Picons funktionieren, aber das EPG aus unerfindlichen Gründen nicht importiert wird.
      Da Partnerbox nicht das einzige Plugin ist, das IPTV Sender anlegt und es auch unzählige Scripts der Anbieter gibt, macht es wenig Sinn automatische Einträge in der lamedb dort überall einzubauen. Stattdessen wäre ein zusätzliches Plugin, dass in Bouquets enthaltene IPTV-Kanäle in die lamedb einträgt, sinnvoll. Oder eben diese Funktionalität könnte direkt in den EPG-Importer einebaut werden.

      Ich sage ja nicht, dass da irgendwas falsch läuft gerade. Ich sage nur, dass man es für Otto-Normal-User deutlich einfacher machen könnte mit meinem Vorschlag. Da sind wir uns doh einig?
    • den Leuten ist auch nicht klar das sie nur die epg.db von der Servierbox kopieren oder sharen müssten, dann wäre der XMLTV Importer gar nicht nötig.

      Was mich zu einer alten Idee führt - ich wollte mal eine Erweiterung fürs webif machen wo man sich eine remote epg.db laden kann, das wäre nämlich ziemlich simpel zu machen
      Danke für den Fisch
    • @gutemine: Stimmt, das wäre echt blöd. Mir ging es aber auch nicht hauptsächlich um irgendwelche illegalen IPTV-Angebote mit täglich aktualisierten urls und anscheinend sogar srefs, sondern um Leute mit statischen Bouquets unter Verwendung von echten srefs. Wie man das im Plugin allerdings sicher unterscheiden könnte, weiss ich grad auch nicht :rolleyes:

      @dhwz: Jup, geht aber nur, wenn man den ts stream nutzt. Dann funktioniert das auch ohne Einträge in der lamedb. Wenn dazu allerdings die Bandbreite nicht ausreicht und man durch url-anpassung den rtsp-server benutzt, wird kein epg übertragen. Somit ist man bei Nutzung des rtsp-Servers gleichgestelllt mit externen IPTV-Quellen ohne EPG.

      Das ist halt im Moment alles dann sehr umständlich. Da ich nur von meiner dm820 streame, kann ich die lamedb von dort einfach auf den Client kopieren. Nur diesen Luxus mit bereits vorhandener lamedb auf der Server-Box haben User, die externe Quellen benutzen, halt nicht. Die müssen sich umständlich alle Sender mit passender sref in die lamedb eintragen. Das könnte man für eben diese User enorm vereinfachen. Naja mir persönlich kann es egal sein, sollte nur als konstruktive Kritik dienen... Steht auch so gut wie nirgendwo offensichtlich dabei, dass man passende Einträge in der lamedb benötigt, damit EPGimport funktioniert. Von der damit verbundenen Arbeit beim Einpflegen der Sender in die lamedb dann ganz zu schweigen.
    • gutemine schrieb:

      den Leuten ist auch nicht klar das sie nur die epg.db von der Servierbox kopieren oder sharen müssten, dann wäre der XMLTV Importer gar nicht nötig.

      Was mich zu einer alten Idee führt - ich wollte mal eine Erweiterung fürs webif machen wo man sich eine remote epg.db laden kann, das wäre nämlich ziemlich simpel zu machen
      Daran mir die epg.db automatisiert von der Server-Box zu ziehen dachte ich auch. Aber da das dann ohne Plugin, das das erledigt und den cache neu lädt, einen enigma2 restart erfordert hätte, der wenn per cron ausgeführt, evtl. laufende Aufnahmen unterbrochen hätte, und ich außerdem auf der Client-Box auch einige Sender per DVB-T empfange, deren epg daten dann gelöscht würden, habe ich mich dagegen entschieden. Läuft so auch super.

      Wie gesagt, das ist für User mit enigma2-Serverboxen kein gravierendes Problem. Entweder kopiert man sich die lamedb, oder die epg.dat. Problematisch und sehr aufwändig wird das für User, die IPTV ohne EPG von externen Quellen beziehen.

      Edit: Allerdings würde ich definitiv auf das Kopieren der epg.dat umstellen, wenn man das schön per Plugin zeitgesteuert ohne enigma2 restart erledigen kann. Das würde es auch für unwissende User mit rtsp Serverbox einfacher machen - dann muss man schließlich die r*tec source nicht umständlich aus dem open*li image extrahieren :D Ändert aber leider nichts an dem eigentlichen Problem, dass User mit externer IPTV-Quelle keine lamedb und epg.dat zur Verfügung haben ;)

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von trinker ()

    • Du brauchst Dir da übrigens keine Arbeit mit machen. Ich habe zufällig enigma2-plugin-extensions-epgcopy entdeckt, das die epg.db zeitbasiert per FTP holen und danach in den cache laden kann. :)
      Getestet und funktioniert - ist sogar auf dem dmm feed vorhanden.
      Damit kann ich den EPGImporter in Rente schicken.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von trinker ()

    • Ich versuche es auch zu verstehen, bis aber noch nicht soweit.

      Habe IPTV Programme in den Favoriten und alle Refs angepasst an zugehörige SAT-Refs. Da ich diese Programme physisch nicht über SAT Empfangen kann habe ich diese Programme über Settingseditor in meine Settings importiert und diese Sat-Position in den Antenneneinstellungen abgespeichert als ob ich es empfangen könnte. Damit erhoffte ich mir das diese Programme in die lamedb rein kommen. Dazugehörige picons funktionieren auch. EPGImporter bekommt Daten von einem externen Server und importiert es.
      Das Ganze funktioniert auch einwandfrei bei OpenATV -Image. Ich habe komplette EPG für diese IPTV Streams die sogar mit 4097.. anfangen. Habe gesehen das dann dort noch ein lamedb5 im Ordner /etc angelegt wurde. Ich weis nicht wie die das machen aber wenn ich das gleiche mit NN2, Merlin -Images versuche dann klappt es nicht mit dem Iptv-EPG.
      Gleiche Settings, gleiche Sources, gleiche Refs... Import läuft aber EPG wird nicht dargestellt.

      Hier ein paar Zeilen aus der lamedb5 aus dem OpenATV :

      Quellcode

      1. eDVB services /5/
      2. # Transponders: t:dvb_namespace:transport_stream_id:original_network_id,FEPARMS
      3. # DVBS FEPARMS: s:frequency:symbol_rate:polarisation:fec:orbital_position:inversion:flags
      4. # DVBS2 FEPARMS: s:frequency:symbol_rate:polarisation:fec:orbital_position:inversion:flags:system:modulation:rolloff:pilot
      5. # DVBT FEPARMS: t:frequency:bandwidth:code_rate_HP:code_rate_LP:modulation:transmission_mode:guard_interval:hierarchy:inversion:flags:system:plp_id
      6. # DVBC FEPARMS: c:frequency:symbol_rate:inversion:modulation:fec_inner:flags:system
      7. # ATSC FEPARMS: a:frequency:inversion:modulation:flags:system
      8. # Services : s:service_id:dvb_namespace:transport_stream_id:original_network_id:service_type:service_number:source_id,"service_name"[,p:provider_name][,c:cached_pid]*[,C:cached_capid]*[,f:flags]
      9. t:00320000:0001:0005,s:12670000:2600000:0:2:50:2:0
      10. t:00320000:0018:0044,s:12168000:27500000:1:3:50:2:0:1:2:2:2
      11. t:00320000:001a:0044,s:12206000:30000000:1:3:50:2:0:1:2:0:2
      12. t:00320000:0002:0055,s:12380000:27500000:0:0:50:2:0
      13. ...
      14. s:0100:0032300f:0000:0001:1:0:0,"TCM/Cartoon Russian"
      15. s:0300:00c00000:0007:0085:1:0:0,"RNF",p:BetaDigital
      16. s:0a00:00320000:0018:0044:1:0:0,"Extreme Sports",p:VisionTV,C:0
      17. s:0f00:00320000:0017:0056:1:0:0,"TV4 Sport"
      18. s:1200:00c00000:03fd:0001:1:0:0,"TVA-OTV",p:BetaDigital
      19. s:1b00:00c00000:03fe:0001:1:0:0,"CCTV9 Documentary",p:GLOBECAST
      20. s:2200:00c00000:044c:0001:1:0:0,"NRJ 12",p:CSAT,c:0019a,c:0319a,c:041a5,c:051,C:1883,C:1863,C:1811,C:500
      21. s:2400:00c00000:0452:0001:1:0:0,"TRACE URBAN",p:CSAT
      22. s:3400:00820000:2710:fbff:1:0:0,"Primafila 10",p:SkyItalia
      23. s:5a00:01680000:0017:00fd:1:0:0,"Наш Детектив",p:TricolorTV
      24. s:7d00:00c00000:0405:0001:1:0:0,"TWOJ",p:BetaDigital,c:00ff,c:01100,c:03ff,c:051,f:40
      25. s:0001:0032300f:0000:0001:1:0:0,"Bootstrap Master"
      26. s:0001:00320000:0001:0005:1:0:0,"TYSA1",p: AB
      27. s:0001:00320000:0002:0055:1:0:0,"12380H SID 0x01",p:DVB-S QPSK 12380H 5.0°E,f:40
      28. s:0001:008229e7:0007:1111:1:0:0,"1TVRUS Europe",p:RSCC,c:00c9,c:0112d,c:03c9,c:051,f:40
      29. s:0001:00820000:2e18:00b0:1:0:0,"Al Maghribia",p:SNRT
      30. s:0001:005a0000:012d:000a:1:0:0,"AFN Sports"
      31. s:0001:0082afc2:0065:0001:1:0:0,"CurrentTime HD",c:006e0,c:016b8,c:036e0,c:051
      32. s:0001:005a0000:1a90:009e:1:0:0,"Brazzers TV Europe",p:M7 Group,C:0,f:40
      33. s:0001:00820000:03de:0110:1:0:0,"Italia 1",p:Mediaset
      34. s:0101:00322f4f:0001:0001:1:0:0,"Paddy Power",p:Arqiva
      35. s:0201:00c00000:0002:0085:1:0:0,"†Blue‡ †M‡ovie",p:SKY,C:1810,C:1861,C:0
      36. s:0201:00c00000:0004:0085:1:0:0,"†Blue‡ †M‡ovie",p:SKY,c:00aff,c:01b00,c:03aff,c:051,C:9c4,C:9af,C:98d,C:98c
      37. s:0301:00c00000:0007:0085:1:0:0,"Channel21",p:BetaDigital
      38. s:0701:00c00000:0005:0085:1:0:0,"Disney Channel",p:BetaDigital,c:007ff,c:01800,c:0224,c:037ff
      39. s:1201:00c00000:03fd:0001:1:0:0,"Niederbayern",p:BetaDigital
      40. s:1801:00320000:000c:0055:1:0:0,"Bigudi",p:1plus1 Media,f:40
      41. s:1901:00c00000:03fa:0001:1:0:0,"SYFY",p:CSAT
      42. s:1b01:00c00000:03fe:0001:1:0:0,"CCTV F",p:GLOBECAST
      43. s:2201:00c00000:044c:0001:1:0:0,"TV BREIZH",p:CSAT,C:0
      44. s:2401:00c00000:0452:0001:1:0:0,"CINE+ FAMIZ",p:CSAT
      45. s:3c01:00820000:0064:fbff:1:0:0,"DoveTv",p:SkyItalia
      46. s:7001:00c00000:0436:0001:1:0:0,"Test Channel 1",p:MTV Networks Europe,c:00fbf,c:01fc0,c:02fc2,c:031ffe,C:0
      47. s:7501:00c00000:0420:0001:1:0:0,"10817V SID 0x7501",p:DVB-S2 8PSK 10817V 19.2°E
      48. s:7601:00c00000:0408:0001:1:0:0,"R. MADRID TV",p:Digital+
      49. s:7d01:00c00000:0405:0001:1:0:0,"SARAFAN RUS",p:BetaDigital,f:40
      50. s:0002:00820000:3200:013e:1:0:0,"MTV Polska",p:MTV Networks Europe
      51. s:0002:00820000:2e18:00b0:1:0:0,"Al Aoula Inter+L",p:SNRT
      52. s:0002:005a0000:012d:000a:1:0:0,"AFN Prime Atlantic"
      53. s:0002:0082afc2:0065:0001:1:0:0,"CurrentTime SD",f:40
      54. s:0002:0082acce:0578:013e:1:0:0,"Satlink OU",p:Satlink,f:40
      55. s:0002:00820000:1388:013e:1:0:0,"Feeds 4 TSA",p:Harmonic,f:40
      56. s:0002:005a0000:1a90:009e:1:0:0,"Nickelodeon",p:M7 Group,C:0,f:40
      57. s:0002:00820000:03de:0110:1:0:0,"Canale 5",p:Mediaset
      58. s:0202:00c00000:0007:0085:1:0:0,"JML Shop",p:BetaDigital
      59. s:0702:00c00000:0005:0085:1:0:0,"QVC",p:BetaDigital
      60. s:1202:00320000:001a:0056:1:0:0,"TV 2/Midt-Vest"
      Alles anzeigen
    • Nachdem es immer wieder Probleme gibt mit dem Laden von EPG für sender die man nur als IPTV empfängt und die damit gar nicht in der lamedb stehen habe ich in der Version 36.6 aufgedreht das wenn man im EPGImport Plugin die Load EPG only Services in bouqets Einstellung auf Nein stellt (Default ist ja so wie bei den früheren Versionen) dann werden die EPG Daten für ALLE serviereferences die runtergeladen wurden in die epg.db geladen .. wie sinnvoll das ist und ob das einen Unterschied macht ... müsst Ihr selber rausfinden ...
      Danke für den Fisch