芒果tv湖南直播源PHP代理教程

前言

由于自己之前在淘宝给人做的一套直播点播的。因为某些原因跑单不欢而散。
造成需要自己来更新维护,弄会一些营养费。
有些国内的直播源经常更新,或者直播源随之时间改变
或者由于判断了来源,又或者某系参数需要解密得到真实源
所以很有需要使用PHP来做一个跳板就是做代理

下面让我们来个简单的栗子。芒果TV 的湖南频道

效果图

原型分析

抓包获取GET请求如下

GET https://mpplive.api.mgtv.com/v1/epg/turnplay/getLivePlayUrlMPP?version=PCweb_1.0&platform=4&buss_id=2000001&channel_id=280&definition=std&_support=10000000 HTTP/1.1
Host: mpplive.api.mgtv.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Referer: https://player.mgtv.com/mgtv_v5_live/live.swf
Connection: keep-alive
Cookie: locale=CN; sessionid=1561468960747; lastActionTime=1561468983530; __STKUUID=0c905e44-3bad-4fe3-b349-fe216799945e; __random_seed=0.8204307238528736; mba_deviceid=efcce309-e283-22af-6e5d-2c75eb525000; mba_sessionid=b588fcde-1cd4-b431-3f1c-ae44205f5021; mba_last_action_time=1561468967369; PLANB_FREQUENCY=XRIgI0qVH1Hkb4ez; MQGUID=1143509825016180736; __MQGUID=1143509825016180736

网页返回:

HTTP/1.1 200 OK
Date: Tue, 25 Jun 2019 13:23:02 GMT
Content-Type: text/html;charset=UTF-8
Content-Length: 330
Connection: keep-alive
X-Protected-By: OpenRASP
X-Request-ID: 638db7fea8ae434484b68b9451aec3d7

{"data":{"isothercdn":"0","npuk":"cmlkPTIy","url":"http://pctx.qing.mgtv.com/nn_live/nn_x64/cz04Y2Q2YTIzYjhjNzhiNmNiOTExZjkxOTQyZTEzNWYyMyZlcz0xNTYxNDk3NzgyJnV1aWQ9NjdiMzg1YzIwYTE5OWQxMDJlNWY3OTNlY2Q1MjA2NTEtYjcwMTU1ZTgmdj0yJmFzPTAmY2RuZXhfaWQ9dHhfcGNfbGl2ZQ,,/HNJSMPP360.flv"},"errno":"0","msg":"成功","server_time":1561468982}

PHP代码

具体的意思看备注

<?php
header("Content-type:text/html; Charset=utf-8");
$id = $_GET['id'];
//定义需要提交的链接
$host = 'http://mpp.liveapi.mgtv.com/v1/epg/turnplay/getLivePlayUrlMPP?version=PCweb_1.0&platform=4&buss_id=2000001&channel_id='.$id.'&definition=std';
		//定义协议头,下面的2个重要,如果网站没判断的也可以不设置
	    $headers = array(
		  'Host: mpp.liveapi.mgtv.com',
		  'Referer: http://player.hunantv.com/mgtv_v5_live/live.swf',
        );
//通过PHP的curl以GET方式提交请求
$json_response = curl_get($headers, $host);
//提取返回的直播源地址
$flv = getNeedBetween($json_response,'url":"','"},"');
 
 
//然后设置返回头,让网页重转向至直播源地址
header('location:'.$flv);
 
function curl_get($headers, $url) {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_sEtopt($ch, CURLOPT_RETURNTRANSFER, 1);
 
	$data = curl_exec($ch);
	curl_close($ch);
	//echo $data;
	return $data;
}
function getNeedBetween($input,$start,$end){
$substr = substr($input, strlen($start)+strpos($input, $start),
 (strlen($input) - strpos($input, $end))*(-1));
  return $substr;
}
?>

这样我们就能通过参数id设置需要代理的节目。

最后把网址重定向至直播源。

自己搭建的服务器,记得要开启PHP的curl模块功能

自代理直播源

湖南经视[湖南],http://kjol.cc/proxy/hunan.php?id=280
湖南都市[湖南],http://kjol.cc/proxy/hunan.php?id=346
湖南公共[湖南],http://kjol.cc/proxy/hunan.php?id=261
湖南娱乐[湖南],http://kjol.cc/proxy/hunan.php?id=344
湖南电视剧[湖南],http://kjol.cc/proxy/hunan.php?id=484
湖南国际[湖南],http://kjol.cc/proxy/hunan.php?id=229
金鹰纪实[湖南],http://kjol.cc/proxy/hunan.php?id=316
金鹰卡通[湖南],http://kjol.cc/proxy/hunan.php?id=287
先锋兵羽[湖南],http://kjol.cc/proxy/hunan.php?id=329
快乐垂钓[湖南],http://kjol.cc/proxy/hunan.php?id=218
茶频道[湖南],http://kjol.cc/proxy/hunan.php?id=578
长沙新闻[湖南],http:///kjol.cc/proxy/hunan.php?id=269
长沙政法[湖南],http://kjol.cc/proxy/hunan.php?id=254
长沙女性[湖南],http://kjol.cc/proxy/hunan.php?id=230
  1. James说道:

    楼主有详细教程吗?能发下详细直播源php代理教程吗?或者楼主可以加你qq请教吗?

  2. James说道:

    想学习直播源PHP代理,楼主可以留个联系吗?向你学习学习

  3. 小健说道:

    奇怪,我抓包怎么就抓不到和你一样的链接呢?

    1. 隐士说道:

      这个是去年的包了。间隔那么久了。可能网站已经有改动了

      1. 爽不爽说道:

        有huya.php 的?浙江啊之类 港台

  4. tqw125说道:

    想学习,兄弟给个详细点的demo教程。
    当然是有偿劳动。

  5. generbin说道:

    我想学有联系方式吗

  6. 七彩云南说道:

    大神你好,我也想学习动态源代理,请提供联系方式,可以付费,谢谢!

  7. 七彩云南说道:

    大神你好,我也需要学习动态源代理,请问代理可以统计客户端访问IP地址及数量吗?方便的话请留个联系方式,可以付费!

    1. 隐士说道:

      需要统计就需要在PHP写统计代码统计了之后在跳转到真实源上面

      1. gengerbin说道:

        我想学习留个联系方式

  8. 小白说道:

    先锋乒羽打不开

    1. 隐士说道:

      你自己重新抓下包在代理下吧

发表评论

邮箱地址不会被公开。 必填项已用*标注