XBMC: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
Zeile 11: | Zeile 11: | ||
* http://penzin.net/kodi.html | * http://penzin.net/kodi.html | ||
+ | * [https://wiki.debian.org/KodiBuildingFromSource ältere Beschreibung im Debian-Wiki] | ||
− | Statt des | + | Statt des bei Penzin beschriebenen Autostarts kann man es auch mit [http://kodi.wiki/view/Archive:HOW-TO:Autostart_Kodi_for_Linux#Add_a_new_systemd_script Systemd-Service] versuchen. Bitte beim kodi.service-Script auf den korrekten Pfad in <code>/opt/kodi/bin</code> achten. Nicht zu vergessen sind auch die für kodi erforderlichen Gruppen: |
sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip,input,netdev kodi | sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip,input,netdev kodi | ||
Version vom 1. Oktober 2017, 19:01 Uhr
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.
Installation
Auch auf einem Debian lässt sich die aktuelle Version von Kodi kompilieren und installieren:
Statt des bei Penzin beschriebenen Autostarts kann man es auch mit Systemd-Service versuchen. Bitte beim kodi.service-Script auf den korrekten Pfad in /opt/kodi/bin
achten. Nicht zu vergessen sind auch die für kodi erforderlichen Gruppen:
sudo usermod -a -G cdrom,audio,video,plugdev,users,dialout,dip,input,netdev kodi
Um das PVR-Plugin für TvHeadend zu installieren kann man sich des vorhandenen DEB-Packages bedienen:
#!/bin/bash set -e set -x sudo aptitude --download-only install kodi-pvr-hts tmp_dir=/tmp/kodi-pvr-hts kodi_home=/opt/kodi rm -Rf $tmp_dir # clean up temporary directory mkdir -p $tmp_dir cd $tmp_dir ar xv /var/cache/apt/archives/kodi-pvr-hts*.deb xz --decompress -v data.tar.xz tar --extract -vf data.tar sudo cp -avRi usr/share/kodi/addons/pvr.hts $kodi_home/share/kodi/addons/ sudo cp -avRi usr/lib/x86_64-linux-gnu/kodi/addons/pvr.hts $kodi_home/lib/kodi/ echo Finished!
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.
Tvheadend im DockerContainer
Auf des von linuxserver gepflegten Tvheadend-Images lässt sich folgendermaßen ein Container "tvheadend" erzeugen:
docker create --name=tvheadend --net=bridge -v /media/extData/dh/tvheadendConfig:/config -v /media/extData/dh/videos:/recordings -e PUID=111 -e PGID=44 -p 9981:9981 -p 9982:9982 --device=/dev/dvb linuxserver/tvheadend
Dabei sind
- /media/extData/dh/tvheadendConfig - das Konfigurationsverzeichnis auf dem Host für Tvheadend
- /media/extData/dh/videos - das Verzeichnis, in dem Tvheadend die Aufnahmen speichert
- 111 - die UID des Nutzers hts auf dem Host - anlegen des Benutzers und anzeigen der UID mit
adduser hts id hts
- 44 - die GID der Gruppe video auf dem Host - wird angezeigt durch
getent group video
Bitte darauf achten, auf dem Host die Firmware für den TV-Adapter in /lib/firmware zu legen.
Siehe
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.
Kontextmenüs
Es lassen sich Addons schreiben, die speziell zusätzliche Menüpunkte zur Verfügung stellen. Diese müssen in der addon.xml einen entsprechenden Extension-Point definieren.[4]
Wenn Addons nur bei den selbst geschaffenen Einträgen Contextmenüs hinzufügen wollen, geht das auch über xbmcgui.ListItem.addContextMenuItems(...).
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