Kodi bietet die Möglichkeit anstatt einer lokalen Datenbank für die Audio, Serien und Filme Bibliotheken, eine externe Datenbank zu nutzen.
Welche Vorteile bringt das mit sich?
Man stellt sich einfach mal das Szenario vor, dass man mehrere Fernseher im Haus mit z.B LibreELEC / OpenELEC betreibt. Nutzt jedes dieser Geräte eine eigene Datenbank, wird gerade die Pflege der Gleichen zunehmend aufwändig. Welche Pflege ?!? … die Pflege der Serien- und Filmnamen. Oft liefert die Suche nicht die passenden Daten für das entsprechende Video und man muss selbst Hand anlegen. Das macht man aber dann eben n-mal. Mit einer gemeinsamen Datenbank macht man das aber nur ein einziges mal!
Ein anderer Vorteil ist, dass man z.B auf allen Kodi Instanzen sieht, was schon gesehen ist. Außerdem kann ich auf einem Geräte die Wiedergabe mitten im Film stoppen und kann sie dann auf einem anderen Gerät einfach an der gleichen Stelle fortsetzen. Auch das macht eine gemeinsame Datenbank möglich!
Genug blabla … wie macht man das jetzt?
Vorwort
Bevor bevor wir aber jetzt wirklich loslegen sei angemerkt, dass das ganze nur Sinn macht, wenn auch die Medien zentral verfügbar sind. Ich gebe alle meine Medien per NFS frei und binde diese dann auf den Geräten ein. Dabei achtet man natürlich darauf, dass die Pfade / Quellen auf allen Geräten identisch ist.
So genug jetzt…
Datenbank anlegen
Kodi unterstützt SQLite und MySQL Datenbanken. Letztere ist in diesem Fall die richtige Wahl. SQLite ist eher für die lokale Datenbank auf den Einzelgeräten geeignet und wird auch dort standardmäßig eingesetzt. Du benötigst also irgend ein zentralen MySQL Server. Auf meinem Heimserver habe ich MariaDB-10.1.34 laufen.
Nun müssen wir eine Datenbank inklusive Nutzerkonto für Kodi anlegen. Ich mache das klassisch über die Konsole, aber es gibt auch andere Möglichkeiten wie z.B phpMyAdmin, MySql-Workbench, etc..
In meinem Fall verbinde ich mich mit SSH auf meinen Server. Danach geht es weiter mit MySQL … man logt sich als “root” im MySQL Server ein.
mysql -u root -p
Sobald man im MySQL Monitor ist, fangen wir an und legen einen neuen Benutzer an:
CREATE USER 'kodi'@'%' IDENTIFIED BY 'supergeheim';
Ich benutze innerhalb dieses Tutorials den Benutzer “kodi” mit dem Passwort “supergeheim”. Zumindest das Passwort solltest Du in deiner Installation ändern!
Nun geben wir dem Benutzer Rechte:
GRANT ALL PRIVILEGES ON *.* TO 'kodi'@'%';
FLUSH PRIVILEGES;
Damit ist Kodi in der Lage alle benötigten Datenbanken anzulegen.
Kodi konfigurieren
Die Konfiguration von Kodi ist unabhängig vom darunter befindlichen System. Lediglich der Speicherort des Konfigurationsdatei ändert sich von System zu System. Genauer Informationen über den Speicherort bekommst du im Kodi Wiki. In diesem Tutorial gehen ich jetzt von einem Gerät mit LibreELEC aus.
Konfiguriert wird das ganze in der Datei “advancedsettings.xml”. Unter LibreELEC / OpenELEC findet man diese unter
/storage/.kodi/userdata/advancedsettings.xml
Es gibt jetzt entweder die Möglichkeit mittels Samba auf das LibreELEC Gerät zuzugreifen (wenn aktiviert) oder eine Verbindung mit SSH aufbauen, um die Datei zu erstellen/editieren.
Die Datei sollte in jedem Fall folgenden Inhalt haben:
<advancedsettings>
<videodatabase>
<type>mysql</type>
<host>192.168.3.2</host>
<port>3306</port>
<name>kodi_video</name>
<user>kodi</user>
<pass>supergeheim</pass>
</videodatabase>
<musicdatabase>
<type>mysql</type>
<host>192.168.3.2</host>
<port>3306</port>
<name>kodi_music</name>
<user>kodi</user>
<pass>supergeheim</pass>
</musicdatabase>
<videolibrary>
<importwatchedstate>true</importwatchedstate>
<importresumepoint>true</importresumepoint>
</videolibrary>
</advancedsettings>
Hier kurz eine Erläuterung zu den verschiedenen Einstellungen:
<host></host> - Hostname oder IP-Adresse des MySQL Servers
<port></port> - MySQL Server Port (Standard 3306)
<user></user> - Benutzername (kodi)
<pass></pass> - Passwort (supergeheim)
Damit ist die Konfiguration abgeschlossen und man startet die Kodi Instanz (LibreELEC) einmal neu durch. Danach heißt es die Datenbank zu aktualisieren. Das macht man vorzugsweise erst mal nur auf einem System. Im Anschluss reicht es dann einfach die “advancedsettings.xml” Datei auf die anderen Systeme zu übertragen.