本帖最后由 byHandsome 于 2019-7-25 01:51 编辑
<?php
/*
* 模块名称:哔哩哔哩视频解析
* 开发时间:2019年3月24日 23:57:12
* 开发者:By疯子
* 调用方式如下:
* 哔哩哔哩解析:?url=视频地址
*/
error_reporting(0);
$um=$_SERVER['HTTP_HOST'];
$url= isset($_GET['url'])?$_GET['url']:'';//获取视频ID
preg_match('|/video/(.+?[1-9]\d*)|i',$url, $video);
if(!empty($video[1]){
$url = 'https://m.bilibili.com/video/'.$video[1].'.html';
$refer = 'https://m.bilibili.com/video/'.$video[1].'.html';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过检查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 跳过检查
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30');
$output = curl_exec($ch);
curl_close($ch);
$isMatched = preg_match('/initUrl":"(.*?)",/', $output, $matches);
$videourl = str_replace('//','http://',$matches[1]);
}else{
echo '视频URL错误,请输入视频URL byHandsome';
exit();
}
echo $videourl;
反正也是闲着,就写着玩咯,跟某B站解析原理一模一样,无非就是模拟手机访问,将H5中的视频地址取出来,就是这么简单,其中也包括:虎牙、YY神曲、抖音、斗yu视频等等,都可以通过以上方式取出来。
|