-
Notifications
You must be signed in to change notification settings - Fork 241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Mycanal.fr] Licence server return "challenge is missing" #267
Comments
@wwark how does your license_key looks like? |
My licence_key looks like The challenge is base64 so I put B{SSM} and I tried also little "b" but no response from the server in this case. Also the response is a xml response and the licence is base64 format. I don't know what to put in the response part of the license_key for the moment. <licenseresponse deviceid="v3Egl27IcUq3DXL+COEn8w==" xmlns="http://www.canal-plus.com/DRM/V1">\<license contentid="1710168517">CAISlgIKKgoQTSdnu46EhnmKo3qc/ep03RIQowvsuWp9Hk2Jbg7mvT9F9RoAIAEoABIUCAEQARgAKICangEwgJqeAUgAUAAaZhIQdWaI5N9DYBtTBKRALGqKrxpQ3e4AMWE7blRprUGVFJPsKSvhbBj//Ey3VNpFKDwQFaknE6FTj4uOVdXP4uLzoPcLp00+ZXsnHcZa2nQ9lMfupCcg90qecUyuz2PQDw7WnPggARpOChAIDuWgADJCxpYKbSJBH++/EhDlKx0zBLLfQcLJsPm3UmmdGiAMxRbuXSJnx7ezkxWjq49GpGYcGfettNIrCDZbourvmiACKAFiAlNEIMP/kOcFMhC/cSCXbshxSrcNcv4I4SfzOABQABoghZvLdiHxXzL9RFhkNtlEFb9fJmcFAX76sRmXPA788bgigAJ+yYhZCy2LRR1f2/5Nhd1xVOTCFDGHeynjHlNcF2LL12gBSVn1422Mc1x+gQiyLm5SistVVIG9NRtIxj2zYbjpeI2IxXtDCWxZk4G1eVUstDg18Ryl+Pzm1dWTcrWefdvm6ozsu0feHWd31Bpde/cIVh7NboQM/l9LLh+4KDG7SZjx89rQNBiTwj5fsJRr1Vh/QUF87WHe3LBVAM/4GadF2+0CbXNXLNUf/STXEUnL5YDjjB8L7e4vuL/n5mjbD7N...............</license></clientresponse></licenseresponse> |
@wwark could it be that the browser b64 decodes the challenge for display? But even you get the 200 OK response, you are currently out of luck parsing the xml response. Nevertheless you should first figure out why you dont get 200 OK, use libCURL debugging and compare kodi vs browser, I'm sure you'll get a license if you do things correct. |
@peak3d Thank you for these information's. The response can't be interpreted by inputstream.adaptive so I will try to propose a solution (2). I will let open this ticket regarding the issue about to interpret the response of the server. Last question, what is the difference between {SSM} and {SID}? In which case I need to use {SID}. It is not clear for me. Good day ! |
@wwark SID is the DRM session Id, there are a few (I remember 1) addons which need to pass the DRM SessionId in the license request. I bet you can forget this one for your addon. Regarding option 2.) Pls. refer how license is parsed from json, pls. try to follow the way, you can use expat which is already in inputstream.adaptive dependencies and already used in DASHStream parser |
ok thank you I will look into it ! |
Hi @peak3d, I start to work to implement option (2). (https://github.com/wwark/inputstream.adaptive)
I tried with my test version of inputstream and with this version of inputstream https://launchpad.net/~team-xbmc/+archive/ubuntu/ppa/+files/kodi-inputstream-adaptive-dbg_2.3.19-1~bionic_amd64.deb Thanks, |
For Smoothstream with PlayReady content protection you'll have to tell inputstream.adaptive how to create the pssh binary data for initializing widevine library. What you can do now is install EME logger extension in your Chrome browser, activate logging and search inside the log for initialization. If you have found it, pls. post this section here Edit: No, its some other issue, will have to debug |
Ok. Do not hesitate if you need me to do some tests. |
Hi, Thanks in advane |
Hi @peak3d, |
Hi @peak3d, The format is of the response is "<licenseresponse deviceid="Poet+NDDxUKhcuBSJSNCug==" xmlns="http://www.canal-plus.com/DRM/V1\"><clientresponse statuscode="200"><license contentid="1710379614">.........QWpHFRBtCFW+/iAKSs3WMCxIQkYLbEX1fK0GwT/L1DWmRgBoAIAEoABIUCAEQA..........</license></clientresponse></licenseresponse> Thanks for your help ! |
@wwark is this issue still current? |
@wwark closing, please reopen though if it's still current |
Hello, |
@Arias800 please provide a full debug log showing the issue. I can't access the manifest from my country btw. |
I completely forgot that the manifest are geo-blocked on this website. Debug log : https://github.com/Arias800/Fichier-divers/blob/master/mycanal/debuglog.txt |
The reason we ask for full debug log is to be able to see what device you have, what version of kodi is running, whether there are banned add-ons in use etc. - could you please provide the whole log? |
Sorry for the mistake, I will remember next time. |
Ok. The issue seen is different to the original topic. Don't open a new issue yet though, the problem would appear to be on the add-on's side. The license server is accepting the challenge and returning a response, just that there are no decryption keys coming with it. You should check on the add-on's github/forum to see if there are other users having the same issue, if not then open a new issue there. Most likely there has been a change on Mycanal.fr side and someone will need to confirm if this is the case by looking in the browser/official app to compare. |
I have just discovered something. Is it possible to see what the license server returns in Kodi? |
my bad, the files would be there in kodi 19 but this is turned off by default in 20. Need to uncomment this https://github.com/xbmc/inputstream.adaptive/blob/Nexus/wvdecrypter/wvdecrypter.cpp#L30 and recompile to get these files |
It would be nice to have an option to enable or disable these files in Kodi 20. So, I'm back to Kodi 19 and the license response is as expected.
So the problem isn't in the addon side, I think. |
Ah ok. |
Have reopened issue and we'll add xml license parsing as a feature to be implemented. |
If you want a solution right now, you could probably implement a proxy server in the add-on which would parse the xml and return just the base64 license. I can't give any indication to when this would be done, there's a lot of other competing features and only so much time between the active developers. |
Take your time, it's not urgent. I didn't know that we can retrieve the license with a proxy server. |
@Arias800 can you check on webbrowser network flow, from the license response, what is the "Content-Type" header value? |
Hello, |
i made some search and yes ISA dont handle this type of response, from very old ISA versions, some license wrapper support was implemented on an ideal world (as said some comment above) would be the addon with his proxy server implementation But anyway being that we have from older versions already some wrapper implementations i have planned future ISA improvements on this topic i cannot provide you an ETA, my hope is try include it in to Kodi 21, meantime proxy server implementation its the only possible solution |
We've set up a proxy as advised before, and it works very well. |
good, i will let you know here for future updates |
Hi @peak3d and @glennguy
Thank you for the tips. I manage to increase the size of the response of the server in the kodi side and fix one header and now I have issue saying the challenge is missing.
I think it is inputstream.adaptive creating the challenge, am I right ?
Some information of the stream
item.property['inputstreamaddon'] = 'inputstream.adaptive'
item.property['inputstream.adaptive.manifest_type'] = 'ism'
Url of the ism manifest
https://hss-od.snl-lv3.canalplus-cdn.net/replay/cplus/ssd/cpl100032465-wildmoka.com-8183278924/wildmoka-com-8183278924.ism/manifest
url of the licence
http://secure-gen-hapi.canal-plus.com/conso/view
/5f0adef0-7bf6-11e9-9f7a-79ba78a2daad/licence?drmType=DRM%20Widevine
The response:
Thank you for your help !
The text was updated successfully, but these errors were encountered: