正文  软件开发 > PHP编程技术 >

百度网盘视频解析,获取真实源地址,视频解析

百度网盘视频解析,获取真实源地址,视频解析最近在研究百度网盘的视频解析,目的是找出网盘视频的真实源地址。百度网盘对于超过1G的文件需要通过网盘客户端下载,通过抓包研究,可下载源视频有以下4个渠道:...

百度网盘视频解析,获取真实源地址,视频解析

最近在研究百度网盘的视频解析,目的是找出网盘视频的真实源地址。百度网盘对于超过1G的文件需要通过网盘客户端下载,通过抓包研究,可下载源视频有以下4个渠道: 一、https://pan.baidu.com/s/视频地址 这是分享后的视频地址

找到视频源解析地址: 接口地址:https://pan.baidu.com/share/streaming 请求方式:GET,需带登录后的百度网盘COOKIE 参数:channel、uk、path、sign、timestamp、shareid、type 说明: channel=chunlei (固定写死) uk、path、sign、timestamp、shareid在源代码可以采集到 type为视频类型和清晰度 视频解析出来是m3u8格式 注:有时会出现验证码,所以做程序自动化解析比较难,而且分享的视频会被限速,如发现恶意应用也可能会被百度封停分享地址; 二、https://pan.baidu.com/play/video#video/path=视频地址 这是未分享的视频地址,通过PC端网盘抓包的接口也一样 找到视频源解析地址: 接口地址:https://pan.baidu.com/api/download 请求方式:GET,需带登录后的百度网盘COOKIE 请求参数:timestamp、sign、fidlist、type 说明: timestamp可以在页面源代码中采集; sign需要取得sign3和sign1后(sign3和sign1在页面源代码中采集 ),通过sign2的加密算法并base64后得到; 下面给出sign的php实现算法:
function s($j,$r)
{   $a = array();   $p = array();   $o = "";   $v = strlen($j);   $j = str_split($j,1);   for($q=0;$q<256;$q++)
  {     $a[$q] = charCodeAt($j[$q%$v]);     $p[$q]=$q;   }
  for($u=$q=0;$q<256;$q++)
  {     $u=($u+$p[$q]+$a[$q])%256;     $t=$p[$q];     $p[$q]=$p[$u];     $p[$u]=$t;   }
  for($i=$u=$q=0;$q<strlen($r);$q++)
  {     $i=($i+1)%256;     $u=($u+$p[$i])%256;     $t=$p[$i];     $p[$i]=$p[$u];     $p[$u]=$t;     $k=$p[(($p[$i]+$p[$u])%256)];     $r2 = str_split($r,1);     $o.=fromCharCode(charCodeAt($r2[$q])^$k);   }   return base64_encode($o); } function charCodeAt($str)
{   $ret = mb_convert_encoding($str, ‘UTF-32BE‘, ‘UTF-8‘);   return hexdec(bin2hex($ret)); } function fromCharCode($codes)
{   if (is_scalar($codes))     $codes= func_get_args();   $str= ‘‘;   foreach ($codes as $code)     $str.= chr($code);   return $str; }
sign=s($sign3,$sign1); fidlist值是视频ID值的集合,例如视频ID为1157929130,fidlist就是[1157929130],当取多视频时就是[1157929130,1157929131,1157929132],视频ID可以通过列表接口获得: http://pan.baidu.com/api/list?dir=%2F&num=100&order=time&desc=1&clienttype=0&showempty=0&page=1 type值写死dlink 最后请求返回json结果,其中dlink就是我们要的视频真实源地址: 三、http://developer.baidu.com/wiki/index.php?title=docs/pcs/rest/file_data_apis_list 百度开发者中心-PCS接口,目前暂停开放; 四、https://pan.baidu.com/platform/read 百度网盘开放平台-目前只支持AndroidSDK

http://www.bkjia.com/PHPjc/1224372.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1224372.htmlTechArticle百度网盘视频解析,获取真实源地址,视频解析 最近在研究百度网盘的视频解析,目的是找出网盘视频的真实源地址。百度网盘对于超过...