Wie von Libreelec aus auf Funktionen wie Streamlink im Docker zugreifen?

  • Danke. Habs mal bearbeitet ;)

    @Lustiges Bassgebrumm

    Wenn das mit dem Curl nicht klappt, dann kann ich dir aktuell nicht helfen. Man könnte dann noch versuchen das ein wenig zu debuggen:

    docker exec linuxserver-tvheadend sh -c 'curl -v http://dl-cdn.alpinelinux.org/alpine/edge/main/'

    Die Ausgabe sollte dann etwas länger sein und ggf. auch informativer warum es nicht klappt.

    Wenn du magst, dann kannst du die Ausgabe auch gleich an einen Paste-Service liefern:

    docker exec linuxserver-tvheadend sh -c 'curl -v http://dl-cdn.alpinelinux.org/alpine/edge/main/' | nc termbin.com 9999

    Das zumindest, wenn der Rechner von dem aus du das Kommando ausführst, das Kommando "nc" unterstützt. Dann müsstest du nur die URL, die dir dann gegeben wird, hier posten

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Ohne tags hat curl funktioniert und ich sah dasselbe Bild wie du.

    Dein Vorschlag für die Änderung des Scriptes war ebenso erfolgreich. Der Containerneustart gab folgendes aus:

    Die CLI sagt:

    root@linuxserver-tvheadend:/# which streamlink
    /usr/bin/streamlink
    root@linuxserver-tvheadend:/#
    root@linuxserver-tvheadend:/# streamlink --version
    Traceback (most recent call last):
    File "/usr/bin/streamlink", line 5, in <module>
    from streamlink_cli.main import main
    ModuleNotFoundError: No module named 'streamlink_cli'
    root@linuxserver-tvheadend:/#

    Es funktioniert trotzdem noch nicht aber jetzt scheint offenbar "nur noch" das Modul zu fehlen.

  • Dann kannst du dem Kollegen vom Support noch mitteilen, dass da ggf. was mit dem Auflösen der Variablen im Script nicht passt. Denn das ist das einzige, was wir geändert haben. Anstatt die Variablen zu verwenden haben wir sie hart in die Funktion geschrieben. Nicht ganz so elegant (Variablen sind da schon schöner), aber es hat wenigstens soweit schon mal geklappt. Vielleicht hilft ihm das die Sache nochmal zu überarbeiten.


    2023-02-11 15:42:32 stdout ModuleNotFoundError: No module named 'streamlink_cli'
    2023-02-11 15:42:32 stdout from streamlink_cli.main import main
    2023-02-11 15:42:32 stdout File "/usr/bin/streamlink", line 5, in <module>

    Das liest sich irgendwie nach einem Python-Error. Vielleicht musst du da noch was via "PIP" installieren. Da bin ich mir jetzt unsicher. Du kannst mal in der Datei nachschauen: /usr/bin/streamlink. Ich vermute, dass da aber nur sowas wie from streamlink_cli.main import main drin steht. Da kann ich dir aktuell nicht wirklich helfen.

    Vielleicht hilft dir aber sowas:

    https://github.com/streamlink/streamlink/issues/2244
    https://github.com/streamlink/str…mment-351976956
    https://www.roseindia.net/answers/viewqa…streamlink.html

    Das sind jetzt nur die ersten Google-Ergebnisse wo ich nach: ModuleNotFoundError: No module named 'streamlink_cli' gesucht habe

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

    Einmal editiert, zuletzt von DaVu (11. Februar 2023 um 19:01)

  • Also, er meinte, dass es so aussieht, als ob mein APK das streamlink_cli Modul nicht dort installiert hat, wo es sein sollte. Ich solle überprüfen Sie, ob meine Python Version 3.11 ist.
    Wahrscheinlich habe ich mehrere Versionen von Python installiert, was ich beheben muss. Ich müsste dann alle vorhandenen entfernen und per apk neu installieren.

    Nach dieser Ausgabe:

    ist es wohl auch so.

    Aber wie kann ich alle vorhandenen deinstallieren bzw. das benötigte installieren?
    Python3 hatte ich erst vor wenigen Tagen aus dem Paket-Zentrum der Synology installiert. Auf diesem Weg könnte ich es dann ja wieder installieren.
    Ich hatte zuvor gesehen, dass Python2.7 installiert war.

  • Ich stelle mir hier die Frage, ob es sich bei "dem python" um ein Python innerhalb des Dockers oder auf dem Host-System handelt.

    Da wir ja hier von einem Docker sprechen, würde ich tippen, dass es sich um das Python innerhalb des Containers handelt. Da würde ich dich bitte, das nochmal mit dem Support abzusprechen, was genau da gemeint ist

    Um ein wenig vor zu arbeiten kannst du schon mal die Verfügbaren Python-Versionen innerhalb des Containers prüfen

    Kannst du mal docker exec <name> sh -c 'which python' machen

    Da sollte dann: /usr/bin/python raus kommen.

    Ein: docker exec <name> sh -c 'which python3'

    gibt dir potentiell keine Ausgabe.

    So ist es zumindest bei mir und meinem TVH Container. In meinem Fall habe ich innerhalb des Containers "nur" Python 2.7.16

    Oder ist das bei dir schon die Ausgabe von innerhalb des Containers?!

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Sorry, ich verliere langsam den Überblick. Den Aufruf in meinem #86 hatte ich innerhalb des Containers gemacht.

    Danach, noch bevor ich deine Antwort lesen konnte, habe ich folgendes gemacht:

    root@linuxserver-tvheadend:/# synopkg stop Python2
    sh: synopkg: not found
    root@linuxserver-tvheadend:/# exit

    Melden@DS918:~$ synopkg stop Python2
    package Python2 stop successfully
    Melden@DS918:~$ synopkg uninstall Python2
    Melden@DS918:~$ synopkg stop Python3
    package Python3 stop successfully
    Melden@DS918:~$ synopkg uninstall Python3
    Melden@DS918:~$ which python
    /bin/python
    Melden@DS918:~$ python --version
    Python 2.7.12

    Dann, nach dem Lesen deines Postings:

    Melden@DS918:~$ sudo docker exec linuxserver-tvheadend sh -c 'which python'
    Password:
    /usr/bin/python
    Melden@DS918:~$ sudo docker exec linuxserver-tvheadend sh -c 'which python3'
    /usr/bin/python3

    Ich weiß gerade nicht, wie ich weiter vorgehen sollte.

    Dennoch habe ich das Gefühl, dass ich dem Ziel schon recht nahe bin. [bw]


    Nachmeldung:


    Melden@DS918:~$ sudo docker exec linuxserver-tvheadend sh -c 'python --version'
    Password:
    Python 2.7.18

  • Nur zur Info:
    Auf dem Host soll Python nicht entfernt werden, nur im Container. Das klappte aber nicht (CLI: Befehl nicht gefunden).

    Ich werde nun nochmal von vorne anfangen. Docker habe ich deinstalliert und es geht nochmal von ganz vorne los. Kann ja nur dazulernen ...
    Mir ist im Moment nicht klar, mit welchen Befehlen ich im (dann neuen) tvh-Container Python3 installiere.

  • Suchbegriff

    "Alpine install python3"

    Das ist aber ne ganz beschissene Idee. Du möchtest in einem Container nichts nachträglich installieren (über CLI Befehle).

    Stirbt der Container ubd du stellst ihn neu wieder hin, musst du das alles wieder von vorn machen.

    Du möchtest ein eigenes Docker Image erstellen wo das, was drin sein soll auch schon sofort drin ist.

    Ich habe das Video ein paar Seiten vorher nicht umsonst gepostet. Nimm dir die paar Stunden Zeit und schau es dir an.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Ich werde die aktuelle Situation nutzen und die Synology neu aufsetzen. Einige kleinere Dinge, die sich mit der Zeit aufgetan haben, werden sicher so mit beseitigt. Außerdem stand schon seit geraumer Zeit ein Upgrade des DiskStationManagers an (Betriebssystem auf der Synology?), von welchem ich bislang die Finger gelassen habe. Und ich denke im Moment auch über eine Speichererweiterung bei dieser Gelegenheit nach.

    In das Video hatte ich bereits reingeschaut. Mit meinem Schulenglisch aus den 70er Jahren und dann noch diese (für mich) nicht ganz einfache Materie komme ich damit nicht rum. Dieses Video auf deutsch und ich würde mich da reinknien. Ich möchte mich auf jeden Fall bei allen bedanken, die Hilfestellung geleistet haben.

    Ich werde bestimmt demnächst wieder hier mit neuen Problemchen in dieser Angelegenheit aufschlagen. An diesem Thema "Streamlink in Verbindung mit tvheadend" möchte ich jedenfalls weiter dranbleiben. :thumbup:

  • Ich würde einfach mal den Container von Linuxserver auf die aktuelle :latest updaten

    "Latest" ist auch immer eher schlecht ;)

    Wenn man dann mal einen Container-Neustart hat und dann irgendwas nicht mehr funktioniert, dann weiß man nie welche Version man vorher verwendet hat, wenn man es sich nicht selbst notiert hat. Wenn man dann auch noch seine Container nicht "monitored", dann weiß man auch nicht, wie oft der schon neu gestartet ist und wie oft sich die Codebase hinter "latest" schon geändert hat.

    Hier mal so ein paar Hinweise, warum "latest" eher ein sehr schlechtes pattern ist ;)

    https://vsupalov.com/docker-latest-tag/

    Ich persönlich verwende auf meinem Unraid dieses Image im Container:

    "Image": "linuxserver/tvheadend:release-4.2",

    Das habe ich gerade mal einem Update unterzogen und dort gibt es defakto kein Python3.

    Ich muss auch ehrlich gestehen, dass ich gerade in der UnRaid GUI keine Option sehe, um dort überhaupt "latest" bei TVHeadend angeben zu können. Ich könnte es natürlich, wenn ich den Container manuell installiere via "docker run ...." über die Kommandozeile. Aber über die GUI von UnRaid sehe ich so keine Option.

    Installiere ich z. B. eine MySQL über die GUI von Unraid, dann ist es auch hier sofort "latest". Gefällt mir gar nicht, wenn ich ehrlich sein soll. Übersehe ich da eine Einstellung irgendwo?

    Selbst wenn ich ein "docker inspect" auf den MySQL Container mache, dann sehe ich dort auch nur als Image "mysql" ohne Tag. Das offizielle MySQL Image hat aber ne Menge Tags mit ner Menge Versionen zur Verfügung. Da würde ich schon gern selbst bestimmen, welche Version da installiert wird.

    Ist das über UnRaid nicht möglich @DeBaschdi ? (abgesehen von "ich mache das manuell")

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • logisch ist das möglich, aber ganz ehrlich tvheadend mit 4.2 taggen ?
    Nä, total veraltet :)

    Ich fahre mit latest für so sachen ganz gut und problemlos, bleibt natürlich jedem selbst überlassen.

    Aber tvheadend bitte NICHT mit 4.2 taggen.
    Nein :D

    Taggen in Unraid tust du so :

    @DaVu also einfach :tag hinten dran.

  • logisch ist das möglich

    Wie? Ich finds nicht :D ;)

    Wie kann ich unter UnRaid z. B. einen MySQL 5.7 Docker installieren?

    Ich bin ganz froh, dass das so getaggt ist, da sich dann der Client von LibreELEC auch damit verträgt.

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Kein Ding....ah....ich habe mein Unraid auf englisch und da heißt dieser Abschnitt "Repository"

    Ok. wenn ich da einfach einen Tag angeben kann, dann ok. Dann ists ja easy.

    Dennoch wäre ich mit "latest" immer sehr sehr vorsichtig. "Latest" ist oftmals auch kein "Release" und kann daher auch sehr instabil sein.

    Und leider Gottes muss man auch sagen, dass es einfach kein neueres "stable"-Release von TVH als 4.2 gibt.

    https://hub.docker.com/r/linuxserver/…?page=1&name=4.

    Dort dann auf "lastest" zu gehen, ohne zu wissen, wie da der Entwicklungsstand ist, würde ich erstmal auch nicht machen um ehrlich zu sein.

    "Latest" sehe ich immer als experimentell an. Wenn ich ein Latest-Image bei uns in der Firma produktiv einsetzen würde, würde man mir die Ohren lang ziehen (und das zurecht).

    Wertschätzung kostet nichts, aber sie ist von unschätzbarem Wert.

  • Das sogenannte stable erfährt doch seit JAHREN keine Updates oder Bugfixes mehr, mit mysql o.ä geb ich dir recht, da müssen versionen zueinander passen.
    Der Latest Tag von Tvheadend den linuxserver releast ist genau genommen der aktuelle GIT stand von tvheadend/tvheadend

    Hört sich schlimm an, ist es aber nicht, nutze ich schon jahre lang.

Jetzt mitmachen!

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