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
Different results between Windows and Linux #405
Comments
Depends, there can be. Can we have a look at your code? The only thing I can think of is certain modules have different/changed/missing functionality like the |
Sure, the code can be found here |
Path separators are fixed now, getting license looks good, so a step further. Thx for the hint. Is there maybe a path rule behind in regards to slash and backslash? |
I think |
I've tested a bit, here are the results:
|
So you're running into VMP issues in Windows but not Linux (non-Android)? |
I received some more feedback from the users:
Successful so far:
Try to reproduce with LibreElec and try to get more details about the issues on those systems. |
In the very first step I think it make sense to focus on the VMP issue on Windows 10 systems. |
Is there a way to get more details about this issue on Windows systems, I mean in addition to the debug mode of kodi? |
Maybe one step further in the analysis...the Python code in Kodi looks like this: On Linux systems If I try to do the same with: Right click on Song -> Play using... -> PAPlayer, inpustream.adaptive is starting the communication with Amazon but with "Bad Request" response. |
It's hard to say without seeing a full log. Best guess based on your snippet is that inputstream.adaptive is not present, not loading or is disabled. Also |
Thanks glennguy for the feedback. I tried it with {}, but same results. Attached you can find the log. Kodi actions was:
Only with 2nd action the communication to Amazon was started. |
Looks like IA was invoked correctly compared to the snippet above - license request is happening. VMP cannot be overcome... You mention that users report it's working in Ubuntu though - you need to check this yourself I think. VMP error isn't the fault of inputstream adaptive or Kodi. Unless there's a different endpoint from Amazon that will provide a playlist and license that has VMP disabled you'll be limited to Android devices :( |
I guess VMP is just an result, not the root cause. I have Ubuntu and Win10 and can compare both systems. So the same code is running fine on Ubuntu but not on Win10. Default action on Win10 to play a song will not invoke IA, this looks strange to me and I dont know why. Maybe this has something to do with Kodi itself. |
Sorry I misread you earlier post... I find the easiest way is to run Kodi traffic through mitmproxy. You'll need to add the mitmproxy cacert to program files\kodi\system\certs\cacert.pem . I'm running Windows 10 as well, and have an Ubuntu VM set up for this. You can then inspect the communication with the widevine license server. The data payload will always be different but yes maybe the headers are slightly different. Just get mitmproxy up and running on you ubuntu machine, start it with the -k option, download the cert to your windows machine and get it added to Kodi's certs, then set Kodi proxy to ubuntu machine. You need to restart Kodi for the changes to fully take effect. |
So it is up and running but I receive |
Sounds like you didn't properly mark it as trusted in kodi. |
That is exactly my question...how to do this. The cacert is added to cacert.pem. Is there something more to do? |
Ah yes in python if you're using requests you'll also need to set 'verify=False' for your requests and/or Session. Not sure how it's done for urllib2. Or you could point requests to use the cacert.pem in the Kodi folder |
Now I was able to capture the communication (nice tool) and compared every parameter. Looks good, all parameters (Header, Cookie, Body) are 100% identical.
I suggest to focus on the VMP validation error first. |
|
Regarding my point "Kodi invoking IA" I fully agree and will check this separately. Your 2nd point I not fully understood and I do not have deep insides of IA. What I see all my parameters are fully transfered and the only change is the licensechallenge. I saw differences in the platform identifier and the widevine version and maybe there are some more. Edit: Sound this is the reason why it works under Linux. Is there a chance to parametrize the platform identifier? And in addition to take the payload of the certifcate in consideration like this? |
The challenge is generated from the CDM so no unfortunately.
You can supply the server certificate with the |
The Windows issue is related to VMP but I dont know why it's not working on Libreelec. Maybe it is the same root cause. |
Hi @spacys, I could not find an issue in the spacys/mediathek issue queue, did you manage to solve this issue? I noticed you commented out this line:
Also, what certificate value is supposed to be used here (one from the manifest)? |
@MPParsley, it is working on Linux systems and the restictions are mentioned in the readme file as known issues. In my case a separate certificate is not necessary, therefore it's commented out. I still believe it's related to VMP validation, see few comments above. |
I have implemented inputstream.adaptive as descriped in my Kodi addon on my Linux machines and it works fine (playback is possible). Also on other Linux machines is everything fine. But the same code does not work on Win10 machines.
After a check all information like header, cookie (encoding) looks same on both platforms but still reveiving "Bad Request" on Win10.
Is there something which needs to be considered on Win10 machines?
All machines are 64Bit, addon has unicode directive.
The text was updated successfully, but these errors were encountered: