Dies ist eine alte Version des Dokuments!
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 Diensthttp:www.epgdata.com bedient werden. Wir witmen uns hier aber der kostenlosen Lösung von TVM. 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
Für epgd2vdr: https://styrion.at/gentoo/overlay/iteas-enterprise.xml
layman -a iteas-enterprise -o https://styrion.at/gentoo/overlay/iteas-enterprise.xml -L
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.
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 DbHost = dbserver.local DbPort = 3306 DbName = epg2vdr DbUser = epg2vdr DbPass = geheim CheckInitial = 1 DaysInAdvance = 15 DaysToUpdate = 4 UpdateTime = 12 # --------------- # epgdata plugin # --------------- #epgdata.url = http://www.epgdata.com #epgdata.pin = insert-your-pin-here # Download timeout in seconds (default 180) #epgdata.timeout = 180
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.
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 = epg2vdr epg2vdr.DbPass = geheim epg2vdr.DbPort = 3306 epg2vdr.DbUser = epg2vdr
Nun noch den EPGD in den Autostart legen:
systemctl enable epgd.service
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 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. Wichtig ist hier das auch der Pfad für die Plugins gesetzt ist:
[Unit] Description=Database driven EPG Data collector After=mysqld.service [Service] Type=forking ExecStart=/usr/bin/epgd -c /etc/epgd -p /usr/lib/epgd/plugins [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
Empfehlungen
Die Datenbank sollte hier wirklich auf einem eigenen Datenbankserver liegen. Virtualisiert man hier, die Datenbank auf einem eigenen Raid, getrennt von der VDR ablegen. Das I/O hier ist enorm. (60 und 134 Queries per second). Ich selbst habe hier den VDR auf einer eigenen SSD und den Datenbankserver einem getrennten Raid am laufen.