google / ExoPlayer

This project is deprecated and stale. The latest ExoPlayer code is available in https://github.com/androidx/media
https://developer.android.com/media/media3/exoplayer
Apache License 2.0
21.7k stars 6.02k forks source link

HTTP 302 on HLS playback. #355

Closed seventhmoon closed 9 years ago

seventhmoon commented 9 years ago

I got some problem when the server return a HTTP redirect (302) before before the actual HLS m3u8 playlist. The player seems does not following the redirect.

Below links are playable on VLC, but not on ExoPlayer directly. However, playable if I get the redirected link manually. {"http://token.tvb.com/stream/live/hls/mobilehd_hdj.smil", "http://token.tvb.com/stream/live/hls/mobilehd_j2.smil", "http://token.tvb.com/stream/live/hls/mobilehd_inews.smil"};

Issue found on Nexus Player (5.0) and Nexus 6 (5.1). Sometimes, the app (demo) can play the clip once, but not any more.

ojw28 commented 9 years ago

We do handle redirection. For me at least, these URLs redirect to a 403, and so playback failure is working as intended. Using CURL, I see the original URL returning a 302 redirect:

curl -i http://token.tvb.com/stream/live/hls/mobilehd_hdj.smil
HTTP/1.1 302 Found
Date: Fri, 13 Mar 2015 11:21:00 GMT
Server: Apache/2
X-Powered-By: PHP/5.3.21
Location: http://e1.vdowowza.vip.hk1.tvb.com/mytvlive/smil:mobilehd_hdj.smil/playlist.m3u8?ts=1426245660&sig=5c90e1b61e91ef4e4dc709508611bc18
Vary: Accept-Encoding
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8

and the new URL returning a 403:

curl -i http://e1.vdowowza.vip.hk1.tvb.com/mytvlive/smil:mobilehd_hdj.smil/playlist.m3u8?ts=1426245660&sig=5c90e1b61e91ef4e4dc709508611bc18
[1] 21164
olly@ollyz600:/usr/local/google/bigdisk/git5/google3$ HTTP/1.1 403 Forbidden
Accept-Ranges: bytes
Server: WowzaStreamingEngine/4.1.1
Content-Length: 0

Do I need to do something to not get a 403? What's the actual failure you see (in the device logs) when you try this?

seventhmoon commented 9 years ago

no error shown. playback state is ready. just like the video is still loading.

seventhmoon commented 9 years ago

one more, the clip can play but is black screen with audio sometimes. should i open a new issue for this?

ojw28 commented 9 years ago

Can you first explain why I see a 403 when hitting the URL to which the example redirects? Until we have a test stream where we can successfully retrieve the manifest, there's not much we can do.

ojw28 commented 9 years ago

Closing issue due to inadequate reproduction steps. Please re-open if you can provide more information.

nhjm449 commented 7 years ago

@ojw28: This is old, and I have no idea if this is/was an actual issue, but I'd like to point out that the reason your curl command failed is that you did not quote the URL, causing your shell to interpret the & as a request to run the process in the background, so the entire sig parameter was not submitted to the remote server. (Sorry for poking an old issue!)