爱奇艺(奇艺果)的解析源码
<?php
define('NAME_PATH', 'data/name/'); //文件名称的目录
define('COOKIE_IQIYI','P00001=');
header('Pragma:no-cache');
header("Expires:-1");
$url = $_GET['url'];
$html = file_get_contents($url);
//preg_match('##',$html,$bool);
preg_match('#\"tvId\":(.*?),#',$html,$tvid);
preg_match('#\"vid\":\"(.*?)\",#',$html,$vids);
$member = '';//是否为付费视频
$vid = $vids[1];
$tvid = $tvid[1];
$t = time()*1000;
$src = "76f90cbd92f94a2e925d83e8ccd22cb7";
$key = "d5fb4bd9d50c4be6948c97edd7254b0e";
$sc = md5($t.$key.$vid);
$url = "https://cache.m.iqiyi.com/jp/tmts/$tvid/$vid/?t=$t&sc=$sc&src=$src";
$content = curl($url,COOKIE_IQIYI);
$content = preg_replace("#var tvInfoJs=#","",$content);
$json = json_decode($content,true);
$data = $json['data'];
$vidl = $data['vidl'];
foreach($vidl as $key => $value){
$type = $value['vd'];
if($type==14||$type==17||$type==21||$type==1||$type==96){//过滤 H265(m3u8不支持h265编码格式)和低画质视频(流畅 标清)
continue;
}
$m3u = $value['m3u'];
}
$url = $m3u;
function is_ipad() {
$user_agent = strtolower($_SERVER['HTTP_USER_AGENT']); //获取浏览器信息
preg_match("#(ipad|iphone|mac|ios|linux|android|ipod)#", $user_agent, $bool);
$isiPad = empty($bool[1]) ? false : true; //是否为移动端
return $isiPad;
}
function curl($url, $cookie = "") {
$params["ua"] = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
$params["ip"] = "14.21.98.117";//伪装为固定IP,否则会报异地登录,会封号,不要更改
$params["cookie"] = $cookie;
$params["ref"] = "https://www.iqiyi.com";
//$params["proxy"] = PROXY;
return iqiyi_curl($url,$params);
}
function iqiyi_curl($url, $params = array()) {
$ip = empty($params["ip"]) ? rand_ip() : $params["ip"];
$header = array('X-FORWARDED-FOR:'.$ip,'CLIENT-IP:'.$ip);
if(isset($params["httpheader"])){
$header = array_merge($header,$params["httpheader"]);
}
$referer = empty($params["ref"]) ? $url : $params["ref"];
$user_agent = empty($params["ua"]) ? $_SERVER['HTTP_USER_AGENT'] : $params["ua"] ;
$ch = curl_init(); //初始化 curl
curl_setopt($ch, CURLOPT_URL, $url); //要访问网页 URL 地址
curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //伪装来源 IP 地址
curl_setopt($ch, CURLOPT_REFERER, $referer); //伪装网页来源 URL
curl_setopt($ch, CURLOPT_USERAGENT,$user_agent); //模拟用户浏览器信息
curl_setopt($ch, CURLOPT_NOBODY, false); //设定是否输出页面内容
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //返回字符串,而非直接输出到屏幕上
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, false); //连接超时时间,设置为 0,则无限等待
curl_setopt($ch, CURLOPT_TIMEOUT, 3600); //数据传输的最大允许时间超时,设为一小时
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY); //HTTP验证方法
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不检查 SSL 证书来源
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不检查 证书中 SSL 加密算法是否存在
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //跟踪爬取重定向页面
curl_setopt($ch, CURLOPT_AUTOREFERER, true); //当Location:重定向时,自动设置header中的Referer:信息
curl_setopt($ch, CURLOPT_ENCODING, ''); //解决网页乱码问题
curl_setopt($ch, CURLOPT_HEADER, empty($params["header"])?false:true); //不返回 header 部分
if(!empty($params["fields"])){
curl_setopt($ch, CURLOPT_POST, true); //设置为 POST
curl_setopt($ch, CURLOPT_POSTFIELDS,$params["fields"]); //提交数据
}
if(!empty($params["cookie"])){
curl_setopt($ch, CURLOPT_COOKIE, $params["cookie"]); //从字符串传参来提交cookies
}
if(!empty($params["proxy"])){
curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); //代理认证模式
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); //使用http代理模式
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, "58.251.230.220:9797"); //代理服务器地址 host:post的格式
if(!empty($params["proxy_userpwd"])){
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $params["proxy_userpwd"]); //http代理认证帐号,username:password的格式
}
}
$data = curl_exec($ch); //运行 curl,请求网页并返回结果
curl_close($ch); //关闭 curl
return $data;
}
function rand_ip() {
$ip_long = array(array('607649792', '608174079'), //36.56.0.0-36.63.255.255
array('1038614528', '1039007743'), //61.232.0.0-61.237.255.255
array('1783627776', '1784676351'), //106.80.0.0-106.95.255.255
array('2035023872', '2035154943'), //121.76.0.0-121.77.255.255
array('2078801920', '2079064063'), //123.232.0.0-123.235.255.255
array('-1950089216', '-1948778497'), //139.196.0.0-139.215.255.255
array('-1425539072', '-1425014785'), //171.8.0.0-171.15.255.255
array('-1236271104', '-1235419137'), //182.80.0.0-182.92.255.255
array('-770113536', '-768606209'), //210.25.0.0-210.47.255.255
array('-569376768', '-564133889') //222.16.0.0-222.95.255.255
);
$rand_key = mt_rand(0, 9);
$ip = long2ip(mt_rand($ip_long[$rand_key][0], $ip_long[$rand_key][1]));
return $ip;
}
$wap = preg_match("/(iPhone|iPad|iPod|Linux|Android)/i", strtoupper($_SERVER['HTTP_USER_AGENT']));
if($wap){
$datainfo['success'] = '1';
$datainfo['type'] = '';
$datainfo['play'] = 'h5mp4';
$datainfo['url'] = $url;
}else{
$datainfo['success'] = '1';
$datainfo['type'] = '';
$datainfo['play'] = 'hls';
$datainfo['url'] = $url;
}
$json_data=json_encode($datainfo);
echo $json_data;
?>
如果你觉得雨滴资源网对你有帮助的话,可以小小的打赏一下小站,用于维持本站的运营!
版权声明:雨滴资源网内容来源于互联网,如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
本文链接:爱奇艺(奇艺果)的解析源码 - https://www.yudzy.com/89.html
失效提示:此文更新于2018-8-21,如果文章内容或图片资源失效,请留言反馈,客服会及时处理,谢谢!


