NOW直播解析源码

资源分享NOW直播解析源码

NOW直播解析源码

  1. <?php
  2. //https://now.qq.com/cgi-bin/now/web/room/get_room_info_v2?room_id=1983753
  3. //https://now.qq.com/cgi-bin/now/web/user/get_personal_live_rcmd_read?_=0.6791041731369902&bkn=869715713&num=19&tab_id=2
  4. //https://now.qq.com/pc/index.html?roomid=1210251521
  5. //https://now.qq.com/h5/index.html?roomid=79072731
  6. //https://now.qq.com/cgi-bin/now/web/room/get_live_room_url?platform=4&room_id=1210676514
  7. //require_once(“../include/global.inc.php");
  8. echo json_encode(Now::parse($url));
  9. /**
  10. * 
  11. */
  12. class Now
  13. {
  14.     public static function parse($url)
  15.     {
  16.         parse_str(parse_url($url)[“query"]);
  17.         if($roomid){
  18.             return self::get_room_info_v2($roomid);
  19.         }
  20.     }
  21.     public static function get_room_info_v2($room_id)
  22.     {
  23.         $api = “https://now.qq.com/cgi-bin/now/web/room/get_room_info_v2?room_id=$room_id";
  24.         $content = self::curl($api);
  25.         $data = json_decode($content,true)[“result"];
  26.         $is_on_live = $data[“is_on_live"];
  27.         if($is_on_live){//是否直播
  28.             return self::get_live_room_url($room_id);
  29.         }else{
  30.             if(!emptyempty($data[“vid"])){
  31.                 $vid = $data[“vid"];
  32.                 return self::get_record_room_info($vid);
  33.             }else{
  34.                 return GlobalBase::get_unknown_video();
  35.             }
  36.         }
  37.     }
  38.     public static function get_record_room_info($vid)
  39.     {
  40.         $api = “https://now.qq.com/cgi-bin/now/web/room/get_record_room_info?vid=$vid";
  41.         $content = self::curl($api);
  42.         $data = json_decode($content,true)[“result"];
  43.         $record_video_url = $data[“record_video_url"];
  44.         $video_cover_url = $data[“video_cover_url"];
  45.         $videoinfo[“poster"] = $video_cover_url;
  46.         $videoinfo[“video"][“file"] = $record_video_url;
  47.         $videoinfo[“video"][“type"] = “video/m3u8";
  48.         return $videoinfo;
  49.     }
  50.     public static function get_live_room_url($room_id)
  51.     {
  52.         $api = “https://now.qq.com/cgi-bin/now/web/room/get_live_room_url?platform=4&room_id=$room_id";
  53.         $content = self::curl($api);
  54.         $data = json_decode($content,true)[“result"];
  55.         $videoURLList = $data[“videoURLList"];
  56.         foreach ($videoURLList as $key => $value) {
  57.             if (GlobalBase::is_ipad()) {
  58.                 $videoinfo[“url"]= $value;
  59.                 break;
  60.             }else{
  61.                 switch ($key) {
  62.                     case 0:$def = “自动";break;
  63.                     case 1:$def = “高清";break;
  64.                     case 2:$def = “标清";break;
  65.                     case 3:$def = “流畅";break;
  66.                 }
  67.                 $videoinfo[“live"] = true;
  68.                 $video[0] = $value;
  69.                 $video[1] = “video/m3u8";
  70.                 $video[2] = $def;
  71.                 $video[3] =  $key != 0 ? 0 : 10;
  72.                 $videoinfo[“video"][$key] = $video;
  73.             }
  74.         }
  75.         return $videoinfo;
  76.     }
  77.     public static function curl($url)
  78.     {
  79.         $params[“ua"] = “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
  80.         return GlobalBase::curl($url,$params);
  81.     }
  82. }
  83.  ?>

给这篇文章做个评分吧。

平均评分 0 / 5. 投票数: 0

Posted by 柴郡猫