-
Notifications
You must be signed in to change notification settings - Fork 390
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
Offline DASH Widevine issue with ContentProtection #512
Comments
@icbaker Have you seen this before? it looks the |
I tried reproducing with the provided media and license URLs, with a VPN set up through the suggested location, but I received an HTTP 400 error from the license server when trying streaming playback. However I was able to generate the stack trace in the original comment when trying to download the content. The problem is that
You can see that the Widevine and PlayReady entries have In the demo app we have a check to ensure at least one of the media/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java Lines 204 to 213 in 5328d64
media/demos/main/src/main/java/androidx/media3/demo/main/DownloadTracker.java Lines 325 to 336 in 5328d64
This check passes because it finds the CENC one, so no error is logged at this point and control flow continues. Unfortunately later in media/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManager.java Lines 476 to 482 in 5328d64
media/libraries/exoplayer/src/main/java/androidx/media3/exoplayer/drm/DefaultDrmSessionManager.java Lines 759 to 783 in 5328d64
As a quick hack I tried copying the data from the CENC
So I think there's two things here:
|
This code is Widevine specific. `OfflineLicenseHelper.downloadLicense` requires the passed `Format` to have a `DrmInitData.SchemeData` with Widevine UUID and non-null `data` field. The demo app tries to check this in advance (to avoid an exception later), but its checks are looser than those made by `OfflineLicenseHelper`. This change tightens the checks to match. Issue: #512 PiperOrigin-RevId: 549587506
This code is Widevine specific. `OfflineLicenseHelper.downloadLicense` requires the passed `Format` to have a `DrmInitData.SchemeData` with Widevine UUID and non-null `data` field. The demo app tries to check this in advance (to avoid an exception later), but its checks are looser than those made by `OfflineLicenseHelper`. This change tightens the checks to match. Issue: androidx/media#512 PiperOrigin-RevId: 549587506
This code is Widevine specific. `OfflineLicenseHelper.downloadLicense` requires the passed `Format` to have a `DrmInitData.SchemeData` with Widevine UUID and non-null `data` field. The demo app tries to check this in advance (to avoid an exception later), but its checks are looser than those made by `OfflineLicenseHelper`. This change tightens the checks to match. Issue: androidx/media#512 PiperOrigin-RevId: 549587506 (cherry picked from commit b7988e2)
This code is Widevine specific. `OfflineLicenseHelper.downloadLicense` requires the passed `Format` to have a `DrmInitData.SchemeData` with Widevine UUID and non-null `data` field. The demo app tries to check this in advance (to avoid an exception later), but its checks are looser than those made by `OfflineLicenseHelper`. This change tightens the checks to match. Issue: #512 PiperOrigin-RevId: 549587506 (cherry picked from commit 1ccedf8)
This code is Widevine specific. `OfflineLicenseHelper.downloadLicense` requires the passed `Format` to have a `DrmInitData.SchemeData` with Widevine UUID and non-null `data` field. The demo app tries to check this in advance (to avoid an exception later), but its checks are looser than those made by `OfflineLicenseHelper`. This change tightens the checks to match. Issue: androidx/media#512 PiperOrigin-RevId: 549587506 (cherry picked from commit b7988e2)
Version
ExoPlayer 2.18.3
More version details
No response
Devices that reproduce the issue
Reproducible on all devices.
Devices that do not reproduce the issue
--
Reproducible in the demo app?
Yes
Reproduction steps
We have identified a problem with the download-to-go feature for DASH content protected with Widevine DRM but without encryption headers. The stream can be downloaded successfully after obtaining the manifest. However, when we try to retrieve the key set ID for the downloaded license, an exception is thrown.
The ContentProtection segment in the manifest appears as follows:
The demo app is also encountering the same error. However, the same content can be played online without any issues.
Is there an issue within Exoplayer? Or it's something which should be done on the provider level?
The license is retrieved using OfflineLicenseHelper.
Expected result
License and offline content can be obtained.
Actual result
Media
The manifest and licenseURL have been sent in the email for further investigation, but the content has geo blockage.
Bug Report
adb bugreport
to [email protected] after filing this issue.The text was updated successfully, but these errors were encountered: