QQMV轮播PHP
※ 声明:本站为非商业性博客,内容均为本站网友收集于互联网公开分享,仅限于学习和探讨的目的,不得将上述内容用于非法或商业途径,版权争议与本站无关,如有冒犯,请留言删除!
收集QQ音乐全部MV内容,可以分类收看不同类型的MV
<?php
//header('Content-Type: text/html;charset=UTF-8');
$vid = $_GET['vid']?$_GET['vid']:'';
$bstrURL = "https://u.y.qq.com/cgi-bin/musicu.fcg";
if($vid=='list'||$vid==null||$vid=='top'){
$order=array(//排序方式
'hot'=>0, //最热
'new'=>1, //最新
);
$area=[16,17,18,19,20]; //区域 16 内地,17 祖国同胞,18 欧美,19 韩,20 日本
$version=[8,9,10,11,12,13,14]; //类型 8 mv,9 现场,10 翻唱,11 舞蹈,12 影视,13 综艺,14 儿歌
$oid = $_GET['oid']?$_GET['oid']:''; //对应数组$order定义的'hot'和'new'
$aid = $_GET['aid']?$_GET['aid']:''; //对应数组$area的元素值
$sid = $_GET['sid']?$_GET['sid']:''; //对应数组$version的元素值
if(!$oid||empty($order[$oid])){
$oid=array_keys($order)[array_rand(array_keys($order),1)];
}
if(!$aid||!in_array($aid,$area)){
$aid=$area[array_rand($area,1)];
if($vid!='list'){
$aid=15;
}
}
if(!$sid||!in_array($sid,$version)){
$sid=$version[array_rand($version,1)];
if($vid!='list'){
$sid=7;
}
}
$size=200; //默认设定 单次最多获取200个ID,可根据服务器解析速度自行调节修改。
$key=999;
if($aid==17&&$sid==11){$key=358;}
if($aid==17&&$sid==14){$key=54;}
if($aid==18&&$sid==11){$key=578;}
if($aid==19&&$sid==14){$key=148;}
if($aid==20&&$sid==14){$key=20;}
$num=mt_rand(0,floor($key/$size));
$postData = '{"comm":{"cv":4747474,"ct":24,"format":"json","inCharset":"utf-8","outCharset":"utf-8","notice":0,"platform":"yqq.json","needNewCode":1,"uin":0,"g_tk_new_20200303":5381,"g_tk":5381},"req_1":{"module":"MvService.MvInfoProServer","method":"GetAllocMvInfo","param":{"order":'.$order[$oid].',"start":'.($num*$size).',"size":'.$size.',"version_id":'.$sid.',"area_id":'.$aid.'}}}';
$data=get_data($bstrURL,$postData);
if($data){
foreach (json_decode($data)->req_1->data->list as $sub){
$name=$sub->singers[0]->name;
$title=$sub->title;
$id=$ids[]=$sub->vid;
if($vid=='list'){
echo $name.'<'.$title.'>,http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?vid='.$id.'&oid='.$oid.'&aid='.$aid.'&sid='.$sid.'</a><br>';
}
}
}
if($vid!='list'){
$vid=$ids[array_rand($ids,1)];
}
}
if($vid!='list'&&$vid!='top'){
$type = $_GET['type']?$_GET['type']:'';
switch ($type){
case 'mp4':
$stream='mp4';
break;
case 'hls':
$stream='hls';
break;
default:
$stream=array('mp4','hls')[mt_rand(0,1)];
break;
}
$postData = '{"comm":{"ct":6,"cv":0,"g_tk":5381,"uin":0,"format":"json","platform":"yqq"},"mvInfo":{"module":"video.VideoDataServer","method":"get_video_info_batch","param":{"vidlist":["'.$vid.'"],"required":["vid","type","sid","cover_pic","duration","singers","new_switch_str","video_pay","hint","code","msg","name","desc","playcnt","pubdate","isfav","fileid","filesize","pay","pay_info","uploader_headurl","uploader_nick","uploader_uin","uploader_encuin","play_forbid_reason"]}},"mvUrl":{"module":"music.stream.MvUrlProxy","method":"GetMvUrls","param":{"vids":["'.$vid.'"],"request_type":10003,"addrtype":3,"format":264}}}';
$data=get_data($bstrURL,$postData);
$json = json_decode($data);
$pams=$json->mvUrl->data->$vid->$stream;
$playurl = $pams[count($pams)-1]->freeflow_url[1];//貌似有四条线路,默认第二条freeflow_url[1]
//echo $playurl;
header('location:'.$playurl);
}
function get_data($bstrURL,$post=null){
$header=array(
'referer: https://y.qq.com/',
'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $bstrURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
if(!empty($post)){
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ($post));
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
?>//参数vid、oid、aid、sid、type根据数组$order、$area、$version 定义的值自行组合即可
//随机播放:qqmv.php?
//m3u8方式输出:qqmv.php?vid=top&oid=hot&aid=&sid=&type=hls
//MP4方式输出:qqmv.php?vid=top&oid=hot&aid=&sid=&type=mp4
//sid:先择类型 oid:选择区域
※ 感谢您的支持,如果喜欢本内容,请打赏本站!谢谢!

支付宝打赏
微信打赏