Start a new topic

Akamai HLS Mozilla, IE problem

Viblast player can't play hls (akamai stream with token) stream on mozilla and internet explorer.


1 person has this problem

Hi,


Is the stream CORS enabled?

Can you play the stream with Chrome?

Can you share the stream url?


Do you have any commets for this?

Hi Mehmet,


Your infrastructure is not configured very well, so the different browsers behave differently. We tested with Safari, Firefox and Chrome. Chrome worked well and the stream was playing.

Safari requested playlist.m3u8 and got redirected to master.m3u8. Then it tried an OPTIONS request for this resource and got response 501 (Not Implemented).

Firefox requested playlist.m3u8 and got redirected to master.m3u8 (same as Chrome and Safari). Then it received master.m3u8 and tried the first variant of the playlist: index_1_av-p.m3u8 but failed to download it - it got 403 (Forbidden).


Viblast Player fetches the stream entirely via JS and if you haven't configured CORS properly, it will fail to play the stream due to HTTP issues.


Best regards,

Stefan


Hi

Akamai is one of the most popular streaming platform in USA. They have complex infrastructure, but the same stream is working well in all android devices, iOS devices and JW Player on web. The problem is that the streams are protected with token (and it looks like this: ?hdnts=st=1370627194~exp=1370627409~acl=/ *~hmac=6a10b3f602ffde88c02cd1b89665bfdfdc0fc84c3cf7049752931ad732654fab) and that token need to be send for each .ts request, not only for the master.m3u8 request. Please see the attached images from chrome and firefox to see the difference. Chrome is sending the tokens, firefox is not.

Regards

Any progress?

Hi,


As we mentioned before, it seems like your server is not properly configured:

Please, find a comparison of the browsers requests/responses:

Firefox:

Original request:

http://unsecure.streann.com/loadbalancer/services/public/channels/56e7dcc1e4b0479026fe88e2/playlist.m3u8

Redirect to:

"http://streannlive-lh.akamaihd.net/i/TestAkamai15_1@389542/master.m3u8?customtoken=304c201b-6960-4672-816f-7b1a07ef5cde&hdnts=exp=1470553895~acl=/*~hmac=7563a5cb0ddb9c8063371bfa20979aaef724daf17950ac169c5a805512b63aae&AkamaiAnalytics_debug=1&set-akamai-hlsrevision=4&set-segment-duration=responsive"


Request after redirect:

http://streannlive-lh.akamaihd.net/i/TestAkamai15_1@389542/master.m3u8?customtoken=304c201b-6960-4672-816f-7b1a07ef5cde&hdnts=exp=1470553895~acl=/*~hmac=7563a5cb0ddb9c8063371bfa20979aaef724daf17950ac169c5a805512b63aae&AkamaiAnalytics_debug=1&set-akamai-hlsrevision=4&set-segment-duration=responsive


Received playlist:

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2503000,RESOLUTION=1280x720,CODECS="avc1.66.30, mp4a.40.2"

http://streannlive-lh.akamaihd.net/i/TestAkamai15_1@389542/index_1_av-p.m3u8?sd=4&set-segment-duration=responsive&rebase=on




Chrome:

Original request:

http://unsecure.streann.com/loadbalancer/services/public/channels/56e7dcc1e4b0479026fe88e2/playlist.m3u8

Redirect to:

http://streannlive-lh.akamaihd.net/i/TestAkamai15_1@389542/master.m3u8?customtoken=ddbf0826-bb79-4c5a-ac51-edebc6c0b9ea&hdnts=exp=1470554323~acl=/*~hmac=c74dab31f803fb10ff105fdf32b9ba7969580ceadb2fa6cb4158b55704fa4365&AkamaiAnalytics_debug=1&set-akamai-hlsrevision=4&set-segment-duration=responsive”


Request after redirect:

http://streannlive-lh.akamaihd.net/i/TestAkamai15_1@389542/master.m3u8?customtoken=ddbf0826-bb79-4c5a-ac51-edebc6c0b9ea&hdnts=exp=1470554323~acl=/*~hmac=c74dab31f803fb10ff105fdf32b9ba7969580ceadb2fa6cb4158b55704fa4365&AkamaiAnalytics_debug=1&set-akamai-hlsrevision=4&set-segment-duration=responsive


Received playlist:

#EXTM3U

#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2503000,RESOLUTION=1280x720,CODECS="avc1.66.30, mp4a.40.2"

http://streannlive-lh.akamaihd.net/i/TestAkamai15_1@389542/index_1_av-p.m3u8?sd=4&set-segment-duration=responsive&rebase=on&hdntl=exp=1470640663~acl=%2f*~data=hdntl~hmac=48ba045f9cd21bf046717131a6f688e86a0a21f6d9b3f65551f04926dbb28853



As you can see, the server responds different variant playlist. When the playlist is requested by Chrome, it contains variants with tokens. This is not true when the playlist is requested by Firefox.


Also, we tested with JWPlayer. It tried to use flash with Firefox, which is different from HTML5/MSE.


Best regards,



Hi,


we noticed that too. It is weird how it works with other players. We found possible workaround: Can we change the User-Agent and set the same that Chrome is using? That way it should return valid playlist.

Regards,

Blagojco 

Hi,


It works with the other players because of the flash fallback used by them (JWPlayer). We tested with other pure HTML5 players and the result was the same. The issue is not related to the player itself, but  to the configuration of your servers. It is very aggressive. As far as I know you are not allowed to substitute the User-Agent header from JS. The better approach is to fix your servers.


Best regards,


Login to post a comment