Ios 在播放HTTP流时QuickTime Player(或实际上是CoreMedia)是如何工作的?
我在分析TVB(香港)的直播电视流媒体 众所周知,要观看它们的url有:Ios 在播放HTTP流时QuickTime Player(或实际上是CoreMedia)是如何工作的?,ios,stream,live,quicktime,television,Ios,Stream,Live,Quicktime,Television,我在分析TVB(香港)的直播电视流媒体 众所周知,要观看它们的url有: 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 我们可以在任何苹果原生软件(如QuickTime、Safari)中直接通过上面的url观看,
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
我们可以在任何苹果原生软件(如QuickTime、Safari)中直接通过上面的url观看,无论是Mac还是iOS。也知道他们正在使用AppleComedia框架。但它在其他平台上不起作用。您将获得HTTP 200,但内容中的“访问被拒绝”。
我分析了所有关于它的流量。我发现(由CoreMedia)到端点(服务器真正提供视频)的HTTP请求包含一个标头:
x-playback-session-id: xxxxx
无论用户代理是什么,在我手动添加标题(我在Chrome或Firefox中尝试过)后,视频到达,而不是“拒绝访问”消息。但出现的问题是,在我转储的流量中,我找不到任何其他地方在以前的请求中包含此标头(因为它重定向了几次)。所以我很好奇AppleMediaCore在播放http流时做了什么?它计算了会话id(或散列)还是从我错过的某个地方得到了id
p、 我不确定TVB是否进行IP检查。因为他们有版权或法律问题,所以可能被阻止从某处访问。你可能需要一个VPN。我终于找到了答案。x-playback-session-id是来自AVPlayer框架的UUID。但事实上,这不会影响我是否得到代币。真正的令牌是HTTP cookie 我发现的授权流程: