So geht’s: Einsatz mit mehreren Raspberry PI’s – openELEC/KODI Bibliothek über MYSQL-DATENBANK bzw. NAS synchronisieren

In dieser Anleitung zeige ich euch, wie ihr die Medienbibliothek mehrerer Endgeräte wie zum Beispiel den Raspberry PI untereinander synchronisieren könnt.

Alles was wir dazu benötigen ist etwas Zeit und einen lokalen MySQL-Server, welcher dauerhaft in Betrieb ist und sich ebenfalls im Netzwerk befindet. Ich nutze dazu meine QNAP NAS, auf welcher ein kompletter Webserver installiert ist, unter anderem auch ein MySQL Server.

1. Vorbereitung: MySQL Server

Zuerst also sorgen wir dafür, dass dieser MySQL Server für den Einsatz bereit steht. Dazu benötigen wir eigentlich nur einen neuen Benutzer mit Passwort, welchen wir via PHPmyAdmin anlegen. Die Datenbank sowie Tabellen werden automatisch erstellt, das können wir uns also sparen. Wir melden uns also in PHPmyAdmin ein und klicken oben auf „SQL“. In dieser Konsole führen wir nun einmalig folgenden Befehl aus:

CREATE USER 'kodi' IDENTIFIED BY 'kodi';
GRANT ALL ON *.* TO 'kodi';

Damit wird unser Benutzer erstellt, welchen wir für openELEC/KODI brauchen, um darauf zuzugreifen. Der Benutzername („kodi“) sollte natürlich noch frei sein und kann auch gerne beliebig geändert werden.

2. Vorbereitung: openELEC/KODI

Zuerst löschen wir nun, falls bereits auf einem oder mehreren unserer Systeme vorhanden, alle bisherigen Freigabe-Order unter Videos/Filme/Musik. Da wir ja zukünftlich alles synchron behandeln möchten, muss das alte erst erst mal raus. Wer noch keine Freigaben in der Bibliothek eingerichtet hat kann sich diesen Punkt natürlich sparen. Die gesamte Bibliothek muss später so oder so neu eingelesen werden.

Nun verbinden wir uns via FTP mit unserem Raspberry. Wem das nun gar nichts sagt, sollte HIER nachlesen. Sind wir mit unserem Raspberry PI verbunden, gehen wir nach /storage/.kodi/userdata und schauen ob sich dort bereits eine Datei mit dem Namen „advancedsettings.xml“ befindet. Ist dies nicht der Fall, erstellen wir eine. (Rechtsklick – Neue Datei erstellen) Wir kopieren anschließend die Datei „advancedsettings.xml“ nun auf unseren Computer und öffnen diese mit einem beliebigen Editor, beispielweise Notepad oder dem Windows-Editor. Dort tragen wir nun die für den hier vorgesehenen Einsatz folgende Einträge ein:

<advancedsettings>
  <videodatabase>
    <type>mysql</type>
    <host>000.000.000.00</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </videodatabase> 
  <musicdatabase>
    <type>mysql</type>
    <host>000.000.000.00</host>
    <port>3306</port>
    <user>kodi</user>
    <pass>kodi</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
</advancedsettings>

Bei <host> muss natürlich die korrekte IP von eurem MySQL Server eingetragen werden. Der Port sollte in der Regel 3306 sein, falls man da keine eigenen Anpassungen vorgenommen hat. In diesem Beispiel wird hier nun die Videobibliothek <videodatabase> sowie auch die Musikbibliothek <musicdatabase> via MySQL verwaltet, wer nur eins davon benötigt kann auf den Rest natürlich verzichten. Nun laden wir die Datei auf unseren Raspberry und starten diesen anschließend neu, damit die „advancedsettings.xml“ von OpenELEC/KODI beim Start automatisch erkannt wird.


Was jetzt noch fehlt, sind die neuen Freigaben, welche wir nun beliebig einrichten. Alle Dateien die nun eingelesen werden, sollten nicht mehr in der Bibliothek des Raspberry PI’s, sondern in der MySQL Datenbank landen. Das kann man auch schön beobachten, wenn man sich auf dem Computer PHPmyAdmin anschaut und dort in etwa Datenbanken wie „MyMusic“ oder „MyVideos“ auftauchen und sie sich automatisch mit Daten befüllen.

