DownloadRequest.toMediaItem always discards keySetId
- Dominant language
- Java
- Stars
- 21.9k
- Forks
- 6k
- PR merge metrics
- No merged PRs in 30d
Description
### Problem
The method is defined as follows:
https://github.com/google/ExoPlayer/blob/0ba317b1337eaa789f05dd6c5241246478a3d1e5/library/core/src/main/java/com/google/android/exoplayer2/offline/DownloadRequest.java#L225-L234
However, `MediaItem.Builder` constructs the `MediaItem` in the following way:
https://github.com/google/ExoPlayer/blob/02f7aafe67b4893134a31ea55a3ba0f0535df145/library/common/src/main/java/com/google/android/exoplayer2/MediaItem.java#L578-L588
Hence `drmKeySetId` is never applied because `drmUuid` was never set. This makes it confusing in the least. `.toMediaItem` should accept a DRM UUID to prevent this from happening, or `.toMediaItem` should never set `drmKeySetId` since it implies it has any significance.
### Workaround
Not using `.toMediaItem` and setting all values manually, like so:
```java
new MediaItem.Builder()
.setMediaId(download.request.id)
.setUri(download.request.uri)
.setCustomCacheKey(download.request.customCacheKey)
.setMimeType(download.request.mimeType)
.setStreamKeys(download.request.streamKeys)
.setDrmKeySetId(download.request.keySetId)
// has to be added to overcome ignoring of `keySetId`
.setDrmUuid(C.WIDEVINE_UUID)
.build();
```
Contributor guide
Assessment
This issue has not been assessed yet.