Nach Übergabe von listing mit playable Listitems das holen von Metainformationen unterdrücken

  • Ich versuche gerade wie unter Problem mit last.fm beschrieben ein Addon für last.fm mit der neuen Api v2 zu erstellen. Ich bin so weit das ich die codierten MP3-URLs für die eingestellte Radio-Station bekomme welche dann eigentlich abgespielt werden könnten.

    Das Problem was ich habe ist nun folgendes:
    Wenn ich diese URLs als playable Listitems an XBMC übergebe damit sie ausgewählt werden können, läuft XBMC los und versucht Meta-Informationen zu den Streams zu sammeln. Dazu scheinen die Stream-URLs "angepingt" zu werden was dazu führt das sie für die eigentliche Wiedergabe (klick auf Listeneintrag) nicht mehr gültig sind weil es sich dabei um One time URLs handelt (sind nur für einen Aufruf gültig).

    Meine Frage:
    Kann ich XBMC irgendwie klar machen das es das Sammeln der Metainformationen für die Links lassen soll?

  • hatte ich schon probiert aber da ist nichts passiert wenn man auf den listeneintrag geklickt hat. aber wenn ich jetzt so darüber nachdenke... ich glaube da hatte ich noch ein problem mit dem urlpräfix (plugin://...). Ich glaub das werde ich noch mal probieren.

    danke :)

  • XBMC versucht wahrscheinlich den Mime-Type zu ermitteln.
    Du hast zwei Möglichkeiten:
    1. Du exponierst die eigentliche Play-URL gar nicht im List View sondern trägst URLs ein die zurück auf dein Plugin zeigen. Wenn diese URLs dann aufgerufen werden kannst du mit setPlayableUrl() die eigentliche Play-URL übergeben.
    2. Du setzt explizit den Mime-Type via listitem.setProperty().

    Für beides müsstest du genügend Beispiele finden. Die erste Möglichkeit ist die schönere.

    Grüße,
    sphere

  • irgendwie bin ich zu blöd das zum laufen zu bekommen. ich bekomme als ergebnis immer nur eine leere liste angezeigt - keine wiedergabe des streams...

    der code dazu sieht jetzt bei mir folgendermaßen aus:

    Code
    listitem = xbmcgui.ListItem(label=titles[0], path=tracks[0])listitem.setInfo( type='Music', infoLabels={'Title': titles[0]})listitem.setProperty('mimetype', 'audio/mpeg')return xbmcplugin.setResolvedUrl(self._pluginId, succeeded=True, listitem=listitem)


    was mache ich falsch?

  • das war der entscheidende hinweis - ich hatte (vom playable abgesehen) beim umbau vergessen das element von folder=True auf folder = False zu setzen. jetzt kann ich wieder lastfm per xbmc hören *yes*

    vielen dank für eure hilfe! :thumbup: damit bin ich mit meinem ersten addon schon einen entscheidenden schritt weiter :D

  • ich habe doch noch mal ein problem:
    ich füge die songs in eine playlist ein, diese wird dann auch einwandfrei abgespielt.
    als letztes playlist-element habe ich mit plugin://.... einen rücksprung auf die gleich URL eingetragen (damit die nächsten lieder aus der api gezogen werden). das funktioniert aber nicht, ich bekomme immer die meldung das das nächste element nicht gefunden werden konnte.

    hier der code dazu:

    Code
    playlist = xbmc.PlayList(xbmc.PLAYLIST_MUSIC)        playlist.clear()     
            nextUrl = sys.argv[0]+"?url="+urllib.quote_plus(url)+"&mode=playRadio"        listitemnext = xbmcgui.ListItem(label='lastfm radio', path=nextUrl)        listitemnext.setInfo( type='music', infoLabels={'Title': 'last.fm Radio'})              listitemnext.setProperty('IsPlayable', 'true')        playlist.add(url=nextUrl, listitem=listitemnext)


    kann man den rücksprung auf das plugin so nicht machen? wie macht man es richtig?

    Edit: wieso zum henker übernimmt das tag für das einfügen von code eigentlich meine zeilenumbrücke nicht?!?

  • Interessant.... kann es sein das man nicht auf die genau gleiche URL (plugin://....) zurück springen kann?
    ich habe mal für die wiederholung einen parameter geändert - jetzt wird die playlist zumindest einmal neu generiert mit den nächsten liedern.

  • Hallo zusammen,

    ich habe eine erste Version fertig die zumindest schon mal die Möglichkeit bietet eine der letzten bereits gehörten Radio Stationen auszuwählen und diese anzuhören. An der Suche arbeite ich noch...

    ACHTUNG: dies ist mein erstes Plugin und es ist noch eine SEHR frühe Version! Beides zusammen macht es ziemlich wahrscheinlich das der ein oder andere Fehler auftritt! Be warned ;)

    Für alle die das schon mal testen wollen: https://dl.dropbox.com/u/10481224/plu…radio-0.0.1.zip

    Ihr braucht dafür:
    1. einen User mit aktivem Abo (http://www.lastfm.de/subscribe)
    2. einen Api Account (kostenlos: http://www.lastfm.de/api/account/create)

    Nach der Installation des Plugins müsst ihr diese Daten in der Plugin-Konfiguration eintragen oder (was ich euch raten würde da die api keys ziemlich lang sind) aus dem Zip unter /resources/settings.xml diese Daten jeweils bei default= einzuragen.

    Falls Fragen sind - immer her damit.

  • Ich bekomme meine Liste zu sehen:

    Und nach Auswahl des ersten Punktes ein "Script-Fehler Start.py"
    Es blinkt dann noch ein paar mal "öffne Stream" auf und dann ist irgendwann Ende.
    Und dann im LOG noch ein:

    Code
    WSError: The Webservices API key supplied does not have permission to stream / create new radio trials

Jetzt mitmachen!

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