2 gute Anleitungen, wie man Inhalte hinzufügt, findet man hier:

Quellen hinzufügen/bearbeiten/löschen
http://bit.ly/1911bHU

Video-, Film- und Serien-Scraper einstellen
http://bit.ly/1EHBPYo

Um nun diese MySQL-Datenbank nun auf allen Geräten zu nutzen, muss die Datei „advancedsettings.xml“ so auf jedem Gerät eingerichtet werden, ebenso die Freigaben. Bei mehreren Geräten rate ich dazu, sich die Arbeit nur einmal zu machen und dann ein komplettes SD-Card-Image anzulegen. Dies kann dann auf belibieg viele Geräte übertragen und somit auch verwendet werden. Dann spart man sich eine ganze Menge Arbeit…


Das Einlesen der Dateien kann recht lange dauern, da jeder einzelne Film, jede Folge einer Serie und auch sonstige Videos in die Datenbank geschrieben werden, habt also etwas Geduld. Falls sich beim Hinzufügen und Auslesen der Freigabe-Ordner in eurer MySQL-Datenbank nichts tun sollte, stimmt etwas mit der Konfiguration nicht. Überprüft, ob wirklich alle IP-Adressen und Port’s übereinstimmen, um mögliche Fehler auszuschließen.

Fazit und Vorteil

Alle Geräte, welche dank der „advancedsettings.xml“ auf unsere lokale Datenbank zugreifen, sind untereinander synchron. Das heißt, aktualisiere ich auf Gerät A, B, C oder D den Inhalt eines Ordners (Bibliothek aktualisieren), sychronosieren sich alle weiteren Geräte automatisch mit. Beginne ich auf Gerät A einen Film und drücke bei 57 Minuten auf Stop, kann ich den Film an Gerät B oder C  (etc.) genau ab 57 Minuten fortsetzen. Und das Beste: Alle Geräte untereinander zeigen, welchen Film oder Serie man schon geschaut hat, ganz egal auf welchem Gerät man sie geschaut hat.



Das war hilfreich für dich?
Dann würde ich mich über eine Spende freuen.
Du entscheidest dabei, was dir dieser Artikel Wert war.

