Hallo allerseits,
ich habe es seit dem Start von Channelpedia [1] versprochen, nun habe ich mit der Arbeit daran begonnen: Das Generieren und Verwalten von Unique Kanal-IDs, in einer ähnlichen Weise, wie es vom xmltv2vdr-Plugin verlangt/betrieben wird. Das xmltv2vdr-Plugin hat im VDR-Wiki eine Seite mit einer verbindlichen Liste von Unique-Channel-IDs [2]. Ich finde es gut, dass die Kollegen angefangen haben, so eine Liste zu pflegen, aber ich denke, es wäre besser, es an einer zentralen Stelle nach konsistenten Regeln zu tun, damit verschiedene Software-Services darauf zugreifen können und es für verschiedene Dinge nutzen können. Da xmltv2vdr durchaus für internationale Nutzer interessant ist und nicht nur für den deutschsprachigen Raum, ist eine deutschsprachige VDR-Wiki-Seite auch ein gutes Versteck für solche Daten.
Channelpedia hat den Vorteil, dass hier sowieso Kanäle das Herz des Datenbestands bilden, und das es relativ einfach ist, die Funktionalität um das Generieren, Prüfen, Korrigieren, Zuordnen von Unique IDs zu ergänzen. Grundproblem ist immer, dass es sich bei Kanaldaten um einen inkosistenten, sich ständig wandelnden Datenhaufen handelt, woraus Pflegeaufwand resultiert. Das automatische Zuweisen von Unique IDs zu Kanälen wird wahrscheinlich nie zu 100% perfekt funktionieren, aber wenn es für die wichtigsten Kanäle funktioniert, ist es trotzdem eine große Arbeitserleichterung für Plugin/Addon-Autoren oder für den Enduser, der nicht mehr im OSD die einzelnen Kanäle zu EPG-IDs-mappen muss.
Ich wollte jetzt VDR/Plugin/Addon-Entwickler darum bitten, sich meinen Entwurf bzw. die Syntax der Kanal-IDs mal anzusehen und zu kommentieren. Alles, was es bisher gibt, liegt im JSON-Format vor und ist hier abrufbar [3]. Es ist ein Entwurf, der nicht fehlerfrei ist. Bisher habe ich de-, at- und ch-Kanäle aufgenommen und alle anderen Regionen ausgeklammert.
Die Channelpedia-Engine soll in Bezug auf Unique-Kanal-IDs zwei Dinge "erledigen":
1) Ein weitgehend automatisches Generieren von unique-IDs für Kanäle, das Zuordnen der IDs zu den in der Channelpedia-DB gespeicherten Kanälen und
2) Bereitstellen von Möglichkeiten, diese Unique-IDs auf dem VDR des Nutzers per Skript zu den passenden Kanälen zuzuordnen, die sich beim End-User in der channels.conf befinden (und dies möglichst provider-übergreifend). Hierzu könnte Channelpedia theoretisch (Python-)Quellcode generieren oder einfach die Datenstrukturen, die von anderen Skripts genutzt werden können, um diese Zuordnungen zu erledigen.
Im Endeffekt sollen dann alle Mapping-Tabellen für Kanal-Logos, EPG-Daten, etc. ohne die Angabe der VDR-internen Kanal-IDs source-nid-tid-sid auskommen können. source-nid-tid-sid wird in fast allen Mapping-Tabellen verwendet, so zum Beispiel in den channelmap-confs für einige *2vdr-EPG-Plugins. [4]
Auch ein Wissen über mehrfach vorhandene Kanäle (ZDF als HD-Kanal, ZDF als SD-Kanal, ZDF noch einmal über DVB-T) könnte so aufgebaut werden, wobei die Komplexität der Nutzungszenarien ein anderes Problem ist, das hier [5] diskutiert worden ist. Wenn man drei Mal ZDF in der channels.conf hat, hat man auch dreimal inhaltlich gleiche EPG-Daten in der epg.data. Dies könnte über Unique-IDs verhindert werden, wenn man es als Problem ansieht.
Viele Grüße
hepi
EDIT: Aus welchen Bestandteilen eine Unique-ID meines Erachtens bestehen sollte, habe ich als Diskussionsgrundlage mal schriftlich festgehalten [6].
[1] Channelpedia: Prototyp für vorsortiertes Kanallisten-Verzeichnis
[2] http://www.vdr-wiki.de/wiki/in…n#Verbindliche_Kanalliste
[3] http://channelpedia.yavdr.com/gen/de_uniqueIDs.html
[4] Automatisch generierte channelmap.conf's für epgdata2vdr und tvm2vdr verfügbar
[5] Überlegungen zur channels.conf für DVB-C/S/T Mischbetrieb
[6] xmltv2vdr plugin and channel names