google / google/ExoPlayer

DASH download fails if last segment request throws a 404

Open
#7,142 3 comments 0 reactions 1 assignee Assigned to @tonihei View on GitHub
bad media bug low priority
Dominant language
Java
Stars
21.9k
Forks
6k
PR merge metrics
No merged PRs in 30d

Description

Issue description:
-----------------------
I am trying to download DRM protected video and play offline.
I Download the demo app from (https://github.com/google/ExoPlayer.git) and run the app. its seems secure widevine cannot be downloaded, then l found out that there is check in #getDownloadUnsupportedStringId() in #SampleChooserActivity.java which is preventing to download the media. After updating I am able to download.
- ### Issue:
i update the media.exolist.json file as follow

````
{
"name": "WV: Secure SD (cenc,MP4,H264)",
"uri": "https://test-encoding-bucket.s3-us-west-1.amazonaws.com/offline-playback/test3/manifests/sd/stream.mpd",
"drm_scheme": "widevine",
"drm_license_url": "https://wv.service.expressplay.com/hms/wv/rights/?ExpressPlayToken=BQASiLwdKdYAJDQ4OTA2MmYxLTEyNDItNDA4NS04NjM1LTA3ODg3MmExZjcwMAAAAGDdO5QYUXr_lh5BdTBUQ5FYieOdpIZcxkg9MunapzD9hrYSJQzCZ6w7KbCdqIzUIrEKiOn1ouWk1neCAC9PS0l7l6lwaNtf75pMB1pvAtvxUX1pVlWtGZWp23GhLagj3L_LULZRg3-ImRnCKEv1Lk_5_TwJ6Q"
},
````
Then play the app and click on download icon of (#WV: Secure SD (cenc, MP4,H264)). There is selection dialog and then Downloading start. At the end when downloading is about to complete its throws an error

````
2020-03-25 17:14:31.813 3604-3734/com.google.android.exoplayer2.demo E/DownloadManager: Task failed: dash:https://test-encoding-bucket.s3-us-west-1.amazonaws.com/offline-playback/test3/manifests/sd/stream.mpd, false
com.google.android.exoplayer2.upstream.HttpDataSource$InvalidResponseCodeException: Response code: 404
at com.google.android.exoplayer2.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:300)
at com.google.android.exoplayer2.upstream.TeeDataSource.open(TeeDataSource.java:53)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.openNextSource(CacheDataSource.java:487)
at com.google.android.exoplayer2.upstream.cache.CacheDataSource.open(CacheDataSource.java:288)
at com.google.android.exoplayer2.upstream.cache.CacheUtil.readAndDiscard(CacheUtil.java:306)
at com.google.android.exoplayer2.upstream.cache.CacheUtil.cache(CacheUtil.java:210)
at com.google.android.exoplayer2.offline.SegmentDownloader.download(SegmentDownloader.java:152)
at com.google.android.exoplayer2.offline.DownloadManager$Task.run(DownloadManager.java:1290)

````

I cannot figuring out whats going wrong . other google secure .mpd streams downloaded successfully but my file did not.

### Second
if possible Please write an demo app where the secure stream downloaded and playback.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.