19 Gedanken zu „So geht’s: Einsatz mit mehreren Raspberry PI’s – openELEC/KODI Bibliothek über MYSQL-DATENBANK bzw. NAS synchronisieren“

  1. Hallo, schöne Anleitung. Genau nach sowas habe ich gesucht. Ich habe aber eine Frage zu dem MySQL Server. Muss dieser zwingend lokal sein? Da ich keine Möglichkeit habe diesen zu Hause elegant einzurichten würde ich wenn möglich auf Webhosting ausweichen.

    Danke schon mal für die Antwort und nette Grüße.

    1. Hallo Dome, danke für Dein Feedback. Also, ich glaube nicht dass dies möglich ist. MySQL-Server lassen in der Regel keinerlei Zugriff von außen zu, ausschließlich lokal. Also online kannst Du das wohl vergessen. Entweder also an einem NAS (z.B. QNAP), welches ebenfalls im Dauerbetrieb läuft, oder mit einem weiteren Raspberry PI, welcher Dir sozusagen als Server dient. Auf einem Raspberry PI lässt sich ganz einfach ein Webserver inkl. MySQL-Server installieren. Ich habe die elegante Lösung mit meiner QNAP, ansonsten würde ich wohl auch einen weiteren Raspberry PI als Server nutzen. Ach ja, ganz vergessen: Ein Online-Server würde ich so oder so nicht empfehlen. Alleine wegen der Geschwindigkeit…

  2. Hallo Matthmu,
    danke für die Anleitung, das habe ich demnächst auch vor.
    Ein Frage hätte ich:
    Ich habe schon ein HTPC im Wohnzimmer, würde jetzt gerne einen Raspi2 ins Schlafzimmer stellen und einen weiteren Raspi als MySQL Server verwenden. Gibts eine Möglichkeit den Watched-Status der Filme und Serien in die neue DB zu übernehmen?
    Big THX für Deine nützlichen Infos und LG.

    1. Hm, Du meinst den Status von Deinem bisherigen HTPC? Hui, da bin ich überfragt, kann ich Dir leider nicht beantworten. Irgendwie mit Sicherheit, zumal das ganze ja derzeit auch irgendwo gespeichert wird. Ob man das allerdings auf eine MySQL Datenbank „exportieren/importieren“ kann, weis ich nicht.

      1. Hey,
        zunächst einmal – eine schöne Zusammenfassung. Danke dafür.
        Ja das geht. So habe ich es mir auch eingerichtet. Man kann dank kodi verschiedene Systeme auf die Datenbank zugreifen lassen. Dazu die angefertigte „advancedsettings.xml“ einfach in das userdata-Verzeichnis kopieren.
        Das userdata-Verzeichnis ist je nach System an einer anderen stelle zu finden. Bei Openelec, Libreelec und OMSC ist der Ordner freigegeben. Für alle anderen Systeme kann der Pfad im kodiwiki gefunden werden.
        http://kodi.wiki/view/userdata

  3. Hallo,
    ich habe diese My SQL Lösung mit mehreren Systemen probiert Openelec, Raspbmc, etc. Ich habe meine vorhandene Datenbank dafür importiert. Leider dauert der Start des jeweiligen Pi bis zu 10 Minuten, einen Film zu starten dauert zwischen 1 und 2 Minuten.
    Die Verbindung zum Server ist schnell. Eingebunden sind die Inhalte über nfs. Der Datentransfer erreicht über 20MB/s.
    Ist das bei euch auch so unerträglich langsam?

    1. Auf keinen Fall, bei mir startet der PI innerhalb weniger Sekunden. Der Bootvergang dauert nur lange, wenn etwas im Netzwerk nicht stimmt, weil er sich dann den Wolf sucht. Aber auch das Abspielen geht bei mir ruck zuck, also liegt das Problem eindeutig an deiner Konfiguration. Aber frage mich nun bitte nicht wo, da kann ich Dir leider nicht helfen. Fakt ist: Normal geht das sehr schnell, ich hatte damit noch nie irgendwelche Probleme.

    2. Meine Vermutung ist, dass die Images 1:1 dupliziert wurden und daher die (identischen) IP-Adressen die Konflikte auslösen. Aber sicher ist das Problem nach 1,5 Jahren mittlerweile gelöst ;-)

      1. Ich mache es nicht anders, dupliziere auch nur das Image und spiele es auf jeden PI auf, hatte da noch nie Konflikte. Die IP Adressen selbst vergebe ich natürlich im Router und nicht am PI, bei mir im Netzwerk hat jeder PI mit seiner Mac-Adresse eine bestimmte IP zugewiesen, das läuft! :)

  4. Hi,
    Super Anleitung. hat auch auf anhieb alles funktioniert. Was nur ein Problem ist… ich nutze Kodi auf dem FireTV und dem FireTV Stick. ich habe die gleiche advancedsettings auf beide geräte kopiert. das Anlegen der DB klappt auch auf beiden geräten. Problem ist nur das er für jedes Kodi eine Datenbank anlegt… die eine heisst dann MyVideos90 und die andere angelegte heisst MyVideos93…. lösche ich eine der beiden Datenbanken, liest er alle informationen wieder ein und legt trotzdem wieder eine MyVideos93 an…. ich hab also im MySQL Server immer 2 Datenbanken für beide Geräte FireTV ist MyVideos93 und FireStick ist MyVideos90…. liegt es eventuell an den unterschiedlichen Versionen? FireTV hat Kodi 15.0 und FireStick hat 14.2???
    Grüße

    1. Puuuh, mho, gute Frage. Es könnte gut sein. Dazu kann ich Dir aber leider nichts genaueres sagen. Ich selbst hatte KODI nur zu Testzwecken auf dem FireTV und dem fireTV Stick, es war mir von der Performance her einfach zu langsam, weshalb ich mir selbst weitere PI’s angeschafft habe. Und die sind – was auch die Version betrifft – demnach alle „up2date“ und gleich in der Version. Kannst Du vllt mal die Version von 15.0 auf 14.2 downgraden? Dann siehst Du ja, ob sich daran etwas ändert. Etwas anderes würde mir nun auf die Schnelle leider nicht einfallen – tut mir leid.

  5. Danke für die tolle Anleitung. Folgendes Phänomen passiert bei mir regelmäßig. Sporadisch findet der Raspberry beim Start scheinbar keine Datenbank, es fehlen dann zb. die Ordner Filme und Serien. Ich starte dann das gerät bestimmt 3 mal neu, und dann funktioniert es wie aus Geisterhand. Hat jmd vielleicht eine Idee?

    1. Kenne ich. Habe ich auch bei einem der 3 Raspberry’s. Bei mir liegt es am WLAN, das wohl etwas länger braucht. Ich hab da für mich folgende Lösung gefunden: openELEC Einstellungen -> Netzwerk -> Erweiterte Netzwerkeinstellungen, dort „Vor dem Start auf Netzwerk warten…“ aktivieren! Maximale Wartezeit steht bei mir auf 60 Sekunden. Somit startet der PI nur, wenn er eine Netzwerkverbindung hat – und findet demnach auch die Datenbank etc. Probier das mal aus! :)

  6. Hallöchen,
    Super Anleitung!
    Habe ich unter Openelec 5.0.x super am laufen gehabt, alles hat fehler frei funktioniert.

    Nun habe ich heute auf Openelec 6.0.0 upgedatet und nun funktioniert es nicht mehr. habe nichts verändert an der settings.xml nur das Update eingespielt. Jedemand nen Tipp, woran es liegen könnte?

    Vielen lieben Dank.

    1. Ja, willkommen im Club, ging mir genau so! :o) Ich habe die Tage auch den ersten PI auf 6.0.0 geupdatet und es damit nicht mehr geschafft auf die DB zuzugreifen, obwohl alles gleich blieb. Jedenfalls geht das nicht, Du musst (wie ich auch) alles neu in die DB einlesen. KODI unterstützt keine MySQL DB für unterschiedliche Versionen, dies fand ich so zumindest im Wiki. Also neue DB erstellen, vergibst in der XML Datei am besten einen gewünschten Namen und dann alles neu einlesen. Dann klappts auch! ;-) LG und Danke für’s Feedback…

      1. habe jetzt alle 4 Pi’s im Haushalt auf OSMC umgestellt, damit klappt das einrichten zumindest leichter, Datenbank wird gerade neu gebaut ;o)

        wenn Sie mir jetzt noch verraten wie ich die FireTVstick-Fernbedienng zum laufen bekomme, gibts ne Spende ;o)

        mfg
        Micha

        1. Sehr schön, bei mir läuft auch nur noch OSMC! :) Geht einfach besser. Ja, auch mit der FB vom Amazon Fire TV Stick kann ich Dir helfen. Schaust Du mal hier nach, da habe ich bereits drüber geschrieben. Wenn Du Bluetooth eingeschaltet hast und nach neuen Geräten suchst, einfach ganz lange die HOME-Taste auf der Fernbedienung drücken, bis er sie findet. Dann „Verbinden mit PIN“ und fertig! Lief bei mir auf Anhieb Plug&Play… Viel Erfolg! :-)

  7. Hallo, danke für die Anleitung! Ich erbitte mir einen Tipp zu folgendem Szenario: Eine Kodi Instanz läuft aktuell auf einem Laptop im Schlafzimmer, eine zweite zukünftig im Wohnzimmer, wahrscheinlich dann auf nem Fire TV Stick. Kann ich den SQL Server dann auch einfach auf meinem Laptop laufen lassen? Dieser muss sowieso eingeschaltet sein, weil ich hier auch per Dateifreigabe auf die Medien zugreifen möchte.

    1. Das geht, klar. Sofern der MySQL Server im Netzwerk erreichbar ist, klaro. Würde Dir aber raten einen separaten PI mit SQL-Server aufzusetzen, welcher dann immer im Betrieb ist. Ist einfach bequemer…

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>