本帖最后由 jiteloozz 于 2022-7-13 14:08 编辑
1905电影网CCTV6频道的代理地址,原来的preg_match获取方式失效了,网页源码里现在已看不到直播地址。
PC端:https://www.1905.com/cctv6/live/
手机端:https://m.1905.com/m/cctv6/gzh/
2022.7.12说明:此接口失效,但算法可适用于免费电影
值得一提的是,手机端网页我用浏览器查看源码居然能看到直播源地址,但是用PC查看或是PHP CURL都没有源码中的地址。甚感疑惑,如图
向大神请教问题1:
为什么会出现这种源码数据有一段不一样的情况?
既然网页抓取方法行不通了,那看看有没有接口可用。。。
还好,PC端和手机端都找到了:
PC端:$url='https://profile.m1905.com/mvod/getliveinfo.php?nonce=1655974733&expiretime=1655975333&cid=999999&streamname=LIVE2OR14O20ADLYU&uuid=30a14081-d7bc-47ff-8c93-9b4e812ae248&playerid=473254168025387&page=https%3A%2F%2Fwww.1905.com%2F&signature=9276e3496af4b6b5fb3f4df45b37b9bb58df1378&type=json';
手机端:$url='https://profile.m1905.com/mvod/getliveinfo.php?nonce=1655970516&expiretime=1655971116&cid=999999&streamname=LIVEOCTI36HXJXB9U&uuid=9550c399-a684-4545-8a37-499bc22c9349&playerid=051619085160464&page=https%3A%2F%2Fm.1905.com%2Fm%2Fcctv6%2Fgzh%2F%3Fhome&signature=6a1796f96c37bf6fefdf0d5ed2c538d7836336af&type=json';
接口参数浅析:
nonce=1655974733//时间戳1
expiretime=1655975333//时间戳2
//时间戳2-时间戳1=600
cid=999999//固定值
streamname=LIVE2OR14O20ADLYU//PC端固定
streamname=LIVEOCTI36HXJXB9U//手机端固定
uuid=30a14081-d7bc-47ff-8c93-9b4e812ae248,貌似和guoma大佬写的奥点云里那个UUID算法一样;
playerid=473254168025387//这个有算法
playerId = ( +new Date() + '' ).slice(6) + ( Math.random() + '' ).slice( -8 );
signature=9276e3496af4b6b5fb3f4df45b37b9bb58df1378,貌似是32位MD5,与以上参数都有关
接口应该是动态加密,现在可用,不知时效多久!?
向大神请教问题2:
寻求接口中的signature算法相关函数。。。如果有的话~~~
附CCTV6.php
<?php
$id = isset($_GET['id'])?$_GET['id']:'pc';
switch ($id) {
case 'pc':
$url='https://profile.m1905.com/mvod/getliveinfo.php?nonce=1655970516&expiretime=1655971116&cid=999999&streamname=LIVEOCTI36HXJXB9U&uuid=9550c399-a684-4545-8a37-499bc22c9349&playerid=051619085160464&page=https%3A%2F%2Fm.1905.com%2Fm%2Fcctv6%2Fgzh%2F%3Fhome&signature=6a1796f96c37bf6fefdf0d5ed2c538d7836336af&type=json';
break;
default:
$url='https://profile.m1905.com/mvod/getliveinfo.php?nonce=1655974733&expiretime=1655975333&cid=999999&streamname=LIVE2OR14O20ADLYU&uuid=30a14081-d7bc-47ff-8c93-9b4e812ae248&playerid=473254168025387&page=https%3A%2F%2Fwww.1905.com%2F&signature=9276e3496af4b6b5fb3f4df45b37b9bb58df1378&type=json';
break;
}
$data=get_data($url);//没有用file_get_contents(),貌似获取不稳定
$json=json_decode(trim($data,'()'));
$host=$json->data->quality->hd->host;
$path=$json->data->path->hd->path;
$sign=$json->data->sign->hd->sign;
$playurl=$host.$path.$sign;
//print_r($playurl);
header('Location:'.$playurl);
function get_data($bstrURL){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $bstrURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
return $data = curl_exec($ch);
curl_close($ch);
}
?>
本来CCTV6的源满大街都是,秉着思考和巩固PHP知识,所以和大家水了这一贴~~~
发帖注意事项
请勿胡乱发帖:https://www.right.com.cn/forum/thread-8307840-1-1.html
账户手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|