php实现百度网盘视频解析

图片[1]-php实现百度网盘视频解析-曙光学习苑

首先,登陆自己的百度网盘,随便打开一个视频播放。
F12,点一下network,在下面搜一下文件名,找到streaming?path=..的这个文件,
这个就是百度网盘云端转码后的视频,格式m3u8的,有这个文件就可以播放了。
用代码实现以下读取这个文件:

<?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

图片[2]-php实现百度网盘视频解析-曙光学习苑

需要在代码中填上自己的cookie:

$header[]= 'Cookie:PANWEB=1; bdshare_firstime=1------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------';

再试一下:

图片[3]-php实现百度网盘视频解析-曙光学习苑

好了。尝试播放一下这个文件

图片[4]-php实现百度网盘视频解析-曙光学习苑

发现播放不了,这是什么原因呢?就是上面这个crossdomain.xml文件,在跨域调用资源的时候,只允许文件里面的域名访问(框起来的就是),这时候播放就不能用自己的播放器了可以选择百度自己的播放器:http://ubmcmms.baidu.com/media/v1/0f000AsdQWMkVLkX374w40.swf?file=

图片[5]-php实现百度网盘视频解析-曙光学习苑

还是播放不了,原因是我们自己的网站没有crossdomain.xml文件,在网站根目录传一个crossdomain.xml文件允许所有域名访问。

<?xml version="1.0"?>
<cross-domain-policy>
  <allow-access-from domain="*" />
</cross-domain-policy>

看看这回这么样:

图片[6]-php实现百度网盘视频解析-曙光学习苑

成功了。
到这里基本就结束了,收尾工作就是写一个通用的代码,想播放那个视频就播放那个视频,回过头看最开始那个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

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容