当前位置:首页 > 建站技巧 > QQMV轮播PHP

QQMV轮播PHP

admin2年前 (2022-09-12)建站技巧1030
※ 声明:本站为非商业性博客,内容均为本站网友收集于互联网公开分享,仅限于学习和探讨的目的,不得将上述内容用于非法或商业途径,版权争议与本站无关,如有冒犯,请留言删除!

收集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:选择区域

本站演示

※ 感谢您的支持,如果喜欢本内容,请打赏本站!谢谢!
打赏 支付宝打赏 微信打赏

扫描二维码推送至手机访问。

版权声明:本文由 鹦鹉台 发布,如需转载请注明出处。

本文链接:https://zimtv.cn/tool/QQMV轮播PHP.html

标签: PHP源码
分享给朋友:

“QQMV轮播PHP” 的相关文章

武术世界和梨园频道 节目源

武术世界和梨园频道 节目源

武术世界[1920*1080],http://live.dxhmt.cn:9080/live/yshnpre.m3u8 梨园频道[1920*1080],http://live.dxhmt.cn:90...

FontAwesome动态旋转图标类(fa-spin&fa-pulse)

FontAwesome动态旋转图标类(fa-spin&fa-pulse)

一、总结       fa-spin类:将"fa-spinner"这个图标旋转起来,形成一个连续流畅的旋转动画效果。 &nbs...

html5中怎么设置文本斜体

html5中怎么设置文本斜体

html5中设置文本斜体的方法:1、使用“<i>”标签,语法“<i>斜体文本内容</i>”;2、使用“<em>”标签,语法“<em>斜体文本...

为你的主题加上loading效果

为你的主题加上loading效果

第一步: 新建一个loading样式css 将以下代码放进去 然后引用这个文件#Loadanimation{     background-col...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。