Okay, ein Workaround ist nicht mehr nötigt.
Das mit meiner ID hat jetzt meinen Ehrgeiz erweckt, sodass ich mir Python nochmal näher angesehen habe und ich denke ich bin auf eine elegante Lösung gestößen:
def playVideoStream(url, name='', art=None, streamInfo=None):
"""
Create media player and open given stream URL.
@type url: str
@param url: the URL of the media file
@type name: str
@param name: a nice human-readable name
@type art: dict
@param art: dictionary as expected by xbmcgui.ListItem.setArt()
@type streamInfo: dict
@param streamInfo: metaData for the media file
@type streamInfo: dict
@param: streamInfo: technical info about the stream (such as the duration or resolution)
"""
USER = ADDON.getSetting('account.username')
PWORD = ADDON.getSetting('account.password')
URL_CUT = url.replace('https://massengeschmack.tv/','')
URL_NEW = 'https://' + USER + ':' + PWORD + '@massengeschmack.tv/' + URL_CUT
listitem = xbmcgui.ListItem(name)
listitem.setInfo('video', streamInfo)
if art is not None:
listitem.setArt(art)
playlist = xbmc.PlayList(1)
playlist.add(URL_NEW, listitem)
0
xbmc.Player().play(playlist)
playlist.clear()
Jetzt wird nur noch der Link der eigentlichen Datei abgerufen, die man abspielen möchte.
Über die Replace Funktion konnte ich den url-String beschneiden, sodass nur der Teil hinter der Domain übrig blieb.
Damit konnte ich dann eine neue Variable erstellen mit einer URL, die auch die Benutzerdaten enthält.
Die E-Mailadresse muss weiterhin mit „–at–“ statt „@“ geschrieben werden.
Drüber installieren und Spaß haben: https://drive.google.com/file/d/16a2Dli3jLl0fK6dDSKJWeoozPpuSI8s2/view?usp=sharing
Hmm, seltsam. Ich kann keinen Fehler sehen…würde mich auch etwas wundern, denn zum einen ist das xstream.json eine angepasste Kopie von wortezummontag und zum anderen habe ich das natürlich getestet - wenige Minuten bevor ich das hier postete.
Ich verwende noch das alte 2.7.2-Plugin von oben, da die aktuellen Fixes bei mir nicht funktionieren.
Hi, ihr könnt gern einfach Pullrequests an das ursprüngliche Repository senden. Ich merge die gern, hab nur nicht mehr die Zeit, das aktiv zu maintainen. Wer das übernehmen will, kann auch gern direkt Zugriff bekommen.
P.S. Habe gerade noch einen gemergt, der da schon „etwas“ länger hing (sorry). Ich habe regelmäßig über 600 aktive GitHub-Benachrichtigungen. Ich versuche, das nach Repository zu sortieren und zügig zu antworten, aber manchmal verschwindet einfach was. Dann bitte einfach nochmal nachhaken.
Moinsen!
Vorhin mal auf einem anderen HTPC getestet (ist allerdings eine Kopie des anderen), aber xstream funktioniert auch dort. Das Banner fehlt, aber das Hintergrundbild ist da. Banner baue ich also noch nach.
Live-Sendungen haben wir uns bislang noch nie angeschaut. Die Aufzeichnungen dieser funktionieren mit dem „Rainer“-Build aber nicht - ich bekomme ein „502“ von MG zurückgeliefert. Hier das Log zu „Livekommentar #48“:
Da meine HTPCs vom LAN booten bin ich also flexibel und kann beliebig deren LibreELEC-Daten auf dem Server verschieben. Ich lege für die Testkiste mal ein frisches Verzeichnis an und bügel dort das Rainer-Build neu auf.
…gerade ein frisches, leeres Verzeichnis für die Testkiste angelegt, LE hochgefahren, nur das Rainer-Build als ZIP installiert, xstream läuft. Kein Fehler im Log, nichts. Banner ist auch fertig und ins json eingetragen, will aber nicht angezeigt werden rätsel
EDIT: Banner ist jetzt da. Scheinbar etwas mit dem Cache und/oder Thumbnails von LE. Ich passe das json an und lege den Kram neu ab.
Der für mich interessante Punkt ist, dass das MG-Plugin bei mir eine Art Wackelkontakt hat - mal funktioniert es - häufig nicht.
Egal welches Build.
Wenn ich raten müsste - im Kontext eurer Probleme - würde ich darauf tippen, dass das PlugIn eine Inkompatibilität mit anderen, installierten PlugIns haben könnte.
Der ursprüngliche Programmierer hatte ja mal angemerkt, dass er das Plugin nicht ganz nach den Regeln von den KODI-Entwicklern programmiert habe…
Aber wie gesagt: Nur ein Gedankengang…
…da bin ich ganz bei Dir. Das Plugin müsste wohl mal ordentlich überarbeitet werden. Jemand mit Python-Kenntnissen hier?
Wobei: Mit Rainers Build (2.7.2) auf einem aktuellen LibreELEC/Matrix habe ich keinerlei Probleme…läuft und läuft…daher auch mein Ansatz, das neue MG-Format ins Plugin zu basteln - funktionierte halt auf Anhieb. Demnächst kommen ja noch weitere neue Formate, da werde ich auch wieder loslegen. So ein json mit Bildern ist ja in wenigen Minuten gebaut.
@marti Sach ma’: Welches Skin benutzt Du in LE? Wir hamm vorhin Pantoffelkino geschaut und anschließend habe ich nochmal mein xstream getestet: Läuft weiterhin…aber dabei kam mir der Gedanke, ob Dein Problem nicht vielleicht am verwendeten Skin liegt!?
Gestern beim Testen hatte ich drei Skins im Einsatz, die keine Probleme machten: Estuary (Default), Aeon Tajo und Rapier.
Ich habe Aeon Nox Silvo am Start. Aber da bei Dir ein Aeon-Skin funktioniert…
Ich werde vielleicht mal zum Test auf Estuary wechseln und melde mich später…
Och des ist aber nett, dass du an mein Problem gedacht hast:-) Ich habe den Skin Estuary. Ich müsste mal komplett die SSD löschen, wo Libre Elec installiert ist.
Lade die Videos jetzt über das RSS Programm Lifera direkt vom NAS herunter.
Die Live-Aufzeichnungen und die Livestream schaue ich mir auf LE mit dem Chrome Browser an. Mit dem MG Add-on funktioniert das ja nicht.
Ein Schrittchen bin ich weiter, weshalb das Plugin bei dem einen funktioniert, bei dem anderen nicht (und nein, in gender nicht):
Das Problem liegt bei einer verwendeten Import-Funktion in resources/lib/_ init _.py (from html.parser import HTMLParser), bzw. je nach Kodi beim der verwendeten Python-Version.
Kodi als solches (Linux, wohl auch unter Windows) verwendet das installierte/mitgelieferte Python des OS und das dürfte Python 3.9.x oder 3.10.x sein. Bei LibreElec ist es aber noch Python 3.8.x und deshalb schnurrt das Plugin hier halt problemlos - aber auch nur noch solange LibreElec eben das „alte“ Python benutzt. Besagte Import-Funktion, bzw. dessen benutzte unescape-Funktion, existiert bei Python >=3.9.x schlicht nicht mehr.
Wir brauchen also Ersatz, bzw. jemanden der zumindest ein wenig Python beherrscht und das Import/unescape umbauen kann.