[{TableOfContents numbered='yes'}]

= Medienserver und Client mittels Kodi einrichten =


== Was ist Kodi (ehemals XBMC) ==

Bei Kodi handelt es sich um eine ausgereifte Software zu Verwaltung, streaming und Wiedergabe von diversen Mediendaten. Das Mediencenter zeichnet durch seine Erweiterbarkeit durch Hunderte von Add-ons aus.

Musik, Bilder, lokale Videos und Mediatheken sowie Video-Channels im Web werden von Kodi widergegeben. Hierbei werden wirklich alle geläufigen Musik- und Videoformate abgespielt.

Ferner bindet Kodi neben lokalen Festplatten auch alle LAN-Ressourcen und Geräte-Server wie z.B. UPnP-Devices, NFS-Netzwerk, Windows-Netzwerk und HD-Homerun-Geräte (TV-Tuner) ein.



== Wie wird Kodi in diesem Beispiel eingesetzt ==


__Hardware:__

*Desktop PC
*Laptop
*Raspberry Pi 2
*Android Handy


__Software:__

*Debian als Betriebssystem für den Desktop PC und den Laptop
*KODI (ehemals XBMC)
*MariaDB (statt MySQL), ersetzt die interne Datenbank von Kodi
*phpMyAdmin (Optionales Tool für MariaDB)



= SERVER einrichten =


== Debian installieren ==

Debian wird z.B. von folgender Seite heruntergeladen:

https://www.debian.org/CD/http-ftp/

Hier befindet sich auch eine entsprechende Anleitung.

Kurz und Bündig:

*CD Image erstellen
*Installation gemäß selbsterklärenden Bildschirm Anweisungen durchführen



=== Festplattenpartitionen in unserem Beispiel ===

__Kleiner Tipp: __
*Für das HOME-Verzeichnis eine eigene Partition anlegen.
*Für die „echten Daten“ eine eigene komplette Festplatte verwenden (Erleichtert ggf. eine Neuinstallation des Betriebssystems)
*Filme, Serien, Mediendaten werden vermutlich so viel, dass sich eine eigene Festplatte lohnt, ist aber nicht Voraussetzung.


