Akamai的自定义接收器和Cookie

时间:2014-09-17 12:39:40

标签: cookies google-cast akamai custom-receiver hls

我遇到了Akamai的HLS问题。 我正在使用Akamai的HLS和令牌,为了开始流,应该在主m3u8播放列表响应后设置Cookie。

Akamai的回应:

Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:*
Access-Control-Expose-Headers:Content-Type
Cache-Control:max-age=0, no-cache, no-store
Connection:keep-alive
Content-Length:818
Content-Type:application/vnd.apple.mpegurl
Date:Wed, 17 Sep 2014 12:15:54 GMT
Expires:Wed, 17 Sep 2014 12:15:54 GMT
Mime-Version:1.0
Pragma:no-cache
Server:AkamaiGHost
Set-Cookie:_alid_=/cropped/
Set-Cookie:hdntl=/cropped/

我在两个场景中重写Host.updateManifestRequestInfo都有一个死胡同。

如果您使用requestInfo.withCredentials = true;,则回复为:

XMLHttpRequest cannot load /*MEDIA_URL*/. A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true. Origin '/*PLAYERS_HOST*/' is therefore not allowed access. 

requestInfo.withCredentials = false;将是403响应。

使用令牌从Akamai实施HLS自定义播放器的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

我知道这是一篇非常古老的文章,但如果有人在未来遇到同样的问题:如果您将withCredentials设置为true,那么Akamai的回复必须通过其CORS标头明确授权您的ChromeCast接收器。

请让Akamai将您的接收器域添加到他们的CORS中,问题将得到解决。有关详细信息,请查看此页面:https://developers.google.com/cast/docs/player

答案 1 :(得分:0)

您需要编写自定义接收器(使用MPL)并使用主机覆盖updateManifestRequestInfo / updateSegmentRequestInfo以实现所需的行为。