-
Notifications
You must be signed in to change notification settings - Fork 43
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
Multiple persistent license requests are going to download an offline widevine license. #149
Comments
The number of requests sent has nothing to do with VMP, however the ability to use persistent licenses at all does. Also, if you are on ECS version 6 you should really consider updating, it is very old and not even officially supported anymore by the Widevine CDM. The official requirement is at least Chromium M95, which means ECS 16 or later (although it may still work with earlier versions, for now). About your problem, I can't tell for sure by your picture, but my guess is that the first request for each session is a service certificate request. This can be avoided if you provide the cert ahead of time, or load it once and then reuse it. This Shaka Player tutorial has some examples: https://shaka-player-demo.appspot.com/docs/api/tutorial-widevine-service-certs.html |
@khwaaj ,Thank you for your information. I added the serverCertificate as you suggested and shared my configuration, but two requests are still being processed.
ServiceCertificate Response :Persistentlicense first Request Response:Should the responses to these two requests be the same? I noticed a small difference in the first line between two responses; Is this the problem? Did I miss anything? Can you tell me why two requests are still being processed? |
Are you sure there are not just two sets of keys for Widevine defined in the MPD you are downloading (e.g. for different tracks or qualities)? |
@khwaaj ,We are maintaining one key for each MPD.
I am sharing an MPD file data. Can you please check and let me know if there is any issue with my MPD? If issue not releated to MPD , is issue with servicecertificate response and persistentlicense first request response, As I replayed the last thread, I noticed a small difference in the first line between two responses. Is this the problem? |
The MPD looks mostly ok, however the DASH-IF implementation guidelines specifies that
I can't easily tell what this is without request/response headers. The certificate request has just a 2-byte request payload, so that is an easy way to distinguish it. License requests are much larger. Ultimately this is not an issue with ECS, it is with the player implementation (and/or content DRM integration). You would see the exact same behavior executing the same code in Chrome. ECS provides the interface to the CDM, which is used through EME by the player, nothing else. It could be that Shaka is creating separate EME sessions for A/V (since both are present in the manifest), requesting keys for both sessions even though the keys are really the same. I'm not very familiar with the Shaka implementation though so it is just speculation (although having separate A/V key is standard practice for DRM protected content, so it would make some sense). My points that you are probably better off asking in a Shaka forum. |
@khwaaj |
Multiple persistent license requests are going to download an offline widevine license.
CastLabs Electron Version : 6.0.1
Shakaplayer version : 2.0
Python : 3.9.0
exe name : electron.exe
After EVS sign process compete it create electron.exe.sig
I haven't done any codesign or EVS signing processes for my application yet. We have a thousand files there to download as offline licenses. It takes too much time. Now we are trying to optimise offline license download time. Till now, Shakaplayer has requested two persistent license requests for each offline license download. To reduce the time, we want to make one request for each offline license download. As per my understanding, we need to create a Verified Media Path (VMP), after the EVS sign completes, It will reduce the request count to one. For that, I followed the CastLabs electron documentation and tried to do EVS sign to my exe using the
python3 -m castlabs_evs.vmp sign-pkg --persistent path/to/package-directroy
command, and the electron.exe.sig file was successfully generated. Then also shaka making two requests. Is there anything I missed during the EVS signing process? Is there another way to reduce the number of persistent license requests?The text was updated successfully, but these errors were encountered: