XBMC
XBMC (umbenannt in "Kodi") ist eine OpenSource-Software, die in etwa dem Funktionsumfang des Windows MediaCenters entspricht, d.h. im Wesentlichen Filme und Musik abspielen und aufnehmen und TV auf dem jeweiligen Gerät ermöglicht.
Mit TvHeadEnd lässt sich XBMC auch zu einem Videorecorder aufmöbeln. Damit ist auch das automatische Aufwachen zum Aufnehmen einer programmierten Sendung möglich. Siehe https://tvheadend.org/projects/tvheadend/wiki/Wakeup . Möglicherweise hilft auch dieser Thread zum Wakeup und Shutdown von XBMC,
OpenELEC ist eine Linux-Distribution, die speziell für die Unterstützung von XBMC entwickelt wurde.
PVR
Für Live-TV und das Aufnehmen von Videos benötigt XBMC ein Backend. Ein solches ist Tvheadend.
Tvheadend
Vorbereitung: Firmware für TV-Stick/-Karte
Häufig benötigen TV-Sticks oder -Karten unter Linux eine spezielle Firmware, die speziell installiert werden muss.
Beispiel TechnoTrend TT-TVStick CT2-4400:
Hier muss man die Dateien dvb-demod-si2168-b40-1.fw
und dvb-tuner-si2158-a20-01.fw
vom OpenElec-Server herunterladen und ins Verzeichnis /lib/firmware
verschieben.[1]
Installation in Ubuntu
Siehe die Installationsanleitung auf tvheadend.org. Für Ubuntu 15.10 Wily muss man auf die "Release"-Version von 15.04 "vivid" zurückgreifen (Stand: Ende 2015).
Die Installationsanleitung auf ubuntuusers.de ist dagegen veraltet (Stand: 4.8.2015).
Installation in Ubuntu 13.10
Zur Installation von Tvheadend auf Ubuntu 13.10 saucy salamander benötigt man das Paket für die alte "Raring"-Version.[2] Dazu erzeugtt man beispielsweise die Datei /etc/apt/sources.list.d/tvheadend.list
mit folgendem Inhalt:
deb http://apt.tvheadend.org/stable raring main
Außerdem importiert man noch den GPG-Schlüssel:[3]
curl http://apt.tvheadend.org/repo.gpg.key | sudo apt-key add -
Evtl. muss man den User "hts", unter dem der tvheadend-Server läuft, noch der Gruppe video
zuweisen:
adduser hts video
Zu Testzwecken kann man den tvheadend-Server auch im Vordergrund ausführen
sudo service tvheadend stop # Daemon anhalten sudo su hts # als hts-Benutzer anmelden tvheadend
Konfiguration
Unter http://localhost:9981/
- TV-Tuner auswählen
- Network hinzufügen
- das Network beim TV-Tuner/Adapter aktivieren
- mit save Sendersuchlauf starten
- Muxes auf Services spiegeln
- DVB-Services auf Channels spiegeln
- unter Configuration -> Timeshift dieses einschalten und ggf. einen Pfad zur Pufferspeicherung angeben
- unter Configuration -> Recording etwas Vor- und Nachlauf einschalten, damit nicht die Aufnahmen den Anfang und das Ende nicht enthalten.
Zugriff
Die WebGUI von Tvheadend erreicht man unter http://localhost:9981/ .
- Für XBMC braucht man noch das nötige Plugin. Das findet sich z.B. auf http://www.ubuntuupdates.org/package/xbmc/raring/main/base/xbmc-pvr-tvheadend-hts .deb-Paket herunterladen und mit
dpkg -i packagename.deb
installieren.
- Wohl ist die leichteste Variante der Installation des Pakets kodi-pvr-hts über das PPA von Kodi.
In XBMC-Settings unter "Live-TV" Live-TV einschalten, ggf. noch das Tvheadend-Plugin aktivieren (Enabled).
Möglicherweise klappt auch der Zugriff über VLC. Dazu braucht man jedoch das VLC-HTSP-Plugin, das ggf. kompiliert werden muss.
JSON-RPC API
Auf Kodi kann man auch mittels JSON-API zugreifen. Beispiele:
curl --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.GetActivePlayers" }' 'http://kodibox:8080/jsonrpc'
curl --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "JSONRPC.Version" }' 'http://nuckie.fritz.box:8080/jsonrpc'
Steht der DLNA-Renderer zur Verfügung?
curl --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Settings.GetSettingValue", "params": { "setting":"services.upnprenderer" } }' 'http://kodibox:8080/jsonrpc'
DLNA-Renderer einschalten:
curl --header 'Content-Type: application/json' --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Settings.SetSettingValue", "params": { "setting":"services.upnprenderer", "value":true } }' 'http://kodibox:8080/jsonrpc'
Einen Überblick der vorhandenen Methoden gibt
http://kodibox:8080/jsonrpc
Siehe dazu
- http://kodi.wiki/view/JSON-RPC_API
- http://kodi.wiki/view/JSON-RPC_API/Examples
- Thread mit Beispielsaufrufen
Videos
Manuelles Hinzufügen von Metadaten
Wenn die Videos keine Metadaten enthalten und auch nicht mittels der in Kodi eingebauten Scraper mit Informationen versorgt werden können, kann man durch Hinterlegen einer .nfo
-Datei Metainformationen den Videos beigeben. Die Datei trägt denselben Namen wie die Filmdatei; lediglich die Endung wird durch .nfo ersetzt.
Sie ist regelmäßig eine XML-Datei. Ihre nähere Beschreibung findet sich im Kodi-Wiki.
Addons
Addons selbst entwickeln
Siehe zu Grundlagen:
- http://forum.kodi.tv/showthread.php?tid=160975
- Python-Docs (leider hier nur ältere Version)
Das Addon-Modul "Kodi Plugin Routing" ermöglicht deutlich leichter lesbare Plugins für Kodi zu schreiben.
Video-Addons
Mediathek
Problem mit Debian Stretch
Unter Debian Stretch kann es sein, dass das Mediathek-Modul seit Version 0.7.3 nicht mehr funktioniert. Grund ist eine Abhängigkeit des ab dieser Version eingesetzten BeautifulSoup-Frameworks. Dieses kommt mit dem unter Debian Stretch für Python 2.7 installierten python-html5lib-Modul durcheinander. Das lässt sich durch das Entfernen von python-html5lib
beheben:
sudo aptitude -y remove python-html5lib
Problem mit Kodi 17.0 auf Debian Stretch
Die Mediathek zeigte bei mir nach dem Update auf Kodi 17.0 keine Daten zu den Filmen an. In den Logs fand sich folgender Fehler:
Exception ERROR: TypeError ERROR: : ERROR: "'NoneType' object is not callable" ERROR: in ERROR: 'lxml.etree._ExceptionContext._store_raised' ERROR: ignored
Abhilfe schaffte die Ergänzung von , "html.parser"
bei der Erzeugung einer Instanz von BeautifulSoup (z.B.
bs = bs4.BeautifulSoup(text, "html.parser")
) in allen Dateien des Plugins Mediathek. Die Dateien findet man durch
grep -R "BeautifulSoup" ~/.kodi/addons/plugin.video.mediathek/*
Siehe dazu auch diesen Thread im Kodi-Forum.
Naheliegendes
Siehe auch