eServiceUri - a proxy service for python-powered dynamic stream url resolving

  • Dir ist schon klar wo du hier bist oder? Das hier ist das supportforum für dreamboxen und nicht für boxen anderer Hersteller.
    Das was hier von reichi eingebaut wurde das wurde auch nur für das dreamos gemacht und nicht für die Software der anderen.
    Daher du bist hier völlig falsch mit deiner box sowie mit deiner Anfrage da solltest lieber dort fragen wo deine box und die soft die du dort benutzt supportet wird.

  • Hi.


    Ich habe mir rudimentär youtube in mein Musiccenter eingebaut. :grinning_face_with_smiling_eyes: Klappt auch manchmal... :pouting_face:

    Code
    url='yt://{}'.format(id)# :-> %3a
    logger.debug('Player]playYoutubeNow]url:{}'.format(url))
    ref=eServiceReference(8193, 1, url)
    self.session.open(MoviePlayer, ref)

    Wenn es nicht klappt kommt folgendes im Log. Kann ich das fixen? :wacko:


    Die meisten Probleme macht man sich selber!

  • Hat funktioniert.


    Das auflösen der url dauert ja ein wenig. Ist es auch möglich wenn man eine playlist mit Urls hat, die url vorher in einem Thread aufzulösen?
    Also mit youtube_dl würde ich das hin bekommen. Aber vielleicht wäre es ja auch mit dem eserviceuri möglich?

    Die meisten Probleme macht man sich selber!

    • Offizieller Beitrag

    Moin. Das ist nicht vorgesehen. Grunsätzlich wäre das natürlich toll.
    Das Problem ist, dass wir auch das wenn dann auf den resolver auslagern müssten, da wir nicht wissen können ob ein Service überhaupt "cachebar" ist, und wenn wie lange die URL gültig sein wird (das ist ja DER Grund für die Einführung von eServiceURI).


    Generell müssten wir aber dann so eine art "pretune" einführen um zu sagen "wenn der user grad auf diesem kanal in der Kanalliste steht oder es der nächste/vorherige ist dann fang schon mal an".


    Sowas möchte man aber eventuell etwas generischer haben oder?
    Achso und youtube-dl ist in der Tat bei youtube videos relativ gemächlich bei twitch geht das alles sehr viel direkter...

  • Hallo Reichi,


    ich nutze den Resolver aus meinem Plugin(Musikplayer) heraus. Da habe ich mp3 Files wo in den id3tag die YouTube ID eingebettet ist. Ich möchte während Song 1 spielt den nächsten Song schon auflösen. Wenn der Player beendet wird, dann würde ich die temporären urls entsorgen.


    Vielleicht kannst Du das ja einbauen. Wenn es länger dauert, zu kompliziert ist oder nicht gewollt, dann baue ich mir selber was....


    Gruß.

    Die meisten Probleme macht man sich selber!

    • Offizieller Beitrag

    Es müsste eigentlich möglich sein, dass du dir den eUriResolver zu Nutze machst ohne in direkt für's playback zu nutzen.
    eUriResolver.tryResolve benötigt eigentlich lediglich eine von iUriService abgeleitete Instanz...


    ein iUriService muss nur zwei Methoden folgendes implementieren:

    Code
    setResolvedUri(string resolvedUri, int serviceType, string suburi)
    failedToResolveUri()

    über setResolvedUri kannst du dir dann eine ServiceReference bauen und die dann "später" zum abspielen nehmen.
    Der Vorteil ist dass du so nicht selbst youtube-dl bedienen musst (zum qualität aussuchen etc).

  • Hallo Reichi,


    ich bin zu blöde das umzusetzen... :loudly_crying_face:
    Kannst Du mir noch ein wenig helfen? :face_with_rolling_eyes:


    Edit: bin jetzt ein Stück vorwärts gekommen.


    Was ist service in dem Aufruf resolve? :confused_face:



    Python
    class YoutubeUriResolver(eUriResolver):
          _schemas = ("youtube", "yt")
          instance = None
          def __init__(self):
    	 eUriResolver.__init__(self, StringList(self._schemas))
    	 Log.i(self._schemas)
    
    
          def resolve(self, service, uri):
              ...

    Die meisten Probleme macht man sich selber!

    Einmal editiert, zuletzt von Bobo71 ()