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.
the provided mpd dont match the log output, i assume is another channel i think first thing to do is try inspecting the fmp4 files
can you attach here the video initializing segment file, and the first video segment file? for example from the log you can find the links where download files as follows:
[AS-0] Download finished: https://media.stream.proxad.net/media/0_1_390_init
[AS-0] Download finished: https://media.stream.proxad.net/media/0_1_390_154528077781654
AS-0 is usually the video stream
You are right, I have confused myself between the channel on the browser page of oqee and the channel I used in the plugin.
So to avoid any confusion, I repost a Kodi log with a new (fixed) live.mdp url which I can track on my browser.
Here is the Kodi logs: https://paste.kodi.tv/eyemikeqot.kodi
If I make the parallel from what you said, in this case the init segment of AS-0 is "0_1_382_init" and the first video segment is "0_1_382_154530128714794"
(I am forced to add the ".mp4" extension for posting them here)
0_1_382_init: https://github.com/xbmc/inputstream.adaptive/assets/5551064/38e428da-203e-4b17-ac36-df62f0ea4483
0_1_382_154530128714794: https://github.com/xbmc/inputstream.adaptive/assets/5551064/5b77d52a-8d49-4a25-91fa-e4ef4975bbff
The '''new''' MPD file (https://api-proxad.dc2.oqee.net/playlist/v1/live/612/1/live.mpd):
<?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-29T16:25:23Z" 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+LqXnWSs6jyCfc1R0h7QAAAGgIARIQ/pKJ1nsD0fi3pXUMM+s6MxIQocf9FUFCoGm775zPIBr3HRIQUls9kMYGQ/Slzaq7eDsaJBIQV1Z+z9RXSbgW1m2ubAU79BIQBUPt0jMQHBv88X604SEGTBoAKgAyADgASABQAA==</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="154528696490794" 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="154528696490794" 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="154528696490794" 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="154528696274794" d="288000" r="4502"/>
</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+LqXnWSs6jyCfc1R0h7QAAAGgIARIQ/pKJ1nsD0fi3pXUMM+s6MxIQocf9FUFCoGm775zPIBr3HRIQUls9kMYGQ/Slzaq7eDsaJBIQV1Z+z9RXSbgW1m2ubAU79BIQBUPt0jMQHBv88X604SEGTBoAKgAyADgASABQAA==</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="154528696490794" 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+LqXnWSs6jyCfc1R0h7QAAAGgIARIQ/pKJ1nsD0fi3pXUMM+s6MxIQocf9FUFCoGm775zPIBr3HRIQUls9kMYGQ/Slzaq7eDsaJBIQV1Z+z9RXSbgW1m2ubAU79BIQBUPt0jMQHBv88X604SEGTBoAKgAyADgASABQAA==</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="154528696274794" d="288000" r="4502"/>
</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+LqXnWSs6jyCfc1R0h7QAAAGgIARIQ/pKJ1nsD0fi3pXUMM+s6MxIQocf9FUFCoGm775zPIBr3HRIQUls9kMYGQ/Slzaq7eDsaJBIQV1Z+z9RXSbgW1m2ubAU79BIQBUPt0jMQHBv88X604SEGTBoAKgAyADgASABQAA==</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="154528696274794" d="288000" r="4502"/>
</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+LqXnWSs6jyCfc1R0h7QAAAGgIARIQ/pKJ1nsD0fi3pXUMM+s6MxIQocf9FUFCoGm775zPIBr3HRIQUls9kMYGQ/Slzaq7eDsaJBIQV1Z+z9RXSbgW1m2ubAU79BIQBUPt0jMQHBv88X604SEGTBoAKgAyADgASABQAA==</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="154528696225950" d="288000" r="4502"/>
</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+LqXnWSs6jyCfc1R0h7QAAAGgIARIQ/pKJ1nsD0fi3pXUMM+s6MxIQocf9FUFCoGm775zPIBr3HRIQUls9kMYGQ/Slzaq7eDsaJBIQV1Z+z9RXSbgW1m2ubAU79BIQBUPt0jMQHBv88X604SEGTBoAKgAyADgASABQAA==</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="154528696225950" 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="154528696512000" 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="154528696512000" 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+LqXnWSs6jyCfc1R0h7QAAAGgIARIQ/pKJ1nsD0fi3pXUMM+s6MxIQocf9FUFCoGm775zPIBr3HRIQUls9kMYGQ/Slzaq7eDsaJBIQV1Z+z9RXSbgW1m2ubAU79BIQBUPt0jMQHBv88X604SEGTBoAKgAyADgASABQAA==</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="154528696225950" d="288000" r="4502"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
thanks i can see that default kid is zeroed as we can see on the log, so it get the right value
noticed also inconsistent log from the add-on
so initialize with manifest kid
2024-05-29 18:50:46.135 T:38660 debug <general>: AddOnLog: inputstream.adaptive: Initializing stream with KID: fe9289d67b03d1f8b7a5750c33eb3a33
and after use the mp4 kid
CWVCencSingleSampleDecrypter::LogDecryptError: Decrypt failed with error: 2 and key: 00000000000000000000000000000000
so maybe use the manifest kid when zeroed could works i made a test build: https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Finputstream.adaptive/detail/PR-1567/1/artifacts you can test Windows builds, dont try test android builds atm because WIP let me know
Thanks !
I tested it on Windows and it solved the 00000000000000000000000000000000 key error, but an other one has popped out : CWVCencSingleSampleDecrypter::LogDecryptError: Decrypt failed with error: 2 and key: 57567ECFD45749B816D66DAE6C053BF4
On the display, it is the same greeny stuff from the screenshot I posted initially, and no sounds (ffmpeg complains about aac channels not allocated)
Here is the new Kodi logs: https://paste.kodi.tv/jakecaseqo.kodi
CWVCencSingleSampleDecrypter::LogDecryptError: Decrypt failed with error: 2 and key: 57567ECFD45749B816D66DAE6C053BF4
those can be confused but are not errors
seem there are still decrypting problems i think you need to wait a feedback from @glennguy that is more expert than me on decrypting
For what it could help: Oqee uses shaka-player as their video player supporting DRM.
By starting from the opensource shaka-player and giving the same mpd file and license server, I achieved to get the decrypted video stream in my browser. So I think that Oqee hasn't tampered the thing with custom homemade stuff in the middle.
Your link is just an ads for Free Ligue 1.
Why are you interested in watching this ads?
Have you tried it directly with ClearKey?
#EXTINF:-1,PUB Free Ligue 1
#KODIPROP:inputstreamaddon=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.drm_legacy=org.w3.clearkey|57567ECFD45749B816D66DAE6C053BF4:2d708bbd-d333-bc60-ec4a-3f717c4c8a9e
#KODIPROP:inputstream.adaptive.common_headers=User-Agent=Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20x64%3B%20rv%3A139.0)%20Gecko%2F20100101%20Firefox%2F139.0
https://api-proxad.dc2.oqee.net/playlist/v1/live/201/1/live.mpd
with clearkey on jwplayer and shaka it works
https://andykimpe.ovh/clearkeytest.php?url=https%3A%2F%2Fapi-proxad.dc2.oqee.net%2Fplaylist%2Fv1%2Flive%2F201%2F1%2Flive.mpd&clearkey=57567ECFD45749B816D66DAE6C053BF4&clearkeyid=2d708bbd-d333-bc60-ec4a-3f717c4c8a9e
Your link is just an ads for Free Ligue 1.
Why are you interested in watching this ads?
Have you tried it directly with ClearKey?
#EXTINF:-1,PUB Free Ligue 1 #KODIPROP:inputstreamaddon=inputstream.adaptive #KODIPROP:inputstream.adaptive.manifest_type=mpd #KODIPROP:inputstream.adaptive.drm_legacy=org.w3.clearkey|57567ECFD45749B816D66DAE6C053BF4:2d708bbd-d333-bc60-ec4a-3f717c4c8a9e #KODIPROP:inputstream.adaptive.common_headers=User-Agent=Mozilla%2F5.0%20(Windows%20NT%2010.0%3B%20Win64%3B%20x64%3B%20rv%3A139.0)%20Gecko%2F20100101%20Firefox%2F139.0 https://api-proxad.dc2.oqee.net/playlist/v1/live/201/1/live.mpdwith clearkey on jwplayer and shaka it works
https://andykimpe.ovh/clearkeytest.php?url=https%3A%2F%2Fapi-proxad.dc2.oqee.net%2Fplaylist%2Fv1%2Flive%2F201%2F1%2Flive.mpd&clearkey=57567ECFD45749B816D66DAE6C053BF4&clearkeyid=2d708bbd-d333-bc60-ec4a-3f717c4c8a9e
When you don't have exactly the proper headers and cookies, they cleverily redirect you to a Free Ligue 1 ad instead of a simple 403 Unauthorized, and yep these ads are only using ClearKey.
in this case you need to add the headers
example
tf1 on sfr tv
#EXTM3U
#EXTINF:-1,TF1 (sfr)
#KODIPROP:inputstream=inputstream.adaptive
#KODIPROP:inputstream.adaptive.common_headers=Accept=*/*&Origin=null&Referer=https://tv.sfr.fr/&User-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36
#KODIPROP:inputstream.adaptive.drm_legacy=org.w3.clearkey|aa8be47a53e129b0e0533b28450a1cbb:b06c704d8da89332e257afe414792e01
https://ncdn-live.pfd.sfr.net/sdash/LIVE$TF1/index.mpd/Manifest?start=LIVE&end=END&device=dash_dyn_wide
Hmmm, I'm sorry, I think I don't understand your point.
I was explaining to you why you saw clearkey ads instead of the expected widevine encrypted stream.
I know and I have set my headers and cookies to access the expected encrypted stream, cf my original issue: https://github.com/xbmc/inputstream.adaptive/issues/1566#issue-2322984876
But the bug I have is related to this encrypted stream, not the ads. I cannot give you my credentials, but I can give any mpd files if you want to investigate yourself !
You can see that the PSSH from the index MPD I sent in the issue above is mentionning Widevine as the SystemID.