-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Requests made to Widevine licenses server proxy at playback time of offline stored content, despite persistent license storage is supported #6141
Comments
@loicraux can you try to download the content in the demo over Chrome and see the results? Thanks! |
Also try not to set |
I have the same results when trying to download the content in the Shaka Player demo over Chrome on Windows : Manifest URL is : https://boutique-arte-streams.lab.arte.tv/origin/HLS_139940_0-VOF-cenc.ism/stream.mpd Custom License Server URL is : https://widevine-dash.ezdrm.com/proxy?username=artevod_s-oualid%40artefrance.fr&contentId=HDS_139940_0-VOF&pX=BA5EDC Extra config is : {
"drm": {
"preferredKeySystems": ["com.widevine.alpha"],
"persistentSessionOnlinePlayback": true,
"advanced": {
"com.widevine.alpha": {
"videoRobustness": "SW_SECURE_CRYPTO",
"audioRobustness": "SW_SECURE_CRYPTO",
"persistentStateRequired": true
}
}
},
"offline": {
"usePersistentLicense": true
}
} In Chrome on Windows, I click on the download button, content is downloaded OK, but when I hit the play button, I observe the same : Two requests are made to the EZDRM licenses server proxy .... ? Note : I observe the same if {
"offline": {
"usePersistentLicense": true
}
} |
This makes no changes. Two requests are still made at playback time. |
I have found an error in the code, I will upload a fix soon. Thanks! |
Thanks for the analysis & PR ! |
Have you read the FAQ and checked for duplicate open issues?
Yes
If the problem is related to FairPlay, have you read the tutorial?
N/A, I am only using Widevine.
What version of Shaka Player are you using?
Latest version 4.7.6
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from
main
?Yes
Are you using the demo app or your own custom app?
Custom app, based on CastLabs's electron release (read below)
If custom app, can you reproduce the issue using our demo app?
N/A
What browser and OS are you using?
Windows, Chrome 120.0.6099.199 in VPM-signed Electron 28.1.3
For embedded devices (smart TVs, etc.), what model and firmware version are you using?
N/A
What are the manifest and license server URIs?
Manifest URI : https://boutique-arte-streams.lab.arte.tv/origin/HLS_139940_0-VOF-cenc.ism/stream.mpd
License server URI : https://widevine-dash.ezdrm.com/proxy?username=s-oualid%40artefrance.fr&contentId=HDS_139940_0-VOF&PX-BASEDC
What configuration are you using? What is the output of
player.getConfiguration()
?See below...
What did you do?
I've created a prototype of offline player for protected (by Widevine DRM) videos.
I make use of Shaka-Player (latest version 4.7.6), the DRM provider EZDRM and a special release of Electron made by CastLabs, called ECS. Electron for Content Security (ECS) is a fork of Electron created by castLabs to facilitate the use of Google's Widevine Content Decryption Module (CDM) for DRM-enabled playback within Electron, including support for Verified Media Path (VMP) and persistent license storage. It is intended to be used as a drop-in replacement for stock Electron and currently has full support for Windows and macOS platforms, with partial support for Linux (which lacks support for persistent licenses due to VMP limitations on the platform).
Note that I am using Windows.
Since the video content I want to play is production content, I am not using Widevine UAT servers accepting development clients, consequently I have to VMP-sign my electron binary for production, using CastLabs's Cloud-based EVS service :
The
electron.exe
is correctly signed :I can also check that with the following command :
To download offline content, here is basically my shaka-player setup :
Then I use
storage.store
API from shaka-player to download the contents... Everything is OK, two POST requests are made to EZDRM's widevine license server proxy, and both are successfum (HTTP code 200 returned)Here is the content in the IndexDB
shaka_offline_db
databasemanifest_v5
table :What did you expect to happen?
Now, once the download is complete, I go offline and I attempt to play the downloaded contents. I would expect no HTTP requests to be made to EZDRM's widevine licenses server proxy
I would expect playback of offline content not to require any network connection, since I have set usePersistentLicense to true and persistent license storage is supported by my VPM-signed ECS...
What actually happened?
Two requests (probably because drm.retryParameters.maxAttempts is set to 2 ?) are made, which obvisouly fails since there is no network connectivity....
Consequently, the playback of the video when offline does not work...
What could cause shaka-player to request once again license at playback time ? I can't find the reason why... (tell me if you need additional details !)
Additional observations
What I have also observed (Idk if this can be of any help ?) is that in the IndexDB "shaka_offline_db" database, the session-ids table is empty... I don't know if this is normal or not ? Where is the persistent license stored ?
The text was updated successfully, but these errors were encountered: