忘了之前是怎么获取的了 貌似是用PC浏览器切换到手机模式截取的 但是目前PC浏览器播放不了视频了 也就获取不到视频实际地址 还有个貌似可行方案有点复杂 借助火狐浏览器PC端调试手机火狐浏览器的方法截取 莫非之前就是这样做的?
以下给代码:
$channel = $cfg['config']['phonefp'];//YY频道号 如:22490604/22490604
$url = "http://interface.yy.com/hls/get/0/{$channel}?appid=0&excid=700&type=m3u8&isHttps=0&callback=jsonp1";
//echo $url;exit;
//exit($url);
$ch = curl_init(); //初始化curl
curl_setopt($ch, CURLOPT_URL, $url); //设置请求链接
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 将curl_exec()获取的信息以文件流的形式返回,而不是直接输出
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //使用自动跳转
curl_setopt($ch, CURLOPT_MAXREDIRS, 15); //指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的。
curl_setopt($ch, CURLOPT_HEADER, 0); // 如果你想把一个头包含在输出中,设置这个选项为一个非零值
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"); //模拟用户使用的浏览器
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //在发起连接前等待的时间,如果设置为0,则无限等待
curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时限制防止死循环
curl_setopt($ch, CURLOPT_REFERER, 'http://wap.yy.com');
$buffer = curl_exec($ch); //执行一个curl会话
curl_close($ch); // 关闭句柄
$buffer = trim(str_replace('jsonp1', '', $buffer), '()');
//print_r($buffer);exit;
$buffer = json_decode($buffer, TRUE);
$video_html = '<video src="'.$buffer['hls'].'" controls="" x5-playsinline="" playsinline="" webkit-playsinline="" poster="" preload="auto" width="100%" height="100%"></video>';
网友评论