本帖最后由 逗啊逗 于 2017-1-10 15:01 编辑
有段时间没发帖了,来一篇百度网盘视频解析的教程。 感觉教程不太难,就用图文的方式吧:
首先,登陆自己的百度网盘,随便打开一个视频播放。
F12,点一下network,在下面搜一下文件名,找到streaming?path=..的这个文件,
这个就是百度网盘云端转码后的视频,格式m3u8的,有这个文件就可以播放了。
用代码实现以下读取这个文件:
[PHP] 纯文本查看 复制代码 <?php
header("Content-Type:text/html;charser=UTF-8");
// 初始化
$curl = curl_init();
// 要访问的网址
curl_setopt($curl, CURLOPT_URL, 'https://pan.baidu.com/api/streaming?path=%2Fvideo%2F%E9%AC%BC%E5%90%B9%E7%81%AF%E4%B9%8B%E7%B2%BE%E7%BB%9D%E5%8F%A4%E5%9F%8E%2FEP15.mp4&type=M3U8_FLV_264_480&app_id=250528&t=0.32432524021714926');
// 设置来路
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 降结果保存在$result中
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 降结果保存在$result中
$result = curl_exec($curl);
// 关闭
curl_close($curl);
echo $result;
?>
出现错误提示{"errno":-6,"request_id":221785833888917825}说明需要添加cookie
需要在代码中填上自己的cookie:
[PHP] 纯文本查看 复制代码 $header[]= 'Cookie:PANWEB=1; bdshare_firstime=1------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------';
再试一下:
好了。
尝试播放一下这个文件
发现播放不了,这是什么原因呢?就是上面这个crossdomain.xml文件,在跨域调用资源的时候,只允许文件里面的域名访问(框起来的就是),这时候播放就不能用自己的播放器了可以选择百度自己的播放器:http://ubmcmms.baidu.com/media/v1/0f000AsdQWMkVLkX374w40.swf?file=
还是播放不了,原因是我们自己的网站没有crossdomain.xml文件,在网站根目录传一个crossdomain.xml文件允许所有域名访问。
[XML] 纯文本查看 复制代码 <?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
看看这回这么样:
成功了。
到这里基本就结束了,收尾工作就是写一个通用的代码,想播放那个视频就播放那个视频,回过头看最开始那个streaming文件的地址https://pan.baidu.com/api/streaming?path=%2Fvideo%2F%E9%AC%BC%E5%90%B9%E7%81%AF%E4%B9%8B%E7%B2%BE%E7%BB%9D%E5%8F%A4%E5%9F%8E%2FEP15.mp4&type=M3U8_FLV_264_480&app_id=250528&t=0.32432524021714926。
url解码一下:
https://pan.baidu.com/api/streaming?path=/video/鬼吹灯之精绝古城/EP15.mp4&type=M3U8_FLV_264_480&app_id=250528&t=0.32432524021714926
红字部分就是网盘的文件地址,所以改一下代码,就可以变成通用的解析,就是把地址改成http://pan.baidu.com/api/streaming?path='.$_GET['id'].'&type=M3U8_FLV_264_480&app_id=250528&t=0.18165189120918512
这样就算完成了。
源码放在下面:
使用方法就是先把cookie改成自己的,在把文件传到自己的空间就行,本地也可以,不过需要php环境,然后记得修改crossdomain.xml,没有的可以按照我上面写的新建一个,调用就直接浏览器输入http://你的地址/baidu?id=/百度文件的位置/文件.mp4
播放则是输入http://ubmcmms.baidu.com/media/v1/0f000AsdQWMkVLkX374w40.swf?file=http://你的地址/baidu.php?id=/百度文件的位置/文件.mp4
教程结束。
另外:这是电脑端播放,手机端提取到m3u8文件就可以直接播放了,不用额外的操作了。
源码.zip
(565 Bytes, 下载次数: 903)
|