当我们从头条视频抓取视频播放地址的时候,通常返回的是一个web页面的URL,想要使用AVPlayerLayer来播放的时候肯定是不行的,然后我们需要去解析对应的webUrl来获取真实的播放地址。
下面以这个url为例;
http://www.365yg.com/a6484155127056826894/#mid=69636596635
使用AF get请求这个url,返回的数据是NSData类型,然后转换为NSString,
会是一大托html字符串下面这些东西,然后我们找关键信息,我们会发现能找到这个视频的id。
2AD02068-CCAA-430B-B71A-0EEBCE62FD9E.png
然后使用正则来找到这个videoId,
F52C8275-3FB7-41EA-A308-A9C89B5F917F.png
#define URL_VIDEO @"/video/urls/v/1/toutiao/mp4/%@?r=%@"
#define HOST_VIDEO @"http://i.snssdk.com"
然后拼接一下主要参数,[self getRandom]是生成一个随机16位数
使用crc32 生成一个加密数字,拼接完成之后直接打开这个地址或者使用AF请求下是个JSON格式的数据
image.png
然后使用网页打开这个网页,会返回一个json,
FED7391B-5AA9-477F-909C-FCF923EF75CE.png
这个main_url 对应的就是我们需要的真实播放地址,但是数据是加密的,使用Base64解密下得到真实地址 ,这个播放地址是有有效期的 暂时不知道多少,所以最好每次播放的都重新解析下