__128 GB SSD__
* 45 GiB -  ext4     /               - (Root)
* 10 GiB - SWAP                  - (Auslagerung)
* 60 GiB - ext4     /home      -  (Hier werden KEINE Daten sondern nur die „Einstellungen“ von Programmen in verstecken Verzeichnissen (mit „.“ beginnend) gespeichert.



__500 GB Festplatte (schnelle Version)__
* 400 GiB -  ext4     /Daten    -   Dokumente, Daten und temporär Filme zum bearbeiten (schneiden usw..)



__2000 GiB Festplatte (mittlere Geschwindigkeit)__
* 2000 GiB -  ext4     Medien-01     Filme, Serien, Musik, Bilder....



== MariaDB installieren ==

MariaDB ist (fast) vollständig kompatibel mit MySQL. Daher „merkt“ Kodi auch nicht, dass MariaDB verwendet wird.

MariaDB sollte in der „Konsole“ installiert werden, da während der Installation ein Passwort abgefragt wird. Diese Passwort sollte (obwohl es optional ist) unbedingt vergeben werden. Damit erleichtert Mann sich das Leben später gewaltig......

Bei der Installation durch eine grafische Software hatte ich schon Probleme und rate daher an dieser Stelle davon ab die grafischen „Helferlein“ zu verwenden.

Folgender Befehl kann in der Konsole verwendet werden:

 apt-get install mariadb-server-10.0  mariadb-server mariadb-client



==  phpMyAdmin installieren ==

Auch hier kann in der Konsole folgender Befehl verwendet werden:

 apt-get install php5 php5-mysql phpmyadmin 


== deb-multimedia installieren ==

In Source List wird folgender Eintrag hinzugefügt:


 deb http://debian-mirrors.sdinet.de/deb-multimedia stable main


Achtung: Verwenden Sie die gleiche Version wie auch Debian (z.B.: stable).

Wenn Sie hier eine andere Version (z.B testing) kann es zu Konflikten bei der weiteren Installation kommen.



== Kodi installieren ==

Kodi kann nun direkt mittels

 apt-get install kodi

aus den Paketquellen installiert werden

Für viele Betriebssysteme gibt es auf folgender Seite einen Installer bzw. weitere Beschreibungen:

__http://kodi.tv/download/__


Für Linux bzw. Debian wird folgende Beschreibung verwendet:

__http://kodi.wiki/view/HOW-TO:Install_Kodi_for_Linux__




== MariaDB (MySQL) Datenbank freigeben ==

In der Datei:

__/var/lib/mysql/my.cnf__  wird folgender Eintrag auskommentiert und die Datei gespeichert

 bind-address		= 127.0.0.1
 #bind-address		= 127.0.0.1

Neustart des Servers um die Änderung wirksam zu machen

 /etc/init.d/mysql restart


Weitere Infos z.B.: auf folgender Seite: http://www.sysadminslife.com/linux/quicktipp-mysql-externer-zugriff-erlauben-bind-address/



== MariaDB (MySQL) für Kodi vorbereiten ==

In der Konsole MariaDB starten


 mysql -u root -p


Passwort eingeben und durch folgende Befehle einen Benutzer mit entsprechenden Rechten anlegen. (Bitte ; am Ende der Zeile nicht vergessen und mit Return bestätigen)


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



== Samba „Server“ installieren und einrichten ==

In der Konsole mit folgendem Befehl installieren

 apt-get install tdb-tools samba-common samba 


Konfigurationsdatei um Freigabeverzeichnis ergänzen

 Weitere Tipps und eine Beschreibung: https://wiki.ubuntuusers.de/Samba_Server/smb.conf/


 [Medien-01]
 path = /Medien-01
 public = yes
 writable = yes
 comment = Medien 01
 printable = no
 guest ok = yes



== Samba clienten installieren und einrichten ==

In der Konsole mit folgendem Befehl installieren


 apt-get install smbclient




== Kodi auf dem Server für MariaDB einrichten ==


Bei dem Server wird folgende Einstellung vorgenommen:

Folgende Datei wird mit einem Texteditor geöffent:

__/home/BENUTZER/.kodi/userdata/advancedsettings.xml__


Wichtig ist hier der selbsterklärende Teil  __<videodatabase>__ und __<musicdatabase>__


 <advancedsettings> 
  <videodatabase>
   <type>mysql</type>
   <host>localhost</host>
   <port>3306</port>
   <user>kodi</user>
   <pass>kodi</pass>
  </videodatabase> 
  <musicdatabase>
   <type>mysql</type>
   <host>localhost</host>
   <port>3306</port>
   <user>kodi</user>
   <pass>kodi</pass>
  </musicdatabase>
  <videolibrary>
    <importwatchedstate>true</importwatchedstate>
    <importresumepoint>true</importresumepoint>
  </videolibrary>
  <tvshowmatching>
   <regexp>[Ss]([0-9]+)[][ ._-]*[Ee]([0-9]+)([^\\/]*)$</regexp>  <!-- foo.s01.e01, foo.s01_e01, S01E02 foo, S01 - E02 -->
   <regexp>[\._ -]()[Ee][Pp]_?([0-9]+)([^\\/]*)$</regexp>  <!-- foo.ep01, foo.EP_01 -->
   <regexp>([0-9]{4})[\.-]([0-9]{2})[\.-]([0-9]{2})</regexp>  <!-- foo.yyyy.mm.dd.* (byDate=true) 
   <regexp>([0-9]{2})[\.-]([0-9]{2})[\.-]([0-9]{4})</regexp>  <!-- foo.mm.dd.yyyy.* (byDate=true) 
   <regexp>[\\/\._ \[\(-]([0-9]+)x([0-9]+)([^\\/]*)$</regexp>  <!-- foo.1x09* or just /1x09* -->
   <regexp>[\\/\._ -]([0-9]+)([0-9][0-9])([\._ -][^\\/]*)$</regexp>  <!-- foo.103*, 103 foo -->
   <regexp>[\/._ -]p(?:ar)?t[_. -]()([ivx]+)([._ -][^\/]*)$</regexp>  <!-- Part I, Pt.VI -->
  </tvshowmatching>
  <moviestacking>
   <!-- <cd/dvd/part/pt/disk/disc/d> <0-N> -->
   <regexp>(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck]|d)[ _.-]*[0-9]+)(.*?)(\.[^.]+)$</regexp>
   <!-- <cd/dvd/part/pt/disk/disc/d> <a-d> -->
   <regexp>(.*?)([ _.-]*(?:cd|dvd|p(?:ar)?t|dis[ck]|d)[ _.-]*[a-d])(.*?)(\.[^.]+)$</regexp>
   <!-- movienamea-xvid.avi, movienameb-xvid.avi -->
   <regexp>(.*?)([ ._-]*[a-d])(.*?)(\.[^.]+)$</regexp>
  </moviestacking>
 </advancedsettings>



== Original DVD und Bluray abspielen ==

Da es immer wieder rechtlich umstritten ist original DVD oder BluRay unter Linux ANZUSEHEN möchte ich auf die Wiedergabe von DVD und BluRay hier nicht weiter auf das Thema eingehen, sondern nur auf das Internet verweisen wie z.B.: http://vlc-bluray.whoknowsmy.name/


= CLIENTEN einrichten (Laptop) =


== Samba Verzeichnis beim Clienten mounten ==

Als nächstes das freigegebene Verzeichis mit dem gleichen Namen und an die gleiche Stelle im Dateisystem mounten

=== Manuell das per Samba freigegebene Verzeichnis in der Konsole mounten ===

 mount -t cifs -o user=smbguest,guest //IP.ADRESSE.VOM.SERVER/Medien-01 /Medien-01


=== Freigegebenes Verzeichnis automatisch beim Rechnerstart einbinden ===

 //IP.ADRESSE.VOM.SERVER/Medien-01 /Medien-01 cifs user=smbguest,guest


== Kodi auf dem Clienten einrichten ==

Die Verbindung wird zum Server hergestellt

 <advancedsettings> 
  <videodatabase>
   <type>mysql</type>
   <host>IP.ADRESSE.VOM.SERVER</host>
   <port>3306</port>
   <user>kodi</user>
   <pass>PASSWORT</pass>
  </videodatabase> 
  <musicdatabase>
   <type>mysql</type>
   <host>IP.ADRESSE.VOM.SERVER</host>
   <port>3306</port>
   <user>kodi</user>
   <pass>PASSWORT</pass>
  </musicdatabase>
  DIVERSE WEITERE EINTRÄGE
 </advancedsettings>



====================================================================

===================== Raspberry Pi 2 einrichten =======================

====================================================================


== Raspberry Pi 2 Hardware und installation ==


__Hardware:__

*[http://www.amazon.de/gp/product/B00T2U7R7I?psc=1&redirect=true&ref_=oh_aui_detailpage_o02_s01 Raspberry Pi 2]
*[http://www.amazon.de/gp/product/B00V0UU392?psc=1&redirect=true&ref_=oh_aui_detailpage_o02_s01 Leistungsfähiges Netzteil]
*[http://www.amazon.de/gp/product/B00QB6F9I0?psc=1&redirect=true&ref_=oh_aui_detailpage_o01_s00 Gehäuse mit Kühlkörper (optional)]
*[http://www.amazon.de/gp/product/B00MWXUKDK?psc=1&redirect=true&ref_=oh_aui_detailpage_o02_s01 Schnelle SD Karte]
* oder statt der leeren SD Kyarte besser gleich [http://www.amazon.de/gp/product/B00TZRUA40?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00 eine SD Karte mit Xbian und einigen vorinstallierten nützlichen Tools...]
*USB Maus und Tastatur zur Installation
*Fernbedienung für den späteren Einsatz



__Installation:__

Es existieren diverse (meist gute) Beschreibungen zur Installation von Xbian wie z.B.:

*[http://www.tutonaut.de/kodi-serie-billig-lautlos-winzig-kodi-auf-dem-raspberry-pi-29.html Der Tutonaut]
*[http://www.xbian.org/ Xbian Homepage]
*[https://books.google.de/books?id=JzOvAgAAQBAJ&pg=PA10&lpg=PA10&dq=xbian+ben%C3%B6tigt+qt&source=bl&ots=QKBCStT-2F&sig=XQq8rBsB5dJmRBdVMg5MPI0-pug&hl=de&sa=X&ved=0ahUKEwjZu8fAidHKAhWH_g4KHdeyALMQ6AEIMTAE#v=onepage&q=xbian%20ben%C3%B6tigt%20qt&f=false Ein nützliches ONLINE-Buch....]


=== Installer für Linux verwenden ===

Ein Installationsprogramm kann auch für Linux direkt von der [http://www.xbian.org/ Xbian Homepage Xbian] heruntergeladen werden. Dieser Installer benötigt jedoch [http://forum.xbian.org/thread-692.html 64-bit Linux UND QT]. Bei meinem Debian System mit KDE funktionierte der Installer auch bei installiertem QT leider nicht.


=== Image laden und übertragen ===


Die Imagedatei direkt von der [http://www.xbian.org/ Xbian Homepage] herunterladen (Hier ist auch eine Hilfe verfügbar)

Die Kommandozeile (Shell) aufrufen

Im ersten Schritt lassen wir uns eine Aufstellung aller Speichermedien anzeigen:

 df -h  ODER 	lsblk

Eine dieser Einträge ist unsere SD Karte (sofern diese erkannt wurde). Man erkennt sie entweder an der Bezeichnung oder am angegebenen Speicherplatz. 

Um das Image auf die SD Karte zu kopieren darf die SD-Karte nicht gemountet sein.

 diskutil umount /dev/sdbx oder umount /dev/sdbx  (wobei sdbx durch den oben ermittelten Eintrag ersetzt werden muss.

Danach sollte die SD Karte bei einem df -h  ODER lsblk nicht mehr sichtbar sein.

Im nächsten Schritt wird das Image bitweise auf die SD Karte kopiert. Dafür wird folgender Befehl verwendet:

 dd of=/dev/sdbx if=/home/Downloads/image.img bs=1M

__ACHTUNG__

__Mit "of=/dev/sdbx" ist das Ausgabemedium gemeint. Hier ist Linux (gewollt) recht schmerzfrei. Wird hier das falsche Laufwerk gewählt sind die Daten wech...... (Ist mir leider mit dem Bootlaufwerk passiert. Habe dazugelernt....)__



=== SD-Karte gleich mit Xbian bestellen ==

Am leichtesten ist es [http://www.amazon.de/gp/product/B00TZRUA40?psc=1&redirect=true&ref_=oh_aui_detailpage_o00_s00 eine SD Karte mit Xbian und einigen vorinstallierten nützlichen Tools] fertig zu bestellen. Der Aufpreis ist nur gering und die Grundinstallation ist vorhanden. Zumindest startet der Raspberry direkt mit KODI.....



== Raspberry Pi 2 und Kodi Grundeinrichtung ==

Auch hier gibt ei einige gute Werke im Internet z.B. [http://blog.helmutkarger.de/raspberry-media-center-teil-7-xbian/ von Helmut Karger].

Grundsätzlich kann sich von einem entfernten Rechner per ssh angemeldet werden:

 ssh xbian@IP.ADRESSE.VON.RASPERRY
 Passwort EINGEBEN (in der Grundeinstellung = raspberry 
 
Es erscheint ein Menü in dem auch die Passworte (Settings usw...) geändert werden können. Hier kann auch eingestellt werden ob diese Menü immer erscheinen soll, wenn eine Anmeldung über den Benutzer xbian erfolgt..... 

Das Menü kann auch nachträglich über "~/.xbian-config-start" aufgerufen werden.


 Wir verlassen mit Exit das Menü
 Mittel "su" melden wir uns als ROOT an....
 Das Passwort wird eingegeben (sollte zuvor über das menü geändert werden.

Nun erscheint: "root@xbian:/home/xbian#"

Mit folgendem Befehl wird nun das Laufwerk vom Debian Server (das Laufwerk mit den zuvor freigegebenen Filmdaten) manuell eingebunden bzw. gemountet:
 
 mount -t cifs -o user=smbguest,guest //192.168.178.8/Medien-01 /Medien-01
 
Hier hänge ich noch fest und habe keine Lösung:

Alle Verzeichnisse und Filme werden angezeigt. Wird jedoch versucht einen Film abzuspielen gibt es eine Fehlermeldung mit einer Zugriffsverletzung (vermutlich Benutzerrechte bei der Freigabe)....

An diesem Problem wird gearbeitet. Sobald das gelöst ist wird die Beschreibung hier aktualisiert.
 
 Mit "exit" wird xbian wieder verlassen.
 



== Kodi auf dem Raspberry mit dem SQL Server auf dem Hauptrechner verbinden ==

 ssh xbian@IP.ADRESSE.VON.RASPERRY
 Passwort EINGEBEN (in der Grundeinstellung = raspberry 
 Menü mit "exit" verlassen
 cd .kodi
 cd userdata
 Ergebnis in der Konsole: xbian@xbian ~/.kodi/userdata $ 

Mit einem Texteditor wie z.B. Nano die Konfigurationsatei öffnen

 nano advancedsettings.xml 
 

 <advancedsettings> 
  <videodatabase>
   <type>mysql</type>
   <host>IP.ADRESSE.VOM.SERVER</host>
   <port>3306</port>
   <user>kodi</user>
   <pass>PASSWORT</pass>
  </videodatabase> 
  <musicdatabase>
   <type>mysql</type>
   <host>IP.ADRESSE.VOM.SERVER</host>
   <port>3306</port>
   <user>kodi</user>
   <pass>PASSWORT</pass>
  </musicdatabase>

Dieses Vorgehen ist identisch wie die Verbindung vom Laptop zum Server..

Beim nächsten Start werden die auf dem Server eingetragenen Filme angezeigt.




== Sicherung der SD Karte  Raspberry Pi ==

__Sicherung der SD Karte:__

*[https://got-tty.org/rasberrypi-xbian-auf-einen-usb-stick-installieren Fertige SD Karte auf einen USB Stick übertragen]




== Tipps- und Tricks Filme und Serien verwalten ==

Es gibt verschiedene Möglichkeiten Filme und Serien mittels Kodi abzuspielen.
Am meisten Sinn macht es sicherlich Filme und Serien in die interne Datenbank von Kodi zu importieren.
Hierzu ist es erforderlich Filme mit einer bestimmten Namensgebung Filmtitel (Erscheinungsjahr) Terminator (1984) zu speichern.

zu dieser Vorgehensweise gibt es einige Beschreibungen im Internet wie z.B.:

http://www.kodinerds.net/index.php/Thread/2073-Video-Film-und-Serien-Scraper-einstellen-XBMC-Datenbank-füllen/

Diese Beschreibungen möchte ich hier nicht wiederholen.

Hier aber einige zusätzliche Tricks bzw. Hinweise:

Filme und Serien werden in verschiedenen Unterverzeichnissen gespeichert.
Hierbei ist nochmals zu unterscheinden ob der Film/Serie auf der Festplatte gespeichert ist, oder sich z.B. im Original auf DVD oder BluRay im Schrank befindet.

So können Filme eingetragen werden, die als Original im Schrank stehen:

 Terminator (1984) - 06-1-05.DVD.disc
 Terminator - Die Erlösung (2009).Bluray.disc

Der Dateiname wird durch Kodi, wenn der Scrabber auf themovie eingestellt wurde, auf folgender Seite geprüft und alle weiteren Einträge ergänzt:
 https://www.themoviedb.org/movie/218-the-terminator

Hinter dem Filmtitel können noch beliebige Angaben als Ergänzug eingetragen werden wie z.B.: 06-1-05 (Regalplatz des Filmes)
UND .DVD.disc / .Bluray.disc als inweis dafür, dass sich der Film auf original DVD oder BluRay im Regl befindet.

Bei der *.disc Datei handelt es sich um eine einfache Textdatei. 
Wenn mann diesen Film in Kodi abspielen möchte kann Kodi diesem Wunsch natürlich nicht nachkommen, da der Film nicht sofort auf der Festplatte verfügbar ist.
Im Standard wird nur ein Hinweis ausgegeben, dass eine DVD / BluRay eingelegt werden soll.
Wenn Kodi auch noch zeigen soll, in welchem Regal sich der Film befindet, wird die Textdatei um folgenden Eintrag ergänzt.
 <discstub>
  <message>Lagerplatz im Regal ggf. gefolgt von internen Filmnummer</message>
 </discstub>



WICHTIG:

JEDER Film und JEDE Serie sollte in einem eigenen Unterverzeichnis gespeichert werden, auch wenn der Film z.B. nur eine einzenlen MPEG oder AVI Datei sein sollte.
Ein späterer Export der Datenbank kann auf Wunsch auch die Bilder Fanart, Schauspieler usw. automatisch exportieren. Diese "landen" dann automatisch in diesem Ordner.
Zusätlich können ggf. die Coverbilder hier gespeichert werden......

Gehen wir nun mal davon aus, dass Sie alle einen (oder alle) Film(e) in die Kodi Datenbank eingetragen haben.

Nun ist es empfehlenswert diese wieder aus Kodi heraus wieder als Sicherung zu speichern.
 - Einstellungen
 - Videos
 - Datenbank
 - Vidiobibiothek exportieren
  + Separat
  
   
Diese Speicherung erfolgt mit dem Punkt __Separat__. Hierdurch wird nun in jedem Filmordner eine FILMNAME.NFO Datei angelegt.
Sollten Sie später einmal (oder öfter) Kodi neu aufsetzen, werden diese NFO Dateien automatisch, bevorzugt vor den Informationen aus dem Internet, eingelesen.

Hier liegt nun unsere große Möglichkeit unsere eigenen Bedürfnisse in Kodi einzubringen.
Die NFO Datei ist auch wieder nur eine enfache Textdatei, die angepasst werden kann.

Folgende Anpassungen habe ich für mich als Sinnvoll herausgefunden:

Recht weit oben in der Datei befindet sich der Eintrag outline.
Dieser wird nur selten genutzt, aber direkt in Kodi angezeigt.
Hier habe ich den Regalplatz der original DVD / BluRay eingetragen:

 <outline>DVD 06-01-05</outline>


Zusätzlich habe ich die automatisch eingelesenen Genre angepasst.
Diese habe ich auf einige wenige wirklich wichtige genre reduziert und nicht relevante Einträge (nach denen ich sowieso nicht suchen oder gruppieren würde gelöscht.
Zusätzlich habe ich für mich den oberstesten (ersten) Eintrag vorgesehen.
Hier trage ich ein ob mir dieser Film gefallen hat. Dafür habe ich einige kategorien (Genre) gebildet TTH-TOP, TTH-GUT, TTH-OK, TTH-SCHLECHT.
(Das (TTH-) habe ich vorangestellt, um zu zeigen, dass dieser Eintrag manuell von mir stammt.
Nun kann ich meine eigene kategorie in Kodi auswählen und alle darin gelisteten Filme zeigen.....

    <genre>TTH-TOP</genre>
    <genre>Action</genre>
    <genre>Science Fiction</genre>
    <genre>Thriller</genre>

Ab jetzt sollte dieser Film aber nicht mehr durch das Internet aktualisiert werden. Dann sind die eingenen Einstellungen wech..