Channels using *Wrapper plugins do not work when put in the channels' alternatives list
Closed this issue · 9 comments
Hi,
Describe the bug / Actual behaviour:
I noticed that IPTV channel list entries that use any *Wrapper plugin (for example those with URLs starting with YT_DLP://) do not work when put in the alternatives list of a channel.
Expected behaviour:
The channels using the *Wrapper plugins should work also when put in the alternatives list of a channel.
Has this issue started to happen just recently?
The problem persists on an all tested (up to date as for today) versions of OpenATV: 7.2, 7.3 and 7.4.
To reproduce:
As an example I used XITE channel stream as it should not be geoblocked.
- Optional, only if you want to start on a fresh OpenATV instance: Install all the required packages:
opkg update && opkg install python3-yt-dlp streamlink enigma2-plugin-systemplugins-serviceapp enigma2-plugin-extensions-ytdlpwrapper enigma2-plugin-extensions-streamlinkwrapper streamlinksrv
- Add channel list entries using "bare IPTV", Streamlinksrv, Streamlinkwrapper, YTDLPWrapper plugins directly in the channel list and later the same channel list entries but put in the alternatives list
init 4 # Stop Enigma2 GUI
echo '#NAME XITE ALT IPTV
#SERVICE 4097:0:1:148D:DDD5:EC:0:0:0:0:https%3a//xite-samsung-de.amagi.tv/playlist.m3u8:XITE ALT IPTV
#DESCRIPTION XITE English ALT IPTV' > /etc/enigma2/alternatives.xite_iptv.tv
echo '#NAME XITE ALT Streamlinksrv
#SERVICE 4097:0:1:148D:DDD5:EC:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//xite-samsung-de.amagi.tv/playlist.m3u8:XITE ALT Streamlinksrv
#DESCRIPTION XITE English ALT Streamlinksrv' > /etc/enigma2/alternatives.xite_streamlinksrv.tv
echo '#NAME XITE ALT Streamlinkwrapper
#SERVICE 4097:0:1:148D:DDD5:EC:0:0:0:0:streamlink%3a//https%3a//xite-samsung-de.amagi.tv/playlist.m3u8:XITE ALT Streamlinkwrapper
#DESCRIPTION XITE English Streamlinkwrapper' > /etc/enigma2/alternatives.xite_streamlinkwrapper.tv
echo '#NAME XITE ALT YTDLPWrapper
#SERVICE 4097:0:1:148D:DDD5:EC:0:0:0:0:YT-DLP%3a//https%3a//xite-samsung-de.amagi.tv/playlist.m3u8:XITE ALT YTDLPWrapper
#DESCRIPTION XITE English YTDLPWrapper' > /etc/enigma2/alternatives.xite_ytdlpwrapper.tv
echo '#NAME Favourites (TV)
#SERVICE 4097:0:1:148D:DDD5:EC:0:0:0:0:https%3a//xite-samsung-de.amagi.tv/playlist.m3u8:XITE IPTV
#DESCRIPTION XITE IPTV
#SERVICE 4097:0:1:148D:DDD5:EC:0:0:0:0:http%3a//127.0.0.1%3a8088/https%3a//xite-samsung-de.amagi.tv/playlist.m3u8:XITE streamlinksrv
#DESCRIPTION XITE streamlinksrv
#SERVICE 4097:0:1:148D:DDD5:EC:0:0:0:0:streamlink%3a//https%3a//xite-samsung-de.amagi.tv/playlist.m3u8:XITE StreamlinkWrapper
#DESCRIPTION XITE StreamlinkWrapper
#SERVICE 4097:0:1:148D:DDD5:EC:0:0:0:0:YT-DLP%3a//https%3a//xite-samsung-de.amagi.tv/playlist.m3u8:XITE YTDLPWrapper
#DESCRIPTION XITE YTDLPWrapper
#SERVICE 1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.xite_iptv.tv" ORDER BY bouquet
#SERVICE 1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.xite_streamlinksrv.tv" ORDER BY bouquet
#SERVICE 1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.xite_streamlinkwrapper.tv" ORDER BY bouquet
#SERVICE 1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.xite_ytdlpwrapper.tv" ORDER BY bouquet
' > /etc/enigma2/userbouquet.favourites.tv
init 3 # Start Enigma2 GUI
- Go to the "Favourites (TV) bouquet"
- Now check which of the channels work. The result should be as described below:
a) XITE IPTV - works
b) XITE Streamlinksrv - works
c) XITE Streamlinkwrapper - works
d) XITE YTDLPWrapper - works
e) XITE ALT IPTV - works
f) XITE ALT Streamlinksrv - works
g) XITE ALT Streamlinkwrapper - not works
h) XITE ALT YTDLPWrapper - not works
Conclusion: All the IPTV channels using the "*Wrapper" plugins that are put in the alternatives list do not work -that's the issue I describe here.
Screenshots
Only a black screen is visible on non-working channels so there's not much to show :)
Image/Box Model (please complete the following information):
- Version: OpenATV 7.2, 7.3, 7.4
- BoxModel: Octagon SF8008
Additional context
In case of further questions (logs, etc.) I can provide them if needed.
Please test this :
ChannelSelection.py.zip
You need ATV 7.3 or 7.4 devel build.
I've installed the file as shown below
root@sf8008:~# cd /hdd
root@sf8008:/hdd# wget "https://github.com/openatv/enigma2/files/13982151/ChannelSelection.py.zip"
--2024-01-19 06:20:08-- https://github.com/openatv/enigma2/files/13982151/ChannelSelection.py.zip
Resolving github.com... 140.82.121.3
Connecting to github.com|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://objects.githubusercontent.com/github-production-repository-file-5c1aeb/4813239/13982151?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240119%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240119T052009Z&X-Amz-Expires=300&X-Amz-Signature=d3b65af9b04e1c32a9830998d08101560a9fca92479e0dc655195ba6fb62c1e2&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=4813239&response-content-disposition=attachment%3Bfilename%3DChannelSelection.py.zip&response-content-type=application%2Fzip [following]
--2024-01-19 06:20:08-- https://objects.githubusercontent.com/github-production-repository-file-5c1aeb/4813239/13982151?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20240119%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20240119T052009Z&X-Amz-Expires=300&X-Amz-Signature=d3b65af9b04e1c32a9830998d08101560a9fca92479e0dc655195ba6fb62c1e2&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=4813239&response-content-disposition=attachment%3Bfilename%3DChannelSelection.py.zip&response-content-type=application%2Fzip
Resolving objects.githubusercontent.com... 185.199.111.133, 185.199.108.133, 185.199.109.133, ...
Connecting to objects.githubusercontent.com|185.199.111.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26475 (26K) [application/zip]
Saving to: ‘ChannelSelection.py.zip’
ChannelSelection.py.zip 100%[====================================================================================>] 25.85K --.-KB/s in 0.05s
2024-01-19 06:20:09 (498 KB/s) - ‘ChannelSelection.py.zip’ saved [26475/26475]
root@sf8008:/hdd# unzip ChannelSelection.py.zip
Archive: ChannelSelection.py.zip
inflating: ChannelSelection.py
root@sf8008:/hdd# find / -name ChannelSelection.pyc
/usr/lib/enigma2/python/Screens/ChannelSelection.pyc
root@sf8008:/hdd# mv ChannelSelection.py /usr/lib/enigma2/python/Screens/ChannelSelection.py
root@sf8008:/hdd# mv /usr/lib/enigma2/python/Screens/ChannelSelection.pyc /usr/lib/enigma2/python/Screens/ChannelSelection.pyc_orig
On both OpenATV 7.3 and 7.4 devel, Enigma2 crashes when selecting channel containing alternatives. Part of a stacktrace (from OpenATV 7.4 devel) is shown below and the full log (from OpenATV 7.3) is in the attached file (enigma2-crashlog.txt).
...
06:22:37.4003 [Enigma] Python path is '/usr/lib/enigma2/python'.
06:22:37.4005 [Enigma] DVB API version 5, DVB API version minor 12.
06:22:37.4006 [Enigma] Enigma debug level 3.
06:22:37.4006 [Enigma] sourcedate 2024-01-05 / 7.3 33052+276055f.
06:23:03.6248 Traceback (most recent call last):
06:23:03.6249 File "/usr/lib/enigma2/python/Components/ActionMap.py", line 278, in action
06:23:03.6254 File "/usr/lib/enigma2/python/Screens/ChannelSelection.py", line 2386, in channelSelected
06:23:03.6356 self.zap(enable_pipzap=doClose, preview_zap=not doClose)
06:23:03.6361 File "/usr/lib/enigma2/python/Screens/ChannelSelection.py", line 2455, in zap
06:23:03.6413 oldref = self.currentlyPlayingServiceReference or eServiceReference()
06:23:03.6418 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
06:23:03.6432 AttributeError: 'ChannelSelection' object has no attribute 'currentlyPlayingServiceReference'
06:23:03.6434 [ePyObject] (PyObject_CallObject(<bound method ActionMap.action of <Components.ActionMap.ActionMap object at 0xacfb92d0>>,('OkCancelActions', 'ok')) fail
ed)
06:23:43.1047 Traceback (most recent call last):
06:23:43.1049 File "/usr/lib/enigma2/python/Components/ActionMap.py", line 278, in action
06:23:43.1053 File "/usr/lib/enigma2/python/Screens/ChannelSelection.py", line 2386, in channelSelected
06:23:43.1095 self.zap(enable_pipzap=doClose, preview_zap=not doClose)
06:23:43.1099 File "/usr/lib/enigma2/python/Screens/ChannelSelection.py", line 2455, in zap
06:23:43.1138 oldref = self.currentlyPlayingServiceReference or eServiceReference()
06:23:43.1142 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
06:23:43.1150 AttributeError: 'ChannelSelection' object has no attribute 'currentlyPlayingServiceReference'
06:23:43.1151 [ePyObject] (PyObject_CallObject(<bound method ActionMap.action of <Components.ActionMap.ActionMap object at 0xacfb92d0>>,('OkCancelActions', 'ok')) fail
ed)
06:23:48.0074 Traceback (most recent call last):
06:23:48.0075 File "/usr/lib/enigma2/python/Components/ActionMap.py", line 278, in action
06:23:48.0080 File "/usr/lib/enigma2/python/Screens/ChannelSelection.py", line 2386, in channelSelected
06:23:48.0118 self.zap(enable_pipzap=doClose, preview_zap=not doClose)
06:23:48.0121 File "/usr/lib/enigma2/python/Screens/ChannelSelection.py", line 2455, in zap
06:23:48.0162 oldref = self.currentlyPlayingServiceReference or eServiceReference()
06:23:48.0167 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
06:23:48.0175 AttributeError: 'ChannelSelection' object has no attribute 'currentlyPlayingServiceReference'
06:23:48.0176 [ePyObject] (PyObject_CallObject(<bound method ActionMap.action of <Components.ActionMap.ActionMap object at 0xacfb92d0>>,('OkCancelActions', 'ok')) fail
ed)
Please try this:
ChannelSelection.py.zip
Unfortunately, with that file in place it crashes on every channel change (both alternatives and normal channels).
enigma2-crashlog_2.txt
Sorry. there was a typo.
I have tested this and this is working here.
ChannelSelection.py.zip
I can confirm that after applying the attached file the alternative channel list entries based on *Wrapper plugins do work on both OpenATV 7.3 and 7.4 devel.
Thank you very much for your help
There is one issue left.
The selected alternative if you open the service list is wrong.
I will try to fix this.
You're right. I've just put a file on an OpenATV instance with more complex channel list (multiple alternatives - cable, satellite, IPTV channels) and it looks like it prefers to choose the IPTV-based channel alternative.
In case of a need for further testing I can still assist.
The calculation of an preferred alternative iptv service in a group is not possible.