解析快手视频
作者:互联网
如何解析快手视频
直接上代码
<?php
require_once 'curl.php';
$url = $_GET['url'];
if ($url==null){
echo "请输入链接";
die;
}
$data=curl($url,['loadurl'=>1]);
$data=curl($data,$paras=['ua'=>'Mozilla/5.0 (Linux; Android 10; NEO-AL00; HMSCore 5.1.1.300; GMSCore 20.15.16) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 HuaweiBrowser/11.0.4.371 Mobile Safari/537.36']);
preg_match('/type="video\/mp4" src="(.*?)" alt/',$data,$html);
$code=rand(7653465,5622555558);
if ($html[1]==null){
echo "获取失败";
die;
}
$url=file_get_contents($html[1],"r");
file_put_contents("./mp4/".$code.'.mp4',$url);
$url="http://".$_SERVER['HTTP_HOST']."/mp4/".$code.".mp4";
echo $url;
?>
curl文件内容
<?php
/*php curl的方法封装*/
function ret_json($json) {
return stripslashes(json_encode($json, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES));
}
function real_ip($type = 0) {
$ip = $_SERVER['REMOTE_ADDR'];
if ($type <= 0 && isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
foreach ($matches[0] as $xip) { if (filter_var($xip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) { $ip = $xip;
break;
}
}
} else if ($type <= 0 && isset($_SERVER['HTTP_CLIENT_IP']) && filter_var($_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else if ($type <= 1 && isset($_SERVER['HTTP_CF_CONNECTING_IP']) && filter_var($_SERVER['HTTP_CF_CONNECTING_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
$ip = $_SERVER['HTTP_CF_CONNECTING_IP'];
} else if ($type <= 1 && isset($_SERVER['HTTP_X_REAL_IP']) && filter_var($_SERVER['HTTP_X_REAL_IP'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
$ip = $_SERVER['HTTP_X_REAL_IP'];
}
return $ip;
}
function curl($url, $paras = []) { $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //curl_setopt($curl, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:'.real_ip(), 'CLIENT-IP:'.real_ip()));
if (isset($paras['Header'])) { $Header = $paras['Header'];
} else {
$Header[] = "Accept:*/*"; $Header[] = "Accept-Encoding:gzip,deflate,sdch"; $Header[] = "Accept-Language:zh-CN,zh;q=0.8";
$Header[] = "Connection:close"; $Header[] = "X-FORWARDED-FOR:" . real_ip();
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $Header);
if (isset($paras['ctime'])) { // 连接超时
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $paras['ctime']);
} else {
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
}
if (isset($paras['rtime'])) { // 读取超时
curl_setopt($ch, CURLOPT_TIMEOUT, $paras['rtime']);
}
if (isset($paras['post'])) { curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $paras['post']);
}
if (isset($paras['header'])) { curl_setopt($ch, CURLOPT_HEADER, true); }
if (isset($paras['cookie'])) { curl_setopt($ch, CURLOPT_COOKIE, $paras['cookie']);
}
if (isset($paras['refer'])) { if ($paras['refer'] == 1) { curl_setopt($ch, CURLOPT_REFERER, 'http://m.qzone.com/infocenter?g_f='); } else {
curl_setopt($ch, CURLOPT_REFERER, $paras['refer']);
}
}
if (isset($paras['ua'])) { curl_setopt($ch, CURLOPT_USERAGENT, $paras['ua']);
} else {
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"); }
if (isset($paras['nobody'])) { curl_setopt($ch, CURLOPT_NOBODY, 1); }
//curl_setopt($ch, CURLOPT_ENCODING, "gzip");
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if (isset($paras['GetCookie'])) { curl_setopt($ch, CURLOPT_HEADER, 1); $result = curl_exec($ch); preg_match_all("/Set-Cookie: (.*?);/m", $result, $matches);
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($result, 0, $headerSize); //状态码
$body = substr($result, $headerSize); $ret = array("cookie" => $matches, "body" => $body, "Header" => $header, 'code' => curl_getinfo($ch, CURLINFO_HTTP_CODE),); curl_close($ch);
return $ret;
}
$ret = curl_exec($ch);
if (isset($paras['loadurl'])) { $Headers = curl_getinfo($ch);
if (isset($Headers['redirect_url'])) { $ret = $Headers['redirect_url']; } else {
$ret = false;
}
}
curl_close($ch);
return $ret;
}
标签:视频,ch,setopt,快手,paras,curl,解析,isset,CURLOPT 来源: https://blog.csdn.net/qq_55374585/article/details/121340210