Kodi18 & Playlisten (oder L0RE Kampf gegen Playlisten

  • Hallo,
    Ich hab immer noch Probleme mit Paylisten vorallem mit Kodi 18)

    Am Beispiel bei MTV

    Einmal das Problem das die Playliste im Hintegrund startet . Un Das Zweite Problem, er überspringt das erste Video. Wenn man das if i==0: einbaut, und damit die Playliste nur ein Videobeinhaltet, Spielt er das Erste Video.
    Ich hab schon vieles Probiert mit sleep, ohne sleep.

    xbmc.Player().play(playlist) Ganz zum Schluss, am Anfang,... Irgend was übersehe ich.
    Ich hab mal ne Neue Version vom MTV ins Repo gepushed. Vieleicht hat ja jemand ne Idee woran es liegt (Unter Menu Punkt Music)

  • Bezgl. Kodi v18 und erster Titel in Playlist wird übersrungen, es scheint ein Problem zu geben, wenn der Link, welcher zum abspielen dient nicht als Folder markiert wird.
    Wenn ich in der addLink Funktion ein isFolder=True anhänge, habe ich das Phänomen nicht.

    ok = xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=u, listitem=liz, isFolder=True)

    Bezgl Background-Playback habe ich nicht geschaut. Mal schauen ob ich die Tage dazu komme.

    Cheers
    Claudia

    Edit: Sieht so aus, als ob damit auch das Problem mit dem Background-Playback gelöst ist.

    Btw https://trac.kodi.tv/ticket/17782

  • Ja, es ist das Zusammenspiel von addDirectoryItem und dem Listitem, sprich,
    wenn Du in einem Listitem die Eigenschaft isPlayable auf true setzt und bei addDirectoryItem
    den default isFolder=False benutzt kommt es zu deinem Szenario dass das erste Item
    einer playlist übersrpungen wird.

    Das trac ticket habe ich mit den Infos aktualisiert.

    Cheers
    Claudia

  • Hallo @L0RE

    ich hatte eine Diskussion bezgl. der Benutzung der Player-Klasse innerhalb eines Plugins (nicht eines Scripts).
    Anscheinend ist es so, dass es nicht vorgesehen ist, dass diese Klasse von Plugins benutzt wird, anstelle
    soll nur die Playlist übergeben werden. Bei Benutzung der Klasse kann es zu unvorhergesehenen Problemen kommen.

    Für deinen Code würde das bedeuten, dass Du an zwei Stellen etwas ändern müsstest.



    _isFolder habe ich im Funktionsheader hinzugefügt.
    Dieser Parameter muss, wenn das Item playable ist, auf False gesetzt werden

    Desweiteren müsste in der playplaylist Funktion playlist.clear() und xbmc.Player().play(playlist) gelöscht bzw. kommentiert werden.

    playlist.clear ist anscheinend dafür verantwortlich dass der erste Titel übersprungen wird
    und xbmc.Player().play(playlist) sollte, wie bereits erwähnt, in einem Plugin nicht benutzt werden.


    Mit den Änderungen werden die jeweiligen MTV-Playlists bei mir abgespielt.

    Cheers
    Claudia

  • @ClaudiaF Vielen Dank, Letzten Tage hatte mich eine Erkältung dahingerafft. drum hatte ich nicht geantwortet. Ich hab noch ein Problem mit den Playlisten das ist bei Magine

    Danke nochmal mit MTV geht nun, habe aber noch nen Zweites Problem

    Magine bedeutet ein Livestream aus Sendungen. Alerdings darf darf man die URL zum abspielen erst 10 min vor ende der vorigen Senung abrufen. Bei
    Kodi17 mach ich das mit

    Wenn ich das mit Kodi18 Mache (Analog MTV) ohne clear usw.....
    Bleibt das Zahnrad für immer,was bei Kodi17 Nicht passiert ist. Ich hab da auch schon einiges probiert, aber nicht recht nen Ansatz gefunden. Hast du da vielleicht auch nen Ansatz wie man das machen kann

    Viele Grüße

  • Hallo @L0RE,

    also wenn ich das Problem richtig verstehe, musst Du bis 10 Minuten vor Ende des aktuellen Streams warten bis Du auf die neuen Streamdaten zurückgreifen bzw. abholen kannst, korrekt?
    Wenn dem so ist, heisst das ja auch das Du im Script bleiben musst was aber bei einem Plugin-Addon nicht vorgesehen ist.
    Mein Verständnis dazu ist, dass das Addon eigentlich ein Script-Addon mit eigenem Player sein müsste.
    Wenn ich falsch liegen sollte, hoffe ich das mich jemand berichtigt.

    Cheers
    Claudia

  • @L0RE - ich würde nicht sagen, dass das ein Bug war/ist, habe auch mehrere Addons gesehen welche das so benutzen aber zwei
    Kodi-Entwickler meinten dass dies so nicht vorgesehen war (siehe z.B. mein trac ticket)

    Bezgl. der plugin/script internas bin ich mir immer noch nicht 100% sicher, aber ich denke ja, dass sollte via script-addon realisierbar sein.
    Muss mir bei Gelegenheit doch mal den C++-Source anschauen.

    Wenn ich das bis jetzt so richtig verstanden habe, dann war/ist das Konzept das ein Plugin-Addon nur eine Teilmenge von einem Script-Addon ist,
    sprich alles was mit einem Plugin-Addon realisierbar ist sollte mit einem Script-Addon ebenfalls realisierbar sein und noch mehr.

    Interessiert mich nun selber - ich schau mir das mal an und geb Dir wieder Bescheid

    Cheers
    Claudia

  • @L0RE

    Was ich bisher herausgelesen bzw. erzählt bekommen habe ist, dass wenn es mit einem Script-Addon gelöst werden soll,
    muss dieses alle Controls selber erstellen - ist also wie Skinning zu betrachten, nur halt nicht ganz so umfangreich aber schon
    erheblich mehr Arbeit als mit einem Plugin-Addon.

    Cheers
    Claudia

  • :-/ schade das ist der bereich mit dem ich mich nie beschäftigt habe.... Da ich nciht gut mit Forndend war war ich immer froh das Kodi überlassen zu können.
    Mal schaun ob mir noch en Zünde Idee einfällt.

    Auch ne Perverse Lösung wäre nen service Addon schreiben,das die Playliste erweitert solange ein Video läuft....


    Muss nochmal Migine reverse Engineering, Vielleicht gibts ne bessere Methode die ich nutzen kann

  • Das mit dem Service Addon hatte ich auch überlegt, aber da muss dann das Problem mit der Playlist gelöst werden, oder?
    Das Service-Addon läuft doch in einem anderen Thread und wenn Du dann versucht auf die Playlist von dort aus zu ändern,
    wird das nicht funktionieren, da das Playlistobjekt nur in dem Thread in dem es kreiert wurde auch veränderbar sein sollte, denke ich jedenfalls.

    Nur aus Neugier, was benutzt Du für Reverse Engineering? Wireshark und Webbrowser-Debugconsole?

    Cheers
    Claudia

  • Ich hatte gehoft
    https://mirrors.xbmc.org/docs/python-do…t-getPlayListId
    Da helfen koennte das der Service Addon die Aktuelle Playliste auslesen kann,habs aber noch nicht getestet
    Bzw konnte man vielleicht das Playlist Objekt wegschreiben in ein File, und um Service Addon wieder einlesen

    Das Wichtigste ist Fiddler das das MITM bei https bietet und zum Teil DebugConsole.
    Bei Android zum teil jadx (die App Disassemblieren, und hoffen aus dem Code was rauslesen zu können). Einiges ist auch Intuition, drum kann es auch sein das ich es vielleicht anders mache als eigentlich im orginal (Bei einem Addon erzeuge ich die Streamurl aus dem Perview Bild. Ich bin nicht drauf gekommen wie die den Hash bilden, aber habe gefunden wo der selbe hash auch genutzt wird bei den Preview Bildern die in der Seite stehen :)

    Dafür scheitere ich an Javascript, und man merkt an meinen Addons das ich kein Programmierer bin (Beruflich), so das mein Code immer sehr einfach gestreikt ist. Wenn ich da den Code einiger Anschaue handelt es sich manchmal schon fast um Kunstwerke.

    Dafür brauch ich für Die Grundversion eines Addon nur ca 2-8 h (Bis auf Extremfälle Magine ist sowas,oder Bayerisches Fernsehen mit der Neuen Seite wird auch sowas, sobald sie die alte Api abschalten da grauts mir schon vor..... ansonsten hängt die Arbeit und Funktionsumfang der Addons ab von den Wünschen der User., ich versuche wenn möglich jeden Wunsch zu erfüllen, wenn möglich.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!