inputstream.adaptive
inputstream.adaptive copied to clipboard
[OQEE] - Decrypt failed with error: 2 and key: 00000000000000000000000000000000
Bug report
Describe the bug
Here is a clear and concise description of what the problem is:
Disclaimer: I'm kinda new to all of this Widevine madness, I could possibly miss something.
I'm trying to support a French TV provider (OQEE from Free (a French ISP)).
The stream starts on Kodi but I have what seems a failed decryption (green artifacts, unusable image, no sound). The logs are mentionning failed decryption. It seems that the license_key I provide is correct (no more complaining in logs about an invalid response).
Here is my test addon that starts the stream:
listitem = xbmcgui.ListItem(path='https://api-proxad.dc2.oqee.net/playlist/v1/live/201/1/live.mpd', offscreen=True)
# These two lines are needed to prevent the HTTP HEAD request from Kodi core, used to determine the mimetype
listitem.setMimeType('application/dash+xml')
listitem.setContentLookup(False)
listitem.setProperty('inputstream', 'inputstream.adaptive')
listitem.setProperty('inputstream.adaptive.license_type', 'com.widevine.alpha')
license_headers = {
'Content-Type': 'application/json',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0', #"web_utils.get_random_windows_ua(),
'authorization': 'Bearer <REDACTED>',
'Origin': 'https://oqee.tv',
'Referer': 'https://oqee.tv',
'Priority': 'u=4',
'x-oqee-account-provider': 'free',
'x-oqee-customization': 1,
'x-oqee-platform': 'web',
'x-oqee-profile': '<REDACTED>',
'x-fbx-rights-token': '<REDACTED>',
}
from urllib.parse import urlencode
license_config = {
'license_server_url': "https://license.oqee.net/api/v1/live/license/widevine",
'headers': urlencode(license_headers),
'post_data': '%7B%22licenseRequest%22%3A%22b{SSM}%22%7D',
'response_data': 'JBlicense;expiration'
}
listitem.setProperty('inputstream.adaptive.license_key', '|'.join(license_config.values()))
# Pass the item to the Kodi player.
xbmcplugin.setResolvedUrl(HANDLE, True, listitem=listitem)
Expected Behavior
Here is a clear and concise description of what was expected to happen:
The stream should display an unencrypted video data with sound.
Actual Behavior
The stream shows what seems to be an encrypted video stream.
Possible Fix
None that I have found (I tried to tweak around some things but always the same issue)
To Reproduce
Steps to reproduce the behavior:
Hard to reproduce because you should have my account credentials or tokens (if needed I can send them in PM but I don't know if it works outside France)
- Create a ListItem with the MPD URL of any channels OQEE provides
- Configure inputstream.adaptative license stuff as stated above in the bug description
- Start the addon and witness a greenny stuff
Debuglog
The debuglog can be found here: https://paste.kodi.tv/mayoceqotu.kodi
MPD/M3U8s/ISM
An example or copy of a manifest (or manifests for HLS - master and variants) can be found here:
<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="dynamic" publishTime="2024-05-29T10:19:15Z" availabilityStartTime="1970-01-01T00:00:00Z" minimumUpdatePeriod="PT2S" minBufferTime="PT6.4S" timeShiftBufferDepth="PT14400S" suggestedPresentationDelay="PT9.6S">
<UTCTiming schemeIdUri="urn:mpeg:dash:utc:http-iso:2014" value="https://time.akamai.com/?iso" />
<Period id="0" start="PT0S">
<AdaptationSet id="0" group="1" segmentAlignment="true" startWithSAP="1" contentType="video">
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh>AAAAiHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGgIARIQocf9FUFCoGm775zPIBr3HRIQV1Z+z9RXSbgW1m2ubAU79BIQ/pKJ1nsD0fi3pXUMM+s6MxIQBUPt0jMQHBv88X604SEGTBIQUls9kMYGQ/Slzaq7eDsaJBoAKgAyADgASABQAA==</cenc:pssh></ContentProtection>
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="a1c7fd15-4142-a069-bbef-9ccf201af71d"/>
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="1,2,3"/>
<Representation id="379" bandwidth="400000" codecs="avc1.64000d" mimeType="video/mp4" width="384" height="216" frameRate="25">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_379_init" media="https://media.stream.proxad.net/media/0_1_379_$Time$">
<SegmentTimeline>
<S t="154526719082794" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation><Representation id="380" bandwidth="800000" codecs="avc1.64001e" mimeType="video/mp4" width="640" height="360" frameRate="25">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_380_init" media="https://media.stream.proxad.net/media/0_1_380_$Time$">
<SegmentTimeline>
<S t="154526719082794" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation><Representation id="381" bandwidth="1600000" codecs="avc1.64001f" mimeType="video/mp4" width="896" height="504" frameRate="25">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_381_init" media="https://media.stream.proxad.net/media/0_1_381_$Time$">
<SegmentTimeline>
<S t="154526719082794" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation><Representation id="3517" bandwidth="1600000" codecs="hvc1.1.2.L93" mimeType="video/mp4" width="896" height="504" frameRate="50">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_3517_init" media="https://media.stream.proxad.net/media/0_1_3517_$Time$">
<SegmentTimeline>
<S t="154526719154794" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="1" group="1" segmentAlignment="true" startWithSAP="1" contentType="video">
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh>AAAAiHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGgIARIQocf9FUFCoGm775zPIBr3HRIQV1Z+z9RXSbgW1m2ubAU79BIQ/pKJ1nsD0fi3pXUMM+s6MxIQBUPt0jMQHBv88X604SEGTBIQUls9kMYGQ/Slzaq7eDsaJBoAKgAyADgASABQAA==</cenc:pssh></ContentProtection>
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="0543edd2-3310-1c1b-fcf1-7eb4e121064c"/>
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="0,2,3"/>
<Representation id="382" bandwidth="3000000" codecs="avc1.64001f" mimeType="video/mp4" width="1280" height="720" frameRate="25">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_382_init" media="https://media.stream.proxad.net/media/0_1_382_$Time$">
<SegmentTimeline>
<S t="154526719082794" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="2" group="1" segmentAlignment="true" startWithSAP="1" contentType="video">
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh>AAAAiHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGgIARIQocf9FUFCoGm775zPIBr3HRIQV1Z+z9RXSbgW1m2ubAU79BIQ/pKJ1nsD0fi3pXUMM+s6MxIQBUPt0jMQHBv88X604SEGTBIQUls9kMYGQ/Slzaq7eDsaJBoAKgAyADgASABQAA==</cenc:pssh></ContentProtection>
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="525b3d90-c606-43f4-a5cd-aabb783b1a24"/>
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="0,1,3"/>
<Representation id="3518" bandwidth="4800000" codecs="hvc1.1.2.L123" mimeType="video/mp4" width="1920" height="1080" frameRate="50">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_3518_init" media="https://media.stream.proxad.net/media/0_1_3518_$Time$">
<SegmentTimeline>
<S t="154526719154794" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="3" group="1" segmentAlignment="true" startWithSAP="1" contentType="video">
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh>AAAAiHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGgIARIQocf9FUFCoGm775zPIBr3HRIQV1Z+z9RXSbgW1m2ubAU79BIQ/pKJ1nsD0fi3pXUMM+s6MxIQBUPt0jMQHBv88X604SEGTBIQUls9kMYGQ/Slzaq7eDsaJBoAKgAyADgASABQAA==</cenc:pssh></ContentProtection>
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="57567ecf-d457-49b8-16d6-6dae6c053bf4"/>
<SupplementalProperty schemeIdUri="urn:mpeg:dash:adaptation-set-switching:2016" value="0,1,2"/>
<Representation id="3519" bandwidth="14800000" codecs="hvc1.1.2.L123" mimeType="video/mp4" width="1920" height="1080" frameRate="50">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_3519_init" media="https://media.stream.proxad.net/media/0_1_3519_$Time$">
<SegmentTimeline>
<S t="154526719154794" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="376" group="2" segmentAlignment="true" startWithSAP="1" contentType="audio" lang="fra">
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh>AAAAiHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGgIARIQocf9FUFCoGm775zPIBr3HRIQV1Z+z9RXSbgW1m2ubAU79BIQ/pKJ1nsD0fi3pXUMM+s6MxIQBUPt0jMQHBv88X604SEGTBIQUls9kMYGQ/Slzaq7eDsaJBoAKgAyADgASABQAA==</cenc:pssh></ContentProtection>
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="fe9289d6-7b03-d1f8-b7a5-750c33eb3a33"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
<Representation id="376" bandwidth="64000" codecs="mp4a.40.2" mimeType="audio/mp4">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_376_init" media="https://media.stream.proxad.net/media/0_1_376_$Time$">
<SegmentTimeline>
<S t="154526719105950" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="377" group="2" segmentAlignment="true" startWithSAP="1" contentType="audio" lang="und">
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh>AAAAiHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGgIARIQocf9FUFCoGm775zPIBr3HRIQV1Z+z9RXSbgW1m2ubAU79BIQ/pKJ1nsD0fi3pXUMM+s6MxIQBUPt0jMQHBv88X604SEGTBIQUls9kMYGQ/Slzaq7eDsaJBoAKgAyADgASABQAA==</cenc:pssh></ContentProtection>
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="fe9289d6-7b03-d1f8-b7a5-750c33eb3a33"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="main"/>
<Representation id="377" bandwidth="64000" codecs="mp4a.40.2" mimeType="audio/mp4">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_377_init" media="https://media.stream.proxad.net/media/0_1_377_$Time$">
<SegmentTimeline>
<S t="154526719105950" d="288000" r="4502"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="455" group="3" segmentAlignment="true" startWithSAP="1" contentType="text" lang="fra">
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="caption"/>
<Representation id="455" bandwidth="64000" codecs="stpp" mimeType="application/mp4">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_455_init" media="https://media.stream.proxad.net/media/0_1_455_$Time$">
<SegmentTimeline>
<S t="154526719104000" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="461" group="3" segmentAlignment="true" startWithSAP="1" contentType="text" lang="fra">
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle"/>
<Representation id="461" bandwidth="64000" codecs="stpp" mimeType="application/mp4">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_461_init" media="https://media.stream.proxad.net/media/0_1_461_$Time$">
<SegmentTimeline>
<S t="154526719104000" d="288000" r="4501"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<AdaptationSet id="463" group="2" segmentAlignment="true" startWithSAP="1" contentType="audio" lang="fra">
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"><cenc:pssh>AAAAiHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGgIARIQocf9FUFCoGm775zPIBr3HRIQV1Z+z9RXSbgW1m2ubAU79BIQ/pKJ1nsD0fi3pXUMM+s6MxIQBUPt0jMQHBv88X604SEGTBIQUls9kMYGQ/Slzaq7eDsaJBoAKgAyADgASABQAA==</cenc:pssh></ContentProtection>
<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" value="cenc" cenc:default_KID="fe9289d6-7b03-d1f8-b7a5-750c33eb3a33"/>
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="description"/>
<Representation id="463" bandwidth="64000" codecs="mp4a.40.2" mimeType="audio/mp4">
<SegmentTemplate timescale="90000" initialization="https://media.stream.proxad.net/media/0_1_463_init" media="https://media.stream.proxad.net/media/0_1_463_$Time$">
<SegmentTimeline>
<S t="154526719105950" d="288000" r="4502"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
Screenshots
Here are some links or screenshots to help explain the problem:
A screenshot of the resulting playing stream:
Additional context or screenshots (if appropriate)
Here is some additional context or explanation that might help:
Your Environment
Used Operating system:
-
[ ] Android
-
[ ] iOS
-
[ ] tvOS
-
[x] Linux (LibreELEC 12.0.0 on RPi4.aarch64)
-
[ ] OSX
-
[x] Windows
-
[ ] Windows UWP
-
Operating system version/name:
-
Kodi version: 21.0.0
-
inputstream.adaptive version: 21.4.9
note: Once the issue is made we require you to update it with new information should that be required. Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.