Skip to content

Dokumentation libmediathek3

prof-membrane edited this page May 21, 2017 · 1 revision

libmediathek3

Die libmediathek3 ist ein kleines Script, welches die Kodi Python-Schnittstelle abstrahiert. Da hat eine Reihe von Vorteilen gegenüber von dem direkten Ansprechen der xbmc* Module:

  • Einheitliche Schnittstelle
  • Code kann von anderen Add-ons angesprochen werden
  • Keine Abhängigkeit von xbmc* Modulen
  • Code kann extern getestet werden
  • Code kann als Scraper (wie z.B. MediathekView) verwendet werden
  • Änderungen der Webseiten können automatisch per Cronjob überwacht werden
  • Redundanzen bei dem managen der listitems werden vermieden (kürzere Entwicklungsdauer)

Früher hatte ich ein riesiges Template um ein Add-on zu schreiben. Eine Verbesserung musste immer mühsam auf andere Add-ons portiert werden. Jetzt kann ich in kürzester Zeit Add-ons schreiben und brauche keine großen Teile an Code zu kopieren.

Funktionen der libmediathek3

libmediathek3.addEntries(l)

Dies ist die Kernfunktion der libmediathek3. Sie erwartet eine Liste mit Dicts mit Keys/Values für Audio/Videodateien bzw. Verzeichnissen. Alle Keys ohne '_' am Anfang gehen ohne Weiteres mit Url-encoding in das "plugin://" Protokoll. Verschiedene Schlüsselwörter haben dabei spezielle Bedeutungen, um das Auftreten der einzelnen Einträge zu bestimmen.

Spezielle Schlüsselwörter

Key Eigenschaft
name Name des Videos
tvshowtitle Name der TV Show
plot Plot/Beschreibung
rating Bewertung des Eintrages (0 bis 10)
mpaa Altersfreigabe (String, z.B. "FSK 16")
duration Länge des Eintrages in Sekunden, String
aired Erscheinungsdatum ("DD-MM-YYYY")
airedISO8601 Erscheinungsdatum ISO8601
thumb URL zum Thumbnail
fanart URL zur Fanart
type legt den Inhalt des Eintrages fest (siehe Erklärung)
episode Episodennummer
season Stafelnummer

libMediathek.getSearchString()

Öffnet das Eingabefenster und liefert einen zu suchenden String. Liefert False wenn der Vorgang abgebrochen wurde.

libMediathek.endOfDirectory()

Beendet das Auflisten der Einträge (sollte am Ende aufgerufen werden).

libMediathek.play(l)

Diese Funktion erwartet verschiedene Metainformationen, die mindestens eine URL beinhaltet. Optional sind Infos wie Name, Plot, Icon usw.. Außerdem kann man verschiedene Untertitel übermitteln (SRT, TTML, VTT, WEBVTT), die in ein Kodi kompatibles Format konvertiert werden.

Beispiele

Schaut euch einfach mal das Phoenix Add-on an (https://github.com/prof-membrane/plugin.video.phoenixmediathek/blob/master/default.py). Dieses Add-on kommuniziert über die libMediathek mit Kodi.