EPGD mit VDR in Gentoo
Du möchtest dich gerne für unsere Hilfe erkenntlich zeigen . Gerne. Wir bedanken uns bei dir für deine Spende!
Hauseigenes Apt-Repo: https://apt.iteas.at
GITLAB Enterprise:
Mittlerweile gibt es sehr großen Inkompatiblitäten mit dem Code. Auf aktuellem Gentoo ist es mit dem Datum — 2021/06/06 17:21 nicht mehr möglich die Software zu kompilieren, geschweige denn zu Betreiben. Ich arbeite an einer Lösung und werde das ToDo hier aktualisieren.
Einleitung
Ziel ist es, eine zentrale EPG-Datenbank zu haben, die alle Infos von epgdata, thetvdb, themoviedb, eplist, etc. vom Internet läd, und alles zusammenfügt, um ein möglichst gutes EPG zu bekommen. Zentrale Datenbank deshalb, da alle Infos und Bilder ca. 5GB Daten sind, die ja nicht für jeden VDR extra runtergeladen werden sollen, sondern nur einmal. Zum einen, um den hohem Internet-Traffic zu verringern, als auch wegen Verarbeitungsgeschwindigkeit, da alle Infos zum VDR-Start schon im lokalen Netz sind.
Die Datenbank kann überall installiert werden. Es ist aber erfahrungsgemäß einfacher diese direkt am VDR zu installieren.
Installation
Der EPGD Dienst selbst wird am VDR installiert. EPGD kann standardmäßig über den Kostenpflichtigen Dienst http://www.epgdata.com bedient werden. Wir witmen uns hier aber der kostenlosen Lösung von TVM. Es gibt auch noch die Möglichkeit statt TVM, TVSP (TV Spielfilm) zu verwenden. Dies ist wesentlich besser wenn man auch das VDR-Live-Interface benutzt, da man hier mehr Bilder anzeigen kann. Das Plugin hierfür ist auch im Overlay. Die Channelsmap ist auf Github zu finden. Folgende Overlays müssen eingetragen werden:
Für EPGD https://github.com/3PO/3PO-overlay
nano /etc/portage/repos.conf/3po-overlay.conf [3PO-overlay] location = /var/db/repos/3PO-overlay sync-type = git sync-uri = git://github.com/3PO/3PO-overlay.git auto-sync = yes
Nun die Pakete installieren:
=media-tv/epgd-9999 tvm =media-tv/epgd-plugin-tvm-9999
Wichtig ist das die Pakete immer die gleiche API verwenden, da es sonst nicht funktioniert.
emerge -va epgd vdr-epg2vdr
Nach erfolgreicher Installation gehen wir zur Konfiguration über, die nicht ganz ohne ist.
Nach der Installation in Gentoo ist drauf zu achten das mit etc-update
immer die epg.dat
Files aktualiert werden, da es sonst zu einem SEGFAULT beim Start von EPGD kommt.
Konfiguration
Zuerst stoppen wir unseren VDR.
systemctl stop vdr.service
Jetzt müssen einige Dinge am EPGD konfiguriert werden. In der Config muss die Zeile zum epgdata.com auskommentiert werden. Weiters müssen wir unseren Datenbankuser und ein paar Intervalle festlegen. Wobei die Intervalle natürlich jedem selbst überlassen sind.
nano /etc/epgd/epgd.conf
- epgd.conf
# ------------------------------------ # Configuration of EPG Daemon # ------------------------------------ # EpgImageSize # 0 = 174x130 # 1 = 329x245 # 2 = 525x400 # --------------- # tvspielfilm plugin # --------------- # Imagesize # 1 130px # 2 320px # 3 476px # 4 952px tvsp.imageSize = 4 epg.imageSize = 4 # Debug Options tvsp.saveJson = 0 tvsp.saveXml = 0 DbHost = localhost DbPort = 3306 DbName = dbname-epg2vdr DbUser = user-epg2vdr DbPass = secret EpgView = eventsview.sql EpgViewWeb = eventsviewplain.sql TheTvDBView = thetvdbview.sql CheckInitial = 1 DaysInAdvance = 20 DaysToUpdate = 5 UpdateTime = 12 UpdateThreshold = 500 XmlStoreToFs = 0 GetEPGImages = 4 EpgImageSize = 4 MaxImagesPerEvent = 4 SeriesEnabled = 1 SeriesPort = 2006 SeriesStoreToFs = 0 SeriesUrl = www.eplists.de # SeriesUrl = eplists.constabel.net # Test zwecks SEGFAULT ScrapEpg = 1 ScrapRecordings = 1 # NetDevice = eth0 # CachePath = /var/cache/epgd/ # HttpPort = 9999 # HttpProxy = 127.0.0.1:8000 # UserName = # Password = LogLevel = 2 # --------------- # epgdata plugin # --------------- # epgdata.url = http://www.epgdata.com # epgdata.pin = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Download timeout in seconds (default 180) # epgdata.timeout = 180
Die Verwendung von Epgdata ist möglich. Leider bekommt man für sein Geld nur extrem kleine Bilder und hier nur jeweils eines pro Sendung. Vielleicht aktualisiert sich der Dienst ja bald zeitgemäß nach.
Jetzt müssen wir im Verzeichnis „/etc/epgd“ die Datei „tvmovie-channelmap.conf“ auf „channelmap.conf“ verlinken. Diese Config wird immer von EPGD eingelesen.
ln -s tvmovie-channelmap.conf channelmap.conf
Wer die Datei nicht hat, hier zum Download: tvmovie-channelmap_conf.txt Also nächstes sagen wir dem VDR das er seine Epgdaten bei unserem Datenbankserver holen soll. Dazu mal das Plugin aktivieren und die Benutzerdaten hinterlegen. Die Datei kann/muss mit folgenden IDs angepasst werden. Weiter ID's für tvsp findest du hier. Eine etwas ältere aber fertige Liste zum Anpassen hier.
Die Plugins TVSP und TVM können gemischt werden. z.B.
... tvsp:TELE5 = S19.2E-X-XXXX-XXXX,S19.2E-XXX-XX-XX // TELE 5 HD;BetaDigital tvm:55 = S19.2E-XXX-XX-XX // Tele5 ...
Weiters gibt es für das TVM Plugin ein Script das einem die Einrichtung erheblich erleichtert.
eselect vdr-plugin list Available VDR plugins: [1] conflictcheckonly [2] epg2vdr [3] epgsearch * [4] epgsearchonly [5] live * [6] quickepgsearch [7] streamdev-server * [8] vdrmanager * [9] vnsiserver * eselect vdr-plugin enable 2 eselect vdr-plugin list Available VDR plugins: [1] conflictcheckonly [2] epg2vdr * [3] epgsearch * [4] epgsearchonly [5] live * [6] quickepgsearch [7] streamdev-server * [8] vdrmanager * [9] vnsiserver *
Datenbankbenutzer dem VDR übergeben:
nano /etc/vdr/setup.conf epg2vdr.DbHost = dbserver.local epg2vdr.DbName = dbname-epg2vdr epg2vdr.DbPass = secret epg2vdr.DbPort = 3306 epg2vdr.DbUser = user-epg2vdr
Nun noch den EPGD in den Autostart legen:
systemctl enable epgd.service
echo 'export PASSWORD="<password>"' > ~/.ssh/mysqlpasswd
Live Interface
Wer das Live Interface benutzt möchte natürlich auch dort seine Bilder sehen. Hierfür folgende Config bearbeiten:
nano /etc/conf.d/vdr.live LIVE_EPGIMGDIR="/var/cache/vdr/epgimages/"
Beim Neustart des VDR (wenn alle Sender geladen wurden) werden auch hier und eine wesentlich bessere Beschreibung angezeigt.
Erstellung der Datenbank
Folgendes Einträge sind in der Datenbankconfig erforderlich:
nano /etc/mysql/my.cnf [mysqld] default-storage-engine = innodb innodb_large_prefix=ON innodb_file_format=BARRACUDA
BIN Log auf jedem Fall abstellen. Nach einem Neustart von MYSQL kann Datenbank und User mit dem Werkzeug „epgd-tool“ erstellt werden. Das Tool ist selbst erklärend. Sollte das nicht funktionieren kann man die Datenbank auch selbst manuell anlegen. Die Datenbank mit dem Tool mit folgendes Daten angelegt:
- Datenbank: epg2vdr
- User: epg2vdr
- Passwort: epg
Datenbank manuell anlegen (normal nicht notwendig)
Um die Datenbank erstellen zu können loggen wir uns auf unseren DBhost mit dem MYSQL Root User in die MYSQL CLI ein. Dann legen wir die Datenbank mit allen erforderlichen Rechten und Features an:
mysql -u root -p CREATE DATABASE epg2vdr charset utf8; CREATE USER 'epg2vdr'@'%' IDENTIFIED BY 'epg'; GRANT ALL PRIVILEGES ON epg2vdr.* TO 'epg2vdr'@'%'; DROP FUNCTION IF EXISTS epglv; DROP FUNCTION IF EXISTS epglvr; CREATE FUNCTION epglv RETURNS INT SONAME 'mysqlepglv.so'; CREATE FUNCTION epglvr RETURNS INT SONAME 'mysqlepglv.so'; set global innodb_file_format = BARRACUDA; set global innodb_large_prefix = ON; SELECT * FROM mysql.func; FLUSH PRIVILEGES;
Auf dem Datenbankserver selbst fehlt natürlich das Plugin (falls extern) für den epgd. Diesen kann man sie direkt vom VDR kopieren
/usr/lib64/mysql/plugin/mysqlepglv.so
Oder man installiert den ganzen epgd am DBhost auch. Aber nachdem nur diese eine Datei benötigt wird, genügt es diese zu kopieren. Das funktioniert natürlich nur wenn die Architektur der Hosts identisch ist. Nachdem wir ja von einem anderen Host auf unsere Datenbank zugreifen, nicht vergessen die Zugriffsrechte am Datenbankserver zu setzten.
Abschluss und Starten des EPGD
Nun kann man den EPGD starten und danach die VDR. Startreihenfolge der Services sollte also passen. Beim Ersten Start des Epgd werden sämtliche Tabellen angelegt, danach wird mit dem Füllen dieser begonnen. Dieser Vorgang kann schon mal einen ganzen Tag in Anspruch nehmen.
Das Startscript sollte so aussehen. (nur ändern wenn was nicht richtig funktioniert) Wichtig ist hier das auch der Pfad für die Plugins gesetzt ist:
[Unit] Description=Database driven EPG Data collector After=mysqld.service Requires=mysqld.service [Service] Type=forking ExecStart=/usr/bin/epgd -c /etc/epgd -p /usr/lib/epgd/plugins [Install] WantedBy=multi-user.target
Für EPGHTTPD so:
[Unit] Description=EPGd HTTP daemon After=epgd.service Requires=epgd.service [Service] Type=forking ExecStart=/usr/bin/epghttpd -c /etc/epgd [Install] WantedBy=multi-user.target
systemctl start epgd.service systemctl start vdr.service
Die Datenbank kann gut bis zu 6GB groß werden. Je nachdem was alles an Sendern ausgewählt wurde. Um die Downloadmenge und die Sender einzuschränken kann man noch folgende Datei auf seine Bedürfnisse bearbeiten:
/etc/epgd/tvmovie-channelmap.conf
Channel Icons Downloaden
Um auch Icons in den Channels zu haben gibt es zwei Projekte. Einmal mit PNG (Default) und einmal mit SVG. PNG funktioniert einfach nicht, kann irgendwie nicht dargestellt werden. LOG: No loader for file format. Eine direkte Lösung hierfür gibt es nicht. Deshalb am besten die SVGs verwenden.
cd /var/epgd/www git clone https://github.com/FrodoVDR/channellogos.git channellogos_svg mv channellogos_svg/logos-orig channellogos
Nun kann auch das Webinterface aufgerufen werden: http://vdr.local:9999 Je nach Installation muss noch unter „Einstellungen → Allgemein → System“ bei logoSufix
, der Wert svg
hinein geschrieben werden. Ab nun sind die Icons sichtbar.