移动咪咕PHP代理源码,咪咕视频解析源码
//http://www.miguvideo.com/wap/resource/pc/detail/miguplay.jsp?cid=636120900
//http://www.miguvideo.com/playurl/v1/play/playurlh5?contId=637544550&rateType=1,2,3,4
//echo file_get_contents("http://www.miguvideo.com/wap/resource/pc/data/detailData.jsp?cid=636120900");
$ids = MIGU::parse($url);
echo str_replace("\/", "/", json_encode(MIGU::get_vip_video_url($ids)));
class MIGU
{
public static function parse($url)
{
$params = parse_url($url)["query"];
$cid = str_replace("cid=","",$params);
$name = "MIGU-".md5($cid);
if (file_exists(NAME_PATH.$name)) {
$data = json_decode(file_get_contents(NAME_PATH.$name),true);
$ids = $data;
}else{
$api = "http://www.miguvideo.com/wap/resource/pc/data/miguData.jsp";
$content = self::curl($api,'','http://www.miguvideo.com/wap/r…il/miguplay.jsp?{$params}',$cid);
$content1 = self::curl($url,'',$url);
if ($content1) {
preg_match('#id="sessionID"\s*value="(.*?)">#',$content1,$_a);
}
if (isset($_a[1])) {
$ids['sessionID'] = $_a[1];
}
//print_r($_a);exit;
$json = json_decode($content,true);
$data = $json[0];
$ids['vid'] = $data['playId'];
$ids['title'] = $data['name'];
$ids['poster'] = $data['imgH'];
$ids['url'] = $url;
file_put_contents(NAME_PATH.$name, json_encode($ids));
}
return $ids;
}
public static function get_vip_video_url($ids){
$api = "http://www.miguvideo.com/playurl/v1/play/playurlh5?contId={$ids['vid']}&rateType=1,2,3&clientId={$ids['sessionID']}";
$data = self::curl($api,'',$ids['url']);
//print_r($data);exit;
$d = json_decode($data,true);
if ($d['code'] == '200') {
$data = $d['body'];
$urls = $data['urlInfos'];
$types = $data['mediaFiles'];
$count=0;
foreach ($urls as $key => $value) {
switch ($types[$key]['rateType']) {
case '1':$def = "标清";$vurl = $value['url'];break;
case '2':$def = "高清";$vurl = $value['url'];break;
case '3':$def = "超清";$vurl = $value['url'];break;
}
if ($value['url'] == '') {
continue;
}
if (GlobalBase::is_ipad()) {
if ($types[$key]['rateType']=='1') {
$videoinfo['code'] = 200;
$videoinfo["data"]["url"] = $vurl;
$videoinfo['data']['poster'] = $ids['poster'];
}
} else {
$video_m3u8[0] = str_replace('gslbmgspvod.miguvideo.com','vod.hcs.cmvideo.cn:8088',$vurl);
$video_m3u8[1] = "video/m3u8";
$video_m3u8[2] = $def;
$video_m3u8[3] = $key=="1" ? 10 : 0;
$videoinfo['code'] = 200;
$videoinfo['data']["video"][$count] = $video_m3u8;
$videoinfo['data']['poster'] = $ids['poster'];
$count++;
}
}
return $videoinfo;
}
}
public static function format_video($url,$key){
$ip = GlobalBase::get_ip();
$name = 'MIGUVIDEO-'.md5($key.$ip);
$url_1 = explode('media',$url);
$url_2 = str_replace('gslbmgspvod.miguvideo.com','vod.hcs.cmvideo.cn:8088',$url_1[0]);
$domain = $url_2.'media/';
$_data = file_get_contents($url);
$_data = preg_split('/[\r\n]+/s', $_data);
$d_u = array();
$urls = array();
$bool = true;
$targetduration = "";
foreach ($_data as $value) {
if(strstr($value,"#EXT-X-TARGETDURATION:")){//多码率
$targetduration = $value;
}else if(strstr($value,'#EXTINF:')){//单码率
$d_u[count($d_u)] = $value;
}else if($value&&substr($value,0,1)!="#"){
$urls[count($urls)] = $domain.$value;
}
}
$m3u8 = "#EXTM3U\n#EXT-X-VERSION:3\n";
$m3u8 .= empty($targetduration)?"#EXT-X-TARGETDURATION:7200\n" : $targetduration."\n";
foreach ($d_u as $key => $value) {
$m3u8 .= $value."\n"."../../video/ts.php?url=".base64_encode($urls[$key])."&site=migu\n";
}
$m3u8 .="#EXT-X-ENDLIST";
file_put_contents(M3U8_PATH.$name.".m3u8", $m3u8);
$vurl = "./data/m3u8/".$name.".m3u8";
return $vurl;
}
public static function format_video1($url,$key){
$ip = GlobalBase::get_ip();
$name = 'MIGUVIDEO-'.md5($key.$ip);
$url_1 = explode('media',$url);
$url_2 = str_replace('gslbmgspvod.miguvideo.com','vod.hcs.cmvideo.cn:8088',$url_1[0]);
$domain = $url_2.'media/';
$_data = file_get_contents($url);
$_data = preg_split('/[\r\n]+/s', $_data);
$d_u = array();
$urls = array();
$bool = true;
$targetduration = "";
foreach ($_data as $value) {
if(strstr($value,"#EXT-X-TARGETDURATION:")){//多码率
$targetduration = $value;
}else if(strstr($value,'#EXTINF:')){//单码率
$d_u[count($d_u)] = $value;
}else if($value&&substr($value,0,1)!="#"){
$urls[count($urls)] = $domain.$value;
}
}
$m3u8 = "#EXTM3U\n#EXT-X-VERSION:3\n";
$m3u8 .= empty($targetduration)?"#EXT-X-TARGETDURATION:7200\n" : $targetduration."\n";
foreach ($d_u as $key => $value) {
$m3u8 .= $value."\n".$urls[$key]."\n";
}
$m3u8 .="#EXT-X-ENDLIST";
print_r($m3u8);exit;
file_put_contents(M3U8_PATH.$name.".m3u8", $m3u8);
$vurl = "./data/m3u8/".$name.".m3u8";
return $vurl;
}
public static function curl($url,$cookie="",$ref,$cid='')
{
$params["ua"] = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
if ($cid != '') {
$params["fields"] = "cid=".$cid;
}
$params["ref"] = $ref;
return GlobalBase::curl($url,$params);
}
}
?>
移动咪咕PHP代理源码,咪咕视频解析源码相关推荐
- 抖音seo源码 短视频seo源码二次开发,怎么使用抖音seo源码,视频seo源码私有化部署?
抖音seo源码 短视频seo源码二次开发,怎么使用抖音seo源码,短视频seo源码私有化部署? 抖音seo源码 短视频seo源码二次开发,怎么使用抖音seo源码,短视频seo源码私有化部署到本地.首先 ...
- php获取腾讯视频信息,云水日记-PHP实现腾讯视频解析源码
PHP实现腾讯视频解析源码,只能解析非VIP的视频,否则只能看3分钟,仅供考学习使用....<?php //腾讯视频解析 $vids = isset($_GET['vids']) ? $_GET ...
- 二次解析视屏 php,[PHP源码]最新PHP二次视频解析源码 带后台版/13092
最新PHP二次视频解析源码带后台版,功能强大 主目录文件结构及说明: admin 后台管理目录,请改名 save 数据保存目录,注意:权限必须为755以上,不然无法后台更新配置; cache 文件缓存 ...
- 一对一直播源码 一对一视频交友源码开发
一.什么是一对一视频交友源码 一对一直播交友源码指的就是交友软件的开发程序包,也即是开发者编写好固定模式的程序,让这些基础程序可以进行售卖流通,在这些基础程序上可以做一些二次开发,又不会对基础程序作出 ...
- php智能解析,解析源码|一次解析源码|智能解析源码
一次解析源码!支持优酷,奇异,芒果,搜狐,pptv,乐视,M1905,音悦台,阳光宽频,梨视频,一直播,华数TV,音悦台等的普通视频解析 VIP的视频解析会自动搜索各个切片资源站进行m3u8的解析! ...
- 抖音无水印视频解析源码
原理如下: <?php /* Author 5G云源码分享网 DateTime 2019-12-26 */function GetVideos($url) {$ch = curl_init(); ...
- 短视频源码仿抖音短视频APP源码短视频平台源码短视频源码
[WoShop仿抖音短视频源码的主要功能] 1.短视频带货:关联商品的短视频封面会有商品标识,短视频内容中会弹出商品链接 2.直播带货:短视频源码支持直播功能,直播间内可开启带货功能 3.邀请赚钱:用 ...
- 浅谈:1对1直播源码一对一视频聊天源码
借助直播行业2018年平稳发展的东风,1对1直播源码开源平台开发受到了广泛地关注.正如直播源码那样,通过1对1直播源码可以快速搭建部署一个一对一视频聊天系统平台.而一对一视频聊天系统平台的功能具有更强 ...
- 医院在线问诊源码 医院视频问诊源码 医院小程序源码
开发环境:ASP.NET + C# + VS2019 + SQL2008 系统简介: 预约挂号 可以选择日期和时间在线挂号,支持预约挂号,预约医院的号源,节省看病时间的同时也能使医院提升诊疗效率,充分 ...
最新文章
- Android数据存储之SD卡
- linux 提取某一行内容
- asp从后台调出的公式怎么参与运算_吴望一《流体力学》第一章中微分运算公式的初等证明...
- 【转载】不带www跳转www.设定网站唯一入口,提升权重!
- C++ 常用设计模式
- 专题开发十三:JEECG微云快速开发平台-附录
- 做网店大家千万要注意
- Spring Boot 返回 XML 数据,一分钟搞定!
- Eplan绘图软件:西门子S7-1500部件
- 怎么尽可能将pdf文件压缩到最小
- excel如何把多张表合并成一个表_如何将多个 Excel 工作簿的工作表合并成一个工作表?...
- 风暴英雄 服务器在哪个文件夹,《风暴英雄》国服官方答疑 玩家最关心的问题都在这里...
- 如何确定网站的关键词呢
- 入侵检测工具AIDE极简教程
- java 移动短代支付_运营商支付/短代支付的市场前景如何?
- 怎么用计算机打印出东西,怎样在电脑上打印东西_怎么用电脑打印东西
- 将Twitter4j与Scala结合使用以执行用户操作
- 多元函数牛顿法求函数极小值
- 交易风云-MAM、PAMM、社区交易&KlipC:如何选择多账户管理系统
- 2019中国彩票市场行业分析
热门文章
- 【历史上的今天】11 月 5 日:初代安卓系统公开发布;诺基亚更名为微软 Lumia;开放手持设备联盟成立
- uniapp延迟执行_【 vue / uniapp 】延迟加载数据的特殊处理
- 【HTML】表格标签,map,iframe,h5标签,语义化,标签分类,role,aria-*
- linux能否批量重命名,linux批量重命名方法
- Android与uni-app 互相通信案例(包含源代码)
- networkx 画图中文方块
- LeetCode刷题:871. Minimum Number of Refueling Stops
- android 汉字笔画拆写,基于形状分割的手写汉字笔划提取方法
- Android 数据库知识回顾
- N1盒子丢失bootloader救砖方法