Streamlinkproxy Python3 Only discussion & support

There are 432 replies in this Thread which was already clicked 71,077 times. The last Post () by jeepcook.

  • Hello everyone,

    I’m using the 127.0.0.1:8088 proxy on OpenATV 7.6 (Zgemma H9 Twin) to play YouTube videos directly in the channel list.

    Code
    http://127.0.0.1:8088/https://www.youtube.com/watch?v=P-4pbFcERnk

    This video has 4 different audio tracks (different languages/dubs).

    But when I press the AUDIO button (or Yellow button) on the remote during playback, only the default audio (English) appears in the list. The other 3 audio tracks are not shown at all.

    I tried adding a parameter like this these:


    Code
    http://127.0.0.1:8088/https://www.youtube.com/watch?v=P-4pbFcERnk?--hls-audio-select=4
    http://127.0.0.1:8088/https://www.youtube.com/watch?v=P-4pbFcERnk?--player-passthrough=hls&--hls-audio-select=tr
    http://127.0.0.1:8088/https://www.youtube.com/watch?v=P-4pbFcERnk?--hls-audio-select=*
    http://127.0.0.1:8088/https://www.youtube.com/watch?v=P-4pbFcERnk?--locale=tr_TR
    http://127.0.0.1:8088/https://www.youtube.com/watch?v=P-4pbFcERnk?locale=tr
    http://127.0.0.1:8088/https://www.youtube.com/watch?v=P-4pbFcERnk?locale=tr_TR

    But it doesn't seem to work — still plays the default audio.

    Is there any way to:

    • Force select a specific audio track (e.g. the 3rd or 4th one) via URL parameters in the proxy link?
    • Make the AUDIO menu show all available tracks from the YouTube video?
    • Or configure something in ServiceApp / exteplayer3 / streamlinkwrapper to enable multi-audio selection?

    Any help or working example would be greatly appreciated. Thanks in advance!

    Best regards,

    Edited 4 times, last by linux515 ().

  • But there is a nuance... you set a link to VOD... there, the language track selection may simply not “work”... alas. As an example, the log where will show an attempt is being made to select the language track for live channel.

    Code
    #SERVICE 5002:0:16:e5ae:f61f:dbea:dddd0000:0:0:0:http%3a//localhost%3a8088/https%3a//www.youtube.com/watch?v=-9FO57Sk_oY&locale=uk_UA
    #DESCRIPTION Прямий (youtube)

    Снимок экрана 2026-01-30 в 21.37.58.png

    if you like it you can make donations

  • Hello,

    After the OpenATV 7.6 update, the video resolution in YouTube VODs doesn't go higher than 640x360p. Is this happening to you as well? There was no such problem before the update. The OpenATV update also included ServiceApp. Could it be that Exteplayer3 was updated instead? Thank you in advance for your help.

  • Hello,

    After the OpenATV 7.6 update, the video resolution in YouTube VODs doesn't go higher than 640x360p. Is this happening to you as well? There was no such problem before the update. The OpenATV update also included ServiceApp. Could it be that Exteplayer3 was updated instead? Thank you in advance for your help.

    It doesn't depend on the image.... It all depends on what Streamlink “pulls” from the link you “slip” to it. Please note the log post above yours. It clearly shows the “video resolutions” that are available. I also previously gave the example of the VOD musical Cats, where video resolutions up to 1080p are available.

    if you like it you can make donations

  • If you are using OpenPli Scarthgap, please be careful. The “streamlinksrv” utility has been added to this image by default. It is 97% my code from streamlinkproxy, and the “server” part runs on the same 8088 port. This causes a conflict when using streamnlinkproxy and streamlinksrv simultaneously. If you want both solutions to work at the same time, run either utility on a different port, such as 8089.

    I also analyzed most of the images on Python3, and all the necessary Python dependencies for the streamlink library to work have already been added to the feed. In future versions, I will remove them from the installation package and add these dependencies as required for installation from the image feed to the installation “control” file.


    p,s, Moreover, if you are already modifying the code, why add that nonsense ("crutches") for YouTube? The way it is added, it will not work and is completely useless. Just look at the current code of the YouTube plugin in the streamlink library to understand this....Why ‘best’ as the default? ... The code already returns a list of found streams sorted in ascending order, and the last one is always “best”; it is selected if there is no specified “default-stream” parameter. I also don't quite understand why you would change the semantics of the code... and implement the same code logic with 10-15 lines when it's already implemented with 5 lines... But that's just a matter of taste.


    ENJOY!

    if you like it you can make donations

  • Subject: OpenATV 7.4 - YouTube Live Streams (Webcams) not working - Missing dependencies?


    Hi everyone,


    Since updating to OpenATV 7.4 (Scarthgap), I'm no longer able to play YouTube Live streams (webcams) within my IPTV bouquets. They used to work perfectly on previous versions.


    I suspect some dependencies might be missing or there is a conflict with the new pre-installed packages. I would appreciate some guidance on the following:


    1. Which specific packages should I install via opkg to ensure full Streamlink support on this image? (e.g., python3-streamlink, streamlinksrv, or other core components?)

    2. Are there any specific Python dependencies required for the latest YouTube plugin that I should manually check in the feeds?

    3. I noticed "streamlinksrv" is now included by default. Could there be a port conflict (e.g., port 8088), or do I need to install a different proxy version?


    My goal is to restore YouTube link playback within my bouquets. Any input on what to install or check via terminal would be greatly appreciated. Thanks!

  • 4097_0_1_0_0_0_0_0_0_0_20260222145712.jpg

    Thank you very much for your suggestion. I've successfully updated the "youtube.py" plugin file in the streamlink directory and verified that permissions are set to 644.


    However, the issue persists. When I try to open a YouTube stream, I get the screen shown in the attached image: a spinning "pie chart" icon with an intermittent sound, but the video never actually starts.


    It seems like the player is stuck in a buffering loop or unable to handshake with the stream provided by the proxy. Any further ideas on what might be causing this or if there are other dependencies to check? Thanks again for your help!


    I also performed a manual test using 'wget' from the terminal to check the proxy output directly:


    wget -O /dev/null h***://127.0.0.1:8088/https://www.youtube.com/watch?v=cmkAbDUEoyA


    The result shows:

    - Connection: Successful (HTTP 200 OK)

    - Stream type: recognized as video/mp2t

    - Data flow: It actually downloads data (I reached about 4MB before stopping it)

    - Download speed: It stays around 210-220 KB/s


    This confirms that the updated youtube.py plugin is now correctly extracting the stream. However, the Enigma2 player still fails to display the video, showing only the spinning buffer icon. It seems like the data is being served by the proxy, but the player is unable to decode it or the bitrate is too unstable for a real-time playback.

    Edited once, last by gattino ().

  • Try with #SERVICE 5002 in userbouquet for your youtube streams (serviceapp/exteplayer3)



    #SERVICE 5002:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=cmkAbDUEoyA:USA - Hollywood Beach Broadwalk, Florida

    #DESCRIPTION USA - Hollywood Beach Broadwalk, Florida

    #SERVICE 4097:0:1:0:0:0:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//www.youtube.com/watch?v=cmkAbDUEoyA:USA - Hollywood Beach Broadwalk, Florida

    #DESCRIPTION USA - Hollywood Beach Broadwalk, Florida

    Edited 7 times, last by passata ().

  • h***://127.0.0.1:8088/https://www.youtube.com/watch?v=cmkAbDUEoyA

    OpenPli Scarthgap (but this is not fundamental) ... This will work on any image based on Python >=3.10

    Снимок экрана 2026-02-22 в 18.41.05.png

    Снимок экрана 2026-02-22 в 18.41.42.pngСнимок экрана 2026-02-22 в 18.42.04.png


    Your link works perfectly. You provide a lot of text, and ZERO logs showing how it does not work. No logs, no problems.

    if you like it you can make donations

  • 5002_0_1_0_0_0_0_0_0_0_20260222181140.jpg

    Technical Report: StreamlinkProxy 8.2.0 Troubleshooting on OpenATV 7.4

    Environment:

    • Device: Octagon SF8008
    • Image: OpenATV 7.4 (Python 3.12.x)
    • Plugin: enigma2-plugin-extensions-streamlinkproxy (Updated from old versions to 8.2.0)

    1. The "Ghost Process" & Conflict Issue We found that simply installing the new .ipk over old versions (like the legacy streamlinksrv) caused major conflicts. Old Python processes were hanging on port 8088, and residual files in /usr/sbin and /etc/init.d prevented the new proxy from starting correctly.

    • Solution: A "Tabula Rasa" (Clean Slate) was required. We manually killed all Python/Streamlink processes and deleted all legacy files/folders before a fresh install of the 8.2.0 .ipk.

    2. The GStreamer (Service 4097) "Kill" Bug This is the most critical finding for the developer.

    • Symptom: When using Service 4097 (GStreamer), the stream fails to open, and the streamlinkproxy process crashes or freezes entirely.
    • Debug Observation: GStreamer seems to send an unhandled interrupt or holds a pipe open incorrectly. This "freezes" the proxy, and subsequently, no other streams (even via other players) will work until the proxy is manually restarted and the .pid file is cleared.
    • Workaround: Switching the Service ID to 5002 (ExtePlayer3/ServiceApp) works perfectly. The proxy remains stable, and streams load quickly.

    Summary for Developer: On OpenATV 7.4 / Python 3.12, the 8.2.0 proxy is stable, but Service 4097 acts as a "killer" for the streamlinkproxy daemon. Improving the daemon's resilience to GStreamer's abrupt connection terminations or "stuck" pipes would prevent the service from needing a manual restart.

    Edited once, last by gattino ().

  • 1. The "Ghost Process" & Conflict Issue We found that simply installing the new .ipk over old versions (like the legacy streamlinksrv) caused major conflicts. Old Python processes were hanging on port 8088, and residual files in /usr/sbin and /etc/init.d prevented the new proxy from starting correctly.


    Have you read it? If so, then... draw your own conclusions.


    Let me repeat once again

    NO LOG - NO PROBLEM

    if you like it you can make donations

  • Workaround: Switching the Service ID to 5002 (ExtePlayer3/ServiceApp) works perfectly. The proxy remains stable, and streams load quickly.

    Streamlink :

    - YouTube streams - Service ID 5002 work with streamlinkproxy daemon /usr/sbin/streamlinkproxy (chmod 755)

    - YouTube streams - Service ID 5002 work with openpli streamlinksrv copy of streamlinkproxy daemon /usr/sbin/streamlinksrv (chmod 755)


    - YouTube streams - Service ID 4097/5001/5002 work with oe-mirrors streamlinksrv daemon /usr/sbin/streamlinksrv (chmod 755)


    - Service ID 4097/5001/5002 work with modified streamlinksrv using python3-yt-dlp /usr/sbin/streamlinksrv (chmod 755)

    for YT Live, CHANNELNAME, CHANNELID, VOD, Shorts, ... YouTube streams


    Streamlink is more than just YouTube

    Edited 2 times, last by passata ().

Your resource for Enigma2 IPTV plugins

Discover the best Enigma2 IPTV plugins. Access downloads and dedicated support for integrating live TV streams and video-on-demand services. Find downloads, setup guides, and community support for the latest streaming players and playlist managers.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!