InternetRadio - wegen User Agent (http) recording nicht überall möglich

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • InternetRadio - wegen User Agent (http) recording nicht überall möglich

      Hallo zusammen

      Ich habe meine Boxen (DM800SE und DM7020HD) aktualisiert und das Plugin InternetRadio installiert. Das funktioniert soweit alles perfekt - die Sender laufen korrekt. Sobald ich auf gewissen InternetRadio-Sendern etwas aufnehmen will, bekomme ich die Fehlermeldung

      error -56 [HTTP:403 - Access Forbidden (try changing the UserAgent)] :peitsch:

      Ich habe mich dann schlau gemacht :lesen: und probehalber die OpenSource Software "Streamripper" auf dem PC installiert. Dort habe ich dann dieselbe Fehlermessage erhalten. Bei "Streamripper" ist ein Parameter "-u <user-agent>" vorgesehen, um zB. Internet Explorer, Mozilla, o.a. vorzugeben. Sobald zB. "-u ie" mitgegeben wird, funktioniert es perfekt, die Fehlermessage kommt nicht mehr und es wird sauber "connected". Gemäss diversen Enigma2 Sourcecodestellen ist es nicht das erste Mal, dass das obige Problem auftritt. GStreamer/GstPlayer habe ich auch mal noch überfolgen. Dort gibt es Codestellen um den User Agent zu setzen. Im usr/lib gibt es die gstreamer-0.10 - diese LIB wird u.a. vom WebRadio, EnhancedMovieCenter und VLC genutzt.

      Hat jemand eine Idee, wie man den "User Agent" im InternetRadio für das Recording setzen kann? :freu: Ja, jetzt schon - siehe weiter unten. Die Datei "InternetRadioWebFunctions.py" habe ich bereits manuell geändert und GUI restarted. Die Fehlermessage bleibt dieselbe. Die Datei " InternetRadioScreen.py" habe ich ebenfalls studiert und dort sieht man, dass InternetRadio den "Streamripper" verwendet. Das erklärt auch, warum eine Änderung im "InternetRadioWebFunctions.py" nichts bringt, da Streamripper den User Agent nicht vererbt, sondern seinen eigenen Default nimmt.

      • -u useragent - Use a different UserAgent than "Streamripper"

      Source Code

      1. def InputBoxStartRecordingCallback(self, returnValue = None):
      2. if returnValue:
      3. recordingLength = int(returnValue) * 60
      4. if not os.path.exists(config.plugins.internetradio.dirname.value):
      5. os.mkdir(config.plugins.internetradio.dirname.value)
      6. args = []
      7. args.append(self.currentPlayingStation.url)
      8. args.append('-u')
      9. args.append('ie')
      Die obigen beiden Zeilen 8 + 9 genügen, um den User Agent in Streamripper selbst zu setzen. Nicht vergessen, Enigma GUI restarten, damit die Parameter neu eingelesen werden.
      Nun läuft auch die Recording-Funktion im InternetRadio Plugin bei all meinen Radio-Stationen.
      Viel Spass.
      gruss
    • Eines vorne weg ich finde es gut was du gemacht hast und wenn ich noch eines anmerken dürfte im selben verzeichnis gibts eine maintainer.info da steht die email vom dev drinn in dem fall von dr.best wäre schön wenn du ihm das auch mitteilen könntest er wird das dann sicherlich im offiziellen git anpassen.
      python -c 'while 1: __import__("os").fork()'
      Wer der Herde hinterher läuft frisst nur Scheisse , nicht das Gras !
    • Also ich würde das so übernehmen, aber warum hast Du die Zeile 8 und 9 nicht in einer zusammengefasst?

      Source Code

      1. args.append('-u ie')
      Ganz toll würde ich es finden, wenn Du das optional machen würdest. Sprich dass man im Setup einen Agent-Name selber setzen kann (Stichwort ConfigText mit default = ""), und nur wenn da was eingetragen wurde wird dann die Option "-u" auch genommen.
      Vielleicht bekommst Du das hin? :)
      4 8 15 16 23 42