以人人视频播放页URL http://rr.tv/#/video/172278 为例,说下真实地址解析过程。
显然,从播放页URL中可以得到一个ID:172278,这就是视频ID.
接着,调用接口 http://web.rr.tv/v3plus/video/getVideoPlayLinkByVideoId 以视频ID为表单参数发个POST请求:
video_id = 172278
api_url = 'http://api.rr.tv/v3plus/video/getVideoPlayLinkByVideoId'
r = requests.post(api_url, data={'videoId': video_id})
print r.content
上述请求返回的结果如下:
{"code":"0001","msg":"您的客户端版本过低,请尽快更新!","data":{}}
经过排查发现,请求header中需要带上如下客户端版本信息:
headers = {
'clientVersion': '0.1.0',
'clientType': 'web',
}
这些客户端信息可以在 http://rr.tv/static/js/app.576fc11b501f0b441c14.js 这个js文件中找到。
POST请求加上header后的返回结果如下:
{"code":"0000","msg":"","data":{"playLink":"http://qcloud.rrmj.tv/2017/06/05/344109295cd24560b55e7d1bc3fe6350.mp4.f40.mp4?sign=55eae555781939317c9eb7fe794f9c6e&t=59354d8a"}}
data中的playLink即为视频真实地址。