音悦台解析源码
<?php
echo json_encode(Yinyuetai::parse($url));
/**
*
*/
class Yinyuetai
{
/**
* [parse 解析网页获取视频ID]
* @param [type] $url [description]
* @return [type] [description]
*/
public static function parse($url)
{
$html = self::curl($url);
$vids = $aids = $titles = array();
if ($html){
preg_match('#id : “([\d]+)"#iU’,$html,$vids);
$vid = $vids[1];
$data = self::get_video_info($vid);
return $data;
}
}
public static function get_video_urls($vid)
{
$api_video = “http://www.yinyuetai.com/api/info/get-video-urls?videoId={$vid}";
$content = GlobalBase::curl($api_video);
print_r($api_video);exit;
$data = json_decode($content,true);
$hd = $data[“hdVideoUrl"];//高清
$hc = $data[“hcVideoUrl"];//流畅
$he = $data[“heVideoUrl"];//超清
if (GlobalBase::is_ipad()) {
$videoinfo[“video"][“file"] = $hd;
$videoinfo[“video"][“type"] = “video/mp4";
}else{
$videoinfo[“video"][0] = array($hd,“video/mp4",“高清",10);
$videoinfo[“video"][1] = array($he,“video/mp4",“超清",0);
$videoinfo[“video"][2] = array($hc,“video/mp4",“流畅",0);
}
return $videoinfo;
}
public static function get_mv_info($vid)
{
$api_video = “http://ext.yinyuetai.com/main/get-h-mv-info?json=true&videoId={$vid}";
$content = self::curl($api_video);
print_r($content);exit;
$data = json_decode($content,true);
$video_info = $data[“videoInfo"];
$coreVideoInfo = $video_info[“coreVideoInfo"];
$img = $coreVideoInfo[“bigHeadImage"];
$videoUrlModels = $coreVideoInfo[“videoUrlModels"];
foreach ($videoUrlModels as $key => $value) {
$def = $value[“qualityLevel"];
$defname = $value[“qualityLevelName"];
$vurl = $value[“videoUrl"];
if (GlobalBase::is_ipad()) {
if($def==“hd"){
$videoinfo['code’] = 200;
$videoinfo[“data"][“url"] = $vurl;
break;
}
}else{
if ($stream_type == 'mp5hd4’ && $m3u8 != ") {
$fdata[0]['url’] = $m3u8;
$fdata[0]['def’] = '4k’;
}
if ($stream_type == 'mp5hd3’ && $m3u8 != ") {
$fdata[1]['url’] = $m3u8;
$fdata[1]['def’] = 'mp5原画’;
}
$video[0] = $vurl;
$video[1] = “video/mp4";
$video[2] = $defname;
$video[3] = $def ==“hd"? 10 : 0;
$videoinfo[“video"][$key] = $video;
}
}
return $videoinfo;
}
public static function get_video_info($vid)
{
$api_video = “http://www.yinyuetai.com/insite/get-video-info?json=true&videoId={$vid}";
$content = self::curl($api_video);
//print_r($api_video);exit;
$data = json_decode($content,true);
$video_info = $data[“videoInfo"];
$img = $video_info[“bigHeadImage"];
$coreVideoInfo = $video_info[“coreVideoInfo"];
$videoUrlModels = $coreVideoInfo[“videoUrlModels"];
foreach ($videoUrlModels as $key => $value) {
$def = $value[“qualityLevel"];
$defname = $value[“qualityLevelName"];
$vurl = $value[“videoUrl"];
if (GlobalBase::is_ipad()) {
if($def==“hd"){
$videoinfo['code’] = 200;
$videoinfo['poster’] = $img;
$videoinfo['name’] = $video_info[“coreVideoInfo"][“videoName"];
$videoinfo['play’] = 'h5mp4’;
$videoinfo[“data"][“url"] = $vurl;
return $videoinfo;
exit;
}
}else{
if ($def == 'sh’ && $vurl != ") {
$fdata[0]['url’] = $vurl;
$fdata[0]['def’] = '蓝光’;
}
if ($def == 'he’ && $vurl != ") {
$fdata[1]['url’] = $vurl;
$fdata[1]['def’] = '超清’;
}
if ($def == 'hd’ && $vurl != ") {
$fdata[2]['url’] = $vurl;
$fdata[2]['def’] = '高清’;
}
if ($def == 'hc’ && $vurl != ") {
$fdata[3]['url’] = $vurl;
$fdata[3]['def’] = '流畅’;
}
}
}
for ($i=0; $i <= 10 ; $i++) {
if ($fdata[$i] == ") {continue;}
$key_arrays[]=$fdata[$i];
}
$videoinfo['code’] = 200;
$videoinfo['poster’] = $img;
$videoinfo['name’] = $video_info[“coreVideoInfo"][“videoName"];
$videoinfo['play’] = 'h5mp4’;
$videoinfo[“data"][“url"] = $key_arrays[0]['url’];
return $videoinfo;
}
public static function curl($url)
{
$params[“ua"] = “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
return GlobalBase::curl($url,$params);
}
}
?>