- Der MySQL-Server auf dem QNAP-NAS aktivieren
- Die Benutzer über phpMyAdmin definieren
- Freigabe für geteilte Nutzerdaten erstellen
- Kodi-Konfigurationsdatei advancedsettings.xml erstellen
- Gemeinsame Medien-Quellen über sources.xml definieren
- Was sonst noch wichtig ist
- Weitergehende Informationen und Tutorials
Möchte man Kodi über mehrere Geräte synchron halten (Vorschaubilder, Quellen, Abspielfortschritt usw.), kann ein MySQL-Server verwendet werden. In dieser Anleitung wird beschrieben, welche speziellen Einstellungen auf dem auf jedem QNAP-NAS vorhandenen MySQL-Server getätigt werden müssen, damit Kodi diesen verwenden kann. Für die Konfiguration wird phpMyAdmin verwendet, was evtl. zuvor noch konfiguriert werden muss. Als Beispiel-Anwender wird der Benutzername kodi verwendet.
Ausserdem werden Vorlagen für die notwendigen Kodi-Konfigurationsdateien bereitgestellt und Hinweise dazu gegeben.
1. Der MySQL-Server auf dem QNAP-NAS aktivieren
2. Die Benutzer über phpMyAdmin definieren
Für den Zugriff von einem lokalen, auf dem NAS in der HD-Station laufenden, Kodi muss der Benutzer kodi%HOSTNAME (HOSTNAME ist der in der Systemsteuerung vergebene Name des NAS) erstellt werden:
Für Zugriffe von einem entfernt laufenden (anderer Client wie z.B. ein PC) Kodi wird der Benutzer kodi% benötigt:
Beide Nutzer sollten der Einfachheit halber dasselbe Passwort verwenden.
3. Freigabe für geteilte Nutzerdaten erstellen
Ziel ist es ja, die Nutzerdaten von verschiedenen Kodi-Clients gemeinsam zu verwenden. Die gemeinsamen Daten sollen hier nun in einer Freigabe auf dem NAS abgelegt werden (hier beispielhaft Kodi genannt). Dorthin muss das userdata-Verzeichnis kopiert werden, was sich im Kodi-Konfigurationsverzeichnis (Linux allgemein: $HOME/.kodi/userdata, Windows: C:\Users\Benutzer\AppData\Roaming\Kodi\userdata, MyKodi17 auf dem NAS: /share/CACHEDEV1_DATA/.qpkg/mykodi17/homes/newkodi17/.kodi/userdata). Hier in der Anleitung nennen wir das geteilte Verzeichnis userdata_shared.
Optional kann man einen eigenen NAS-Benutzer für kodi einrichten, um den Zugriff von Kodi-Clients über das Netzwerk zu beschränken. Dieser Nutzer sollte alles Notwendige (Medien) lesen können und natürlich das Verzeichnis userdata_shared in der Freigabe Kodi schreiben. Diesen Benutzer fragt Kodi dann beim ersten Zugriff auf die Freigabe ab und speichert ihn lesbar (unverschlüsselt!, deshalb der eigene Benutzer) in der passwords.xml ab.
4. Kodi-Konfigurationsdatei advancedsettings.xml erstellen
Über die advancedsettings.xml kann man die Kodi-Standardquellen nun in die erstellte Freigabe Kodi/userdata_shared umleiten. Die Date advancedsettings.xml muss im Kodi-Konfigurationsverzeichnisses jedes Kodi-Clients erstellt werden.
Es ist sinnvoll, folgende Dinge über mehrere Kodi-Clients zu teilen: Favoriten, Quellen, RSS-Feeds, Thumbnails und Addon-Data. Für die Medien-Quellen wird eine Datei sources.xml (siehe unten) verwendet, für Favoriten favourites.xml usw. (siehe Dateinamen in advancedsettings.xml). Diese Dateien müssen sich userdata_shared befinden bzw. werden von Kodi dann dort erstellt.
Der Zugriff wird grundsätzlich über SMB erfolgen, auch von einem auf dem NAS in der HD-Station laufenden Kodi. Dafür werden in der advancedsettings.xml noch pathsubstitutions benötigt.
Hier ist nun ein Beispiel einer advancedsettings.xml für die Nutzung von Kodi auf PC oder z.B. Android. Auf dem NAS müssen noch einige spezielle Dinge eingefügt werden, weshalb es für dieses eine leicht abgewandelte Version der advancedsettings.xml gibt (siehe darunter). Der Platzhalter NASIP muss jeweils durch die IP-Adresse des NAS ersetzt werden, passwort mit dem Passwort des zuvor konfigurierten MySQL-Benutzers.
<advancedsettings>
<pathsubstitution>
<substitute>
<from>special://profile/sources.xml</from>
<to>smb://NASIP/Kodi/userdata_shared/sources.xml</to>
</substitute>
<substitute>
<from>special://profile/RssFeeds.xml</from>
<to>smb://NASIP/Kodi/userdata_shared/RssFeeds.xml</to>
</substitute>
<substitute>
<from>special://profile/favourites.xml</from>
<to>smb://NASIP/Kodi/userdata_shared/favourites.xml</to>
</substitute>
<substitute>
<from>special://profile/playlists/</from>
<to>smb://NASIP/Kodi/userdata_shared/playlists/</to>
</substitute>
<substitute>
<from>special://profile/addon_data/</from>
<to>smb://NASIP/Kodi/userdata_shared/addon_data/</to>
</substitute>
<substitute>
<from>special://thumbnails</from>
<to>smb://NASIP/Kodi/userdata_shared/thumbnails/</to>
</substitute>
</pathsubstitution>
<videodatabase>
<type>mysql</type>
<host>NASIP</host>
<port>3306</port>
<user>kodi</user>
<pass>passwort</pass>
</videodatabase>
<musicdatabase>
<type>mysql</type>
<host>NASIP</host>
<port>3306</port>
<user>kodi</user>
<pass>passwort</pass>
</musicdatabase>
<videolibrary>
<importwatchedstate>true</importwatchedstate>
<importresumepoint>true</importresumepoint>
<exportautothumbs>false</exportautothumbs>
</videolibrary>
</advancedsettings>
Alles anzeigen
Auf dem NAS dieselbe advancedsettings.xml wie oben, aber noch das hinzufügen:
<advancedsettings>
<videoscreen>
<screen>0</screen>
</videoscreen>
<!-- <cputempcommand>sed -e 's/000$/ C/' /sys/class/hwmon/hwmon0/device/temp1_input</cputempcommand> -->
<cputempcommand>/opt/kodi/bin/get_NAS_temperature.sh</cputempcommand>
<gputempcommand>sed -e 's/000$/ C/' /sys/class/hwmon/hwmon0/device/temp1_input</gputempcommand>
<!-- Der Rest von der PC-Datei einfügen -->
</advancedsettings>
Alles anzeigen
5. Gemeinsame Medien-Quellen über sources.xml definieren
Auf die Medienquellen muss immer von allen Kodi-Clients (auch Kodi auf dem NAS) über die SMB-Freigaben zugegriffen werden, da Kodi diese in der Datenbank einträgt. Am Einfachsten ist das Bearbeiten der Datei sources.xml mit einem Texteditor, danach ändert man die Quellen ja eher selten. Nach dem Kodi-Start muss für jede Quelle dann dann noch in einem der Kodi-Clients noch einmalig der Inhalt festgelegt werden (Scraper auswählen usw.), damit diese in die Kodi-Mediendatenbank aufgenommen werden.
Die Quellen stehen in sources.xml, also in etwa so:
<sources>
<programs>
<default pathversion="1"></default>
</programs>
<video>
<default pathversion="1"></default>
<source>
<name>Podcast: Heise c't uplink</name>
<path pathversion="1">rss://blog.ct.de/ctuplink/ctuplinkvideohd.rss/</path>
<thumbnail pathversion="1">smb://NASIP/Videos/Podcasts/Folder.jpg</thumbnail>
<allowsharing>true</allowsharing>
</source>
<source>
<name>Musikvideos</name>
<path pathversion="1">smb://NASIP/Videos/Musikvideos/</path>
<thumbnail pathversion="1">smb://NASIP/Videos/Musikvideos/Folder.jpg</thumbnail>
<allowsharing>true</allowsharing>
</source>
<source>
<name>Alle DLNA-Server</name>
<path pathversion="1">upnp://</path>
<thumbnail pathversion="1">smb://NASIP/Videos/DLNA-Folder.png</thumbnail>
<allowsharing>true</allowsharing>
</source>
</video>
<music>
<default pathversion="1"></default>
<source>
<name>Musik</name>
<path pathversion="1">smb://NASIP/Musik/iTunes/MP3/</path>
<allowsharing>true</allowsharing>
</source>
</music>
<pictures>
<default pathversion="1"></default>
<source>
<name>Fotos</name>
<path pathversion="1">smb://NASIP/Bilder/Fotos/</path>
<allowsharing>true</allowsharing>
</source>
<source>
<name>Alle DLNA-Server</name>
<path pathversion="1">upnp://</path>
<thumbnail pathversion="1">smb://NASIP/Videos/DLNA-Folder.png</thumbnail>
<allowsharing>true</allowsharing>
</source>
</pictures>
<files>
<default pathversion="1"></default>
</files>
</sources>
Alles anzeigen
6. Was sonst noch wichtig ist
Alle Kodi-Clients sollten idealerweise dieselbe Version haben. Verschiedene Kodi-Versionen können verschiedene Datenbankversionen verwenden, darüber funktioniert der Austausch dann logischerweise nicht mehr. Welche Kodi-Versionen welche Datenbankversionen verwenden findest man hier: https://kodi.wiki/view/Databases . Innerhalb einer Kodi-Hauptversion sind die Datenbankversionen meist gleich. Bei einem Upgrade auf eine neue Kodi-Version, wird Kodi eine neue Datenbankversion erzeugen und die alten Daten übernehmen, die alte Datenbank bleibt bestehen.
Wenn Kodi die Datenbanken korrekt erstellen konnte, werden diese in phpMyAdmin links in der Datenbankliste angezeigt. Sie heissen MyMusicXX und MyVideosXX, wobei XX für die Datenbankversion steht. Sollte es Probleme beim Erstellen der Datenbanken geben, so meldet Kodi diese in seiner Log-Datei kodi.log im Kodi-Konfigurationsverzeichnis auf dem jeweiligen Client.
7. Weitergehende Informationen und Tutorials
Weitere grundsätzliche Informationen über die Konfigurationsdateien sind im offiziellen Kodi-Wiki beschrieben: https://kodi.wiki/view/Main_Page
Details über die Elemente innerhalb der advancedsettings.xml könne z.B. hier nachgeschlagen werden: https://kodi.wiki/view/Advancedsettings.xml
Es gibt auch ein sehr empfehlenswertes Tutorial auf YouTube, das sehr viel ausführlicher die Konfiguration beschreibt (ohne die NAS-spezifischen Besonderheiten). Das Tutorial wurde zwar für XBMC (den Kodi-Vorgänger) erstellt, aber die meisten Dinge treffen auch auf Kodi zu.
Kommentare 5
Schnirch1995
Hallo warpcam,
ich habe ein Problem. Ich versuche die MySQL Datenbank einzurichten für verschiedene Clienten. Für Windows-Clienten bekomme ich es hin, aber sobald ich die advancedsettings auf den Fire TV Cube kopiere, startet dort Kodi nicht mehr. Kannst Du mir da weiterhelfen?
Viele Grüße
warpcam Autor
Eröffne bitte ein eigenes Thema im Forum dafür und hänge dann dort die Dateien advancedsettings.xml und kodi.log vom Fire TV an. In Kommentaren geht das nicht.
Hinweis: In der kodi.log können theoretisch auch Benutzernamen und Passwörter stehen, also schau deshalb vorher mal rein und entferne sie.
warpcam Autor
Notwendige Anpassungen für Kodi 18:
Mit Kodi 18 wird die Umleitung der Datei sources.xml über advancedsettings.xml nicht mehr unterstützt. Diese muss sich nun lokal auf jedem Client befinden. Der Inhalt der sources.xml bleibt aber gleich. Ideal ist das nicht, da man nach Änderungen die Datei wieder auf allen Clients aktualisieren muss. Aber so oft ändert sich da ja normalerweise nichts.
Um die Umleitung aus der advancedsettings.xml zu entfernen, muss zusätzlich folgender Abschnitt wieder gelöscht werden:
warpcam Autor
Hier noch ein paar kleine Ergänzungen bzw. Verbesserungen:
Aus eigener Erfahrung, und mittlerweile auch im Kodi-Wiki dokumentiert, sollte das Thumbnail-Verzeichnis nicht zwischen mehreren Clients geteilt werden. Das führt zu Problemen, da die Zuordnung der Bilddateien über eine lokale SQLite-Datenbankdatei im lokalen Kodi-Benutzerordner gespeichert wird (in userdata/Database/Textures13.db). Jeder Client hat eine eigene lokale Textures-Datei und diese kann auch nicht geteilt werden und das führt zu Inkonsistenzen, was sich meist in falschen oder gar fehlenden Vorschaubildern in Kodi äußert.
Sollten Clients aktuell ein Thumbnail-Verzeichnis teilen, dann kann man das einfach auflösen. Dazu sollte jeder Client natürlich sein eigenes Thumbnail-Verzeichnis bekommen, gleichzeitig muss aber auch die jeweilige Textures-Datei (userdata/Database/Textures13.db) entfernt werden (Kodi vorher beenden!). Der Inhalt des alten Thumbnail-Ordners kann einfach gelöscht werden, Kodi legt die Dateien automatisch wieder an, wie auch Textures13.db. Immer daran denken, beide Teile immer zusammen zu entfernen, sonst gibt es Probleme.
Das Thumbnail-Verzeichnis kann wie folgt abgelegt werden:
(für Linux entsprechend den Teil <from> anpassen)
warpcam Autor
Noch ein kleiner Nachtrag für alle, die das gesamte HOME für Kodi aus dem .qpkg/KodiX-Verzeichnis auslagern wollen. Das macht das Sichern der Einstellungen einfach (z.B. mit HBS3) und sorgt dafür, dass das Kodi-HOME nicht aus Versehen beim Deinstallieren von Kodi gelöscht wird.
Die HOME-Variable, die für die Kodi-Session relevant ist, wird im Start-Script .qpkg/Kodi18L/startup_shell/startup_KodiXXX.sh gesetzt (XXX je nach Kodi-Version). Der eintscheidende Abschnitt befindet sich ab Zeile 34 (für Kodi18 light von qnapclub.eu) und muss wie folgt angepasst werden:
Im Beispiel oben wird HOME auf ein Verzeichnis in einer Freigabe namens Kodi gesetzt /share/Kodi/homes/hdstation_kodi18.