可能由于为了加大版权保护力度,B站最近频繁更新视频解析协议。
好的,现在说一下近三天的研究成果:
B站的flash播放器解析地址为
https://interface.bilibili.com/playurl?cid=15198665&player=1&quality=3&sign=4813bc613d8cf780be68fba66ace8ac6&ts=1489910308
cid就是视频文件的一个id值,player=1表示这个是flash播放器,ts是时间戳,otype可以为json或xml,quality为清晰度,sign是签名
先着重说一下sign
这个就是前面的那些值合并后加密形成的,必填,错误则
{"code":-5003,"result":"checksum error"}
嗯就是这样。
sign的算法:
<?php function get_sign($params, $key){ $_data = array(); ksort($params); reset($params); foreach ($params as $k => $v) { $_data[] = $k . '=' . rawurlencode($v); } $_sign = implode('&', $_data); return array('sign' => strtolower(md5($_sign . $key)), 'params' => $_sign); }
大概就是将所有的参数排