返回列表 发布新帖
查看: 381|回复: 2

migu增加缓存降低有效防止IP被Ban

发表于 2025-2-10 03:27:00 | 查看全部 |阅读模式

立刻注册账号,享受更清爽的界面!

您需要 登录 才可以下载或查看,没有账号?注册

×

  1. <?php
  2. error_reporting(0);

  3. // 缓存目录
  4. define("CACHE_DIR", __DIR__ . "/cache/");
  5. define("CACHE_TIMEOUT", 600); // 缓存时间 5 分钟

  6. // 确保缓存目录存在
  7. if (!file_exists(CACHE_DIR)) {
  8.     mkdir(CACHE_DIR, 0777, true);
  9. }

  10. $id = isset($_GET['id']) ? $_GET['id'] : 'cctv1';
  11. $n = [
  12.     'cctv1' => '608807420', //CCTV1综合
  13.     'cctv2' => '631780532', //CCTV2财*
  14.     'cctv3' => '624878271', //CCTV3综艺
  15.     'cctv4' => '631780421', //CCTV4中文国际
  16.     'cctv4a' => '608807416', //CCTV4美洲
  17.     'cctv4o' => '608807419', //CCTV4欧洲
  18.     'cctv5' => '641886683', //CCTV5体育
  19.     'cctv5p' => '641886773', //CCTV5+体育赛事
  20.     'cctv6' => '624878396', //CCTV6电影
  21.     'cctv7' => '673168121', //CCTV7国防军事
  22.     'cctv8' => '624878356', //CCTV8电视剧
  23.     'cctv9' => '673168140', //CCTV9纪录
  24.     'cctv10' => '624878405', //CCTV10科教
  25.     'cctv11' => '667987558', //CCTV11戏曲
  26.     'cctv12' => '673168185', //CCTV12社会与法
  27.     'cctv13' => '608807423', //CCTV13新闻
  28.     'cctv14' => '624878440', //CCTV14少儿
  29.     'cctv15' => '673168223', //CCTV15音乐
  30.     'cctv17' => '673168256', //CCTV17农业农村

  31.     'fxzl' => '624878970', //CCTV发现之旅
  32.     'lgs' => '884121956', //CCTV老故事
  33.     'zxs' => '708869532', //CCTV中学生

  34.     'cgtn' => '609017205', //CGTN
  35.     'cgtnjl' => '609006487', //CGTN纪录
  36.     'cgtne' => '609006450', //CCTV西班牙语
  37.     'cgtnf' => '609006476', //CCTV法语
  38.     'cgtna' => '609154345', //CCTV阿拉伯语
  39.     'cgtnr' => '609006446', //CCTV俄语

  40.     'dfws' => '651632648', //东方卫视
  41.     'cqws' => '738910914', //重庆卫视
  42.     'jlws' => '738906889', //吉林卫视
  43.     'lnws' => '630291707', //辽宁卫视
  44.     'nmws' => '738911430', //内蒙古卫视
  45.     'nxws' => '738910535', //宁夏卫视
  46.     'gsws' => '738910997', //甘肃卫视
  47.     'qhws' => '738898486', //青海卫视
  48.     'sxws' => '738910838', //陕西卫视
  49.     'sdws' => '738910366', //山东卫视
  50.     'hnws' => '790187291', //河南卫视
  51.     'hubws' => '738906825', //湖北卫视
  52.     'hunws' => '635491149', //湖南卫视
  53.     'jxws' => '783847495', //江西卫视
  54.     'jsws' => '623899368', //江苏卫视
  55.     'dnws' => '849116810', //东南卫视
  56.     'hxws' => '849119120', //海峡卫视
  57.     'gdws' => '608831231', //广东卫视
  58.     'dwqws' => '608917627', //大湾区卫视
  59.     'gxws' => '783844132', //广西卫视
  60.     'ynws' => '783846580', //云南卫视
  61.     'gzws' => '783845222', //贵州卫视
  62.     'xjws' => '738910476', //新疆卫视
  63.     'xzws' => '738910461', //西藏卫视
  64.     'hinws' => '738906860', //海南卫视

  65.     'shdy' => '895358641', //四海钓鱼
  66.     'chcjt' => '644368373', //CHC家庭影院
  67.     'chcdz' => '644368714', //CHC动作电影

  68.     'dfys' => '617290047', //东方影视
  69.     'shxwzh' => '651632657', //上海新闻综合
  70.     'dycj' => '608780988', //上海第一财经
  71.     'shjsrw' => '617289997', //上视纪实人文
  72.     'shics' => '618954688', //上海外语
  73.     'fztd' => '790188943', //法治天地
  74.     'jbty' => '796071336', //劲爆体育
  75.     'mlzq' => '796070308', //魅力足球
  76.     'ly' => '796070452', //乐游
  77.     'hxjc' => '790187880', //欢笑剧场
  78.     'qcxj' => '796071456', //七彩戏剧
  79.     'yxfy' => '790188417', //游戏风云

  80.     'lttv' => '668225749', //临洮电视台

  81.     'jscs' => '626064714', //江苏城市
  82.     'jszy' => '626065193', //江苏综艺
  83.     'jsys' => '626064697', //江苏影视
  84.     'jsggxw' => '626064693', //江苏公共新闻
  85.     'jsgj' => '626064674', //江苏国际
  86.     'jsjy' => '628008321', //江苏教育
  87.     'jstyxx' => '626064707', //江苏体育休闲
  88.     'ymkt' => '626064703', //优漫卡通

  89.     'njxwzh' => '838109047', //南京新闻综合
  90.     'njkj' => '838153729', //南京教科
  91.     'njsb' => '838151753', //南京十八

  92.     'haxwzh' => '639731826', //淮安新闻综合
  93.     'lygxwzh' => '639731715', //连云港新闻综合
  94.     'szxwzh' => '639731952', //苏州新闻综合
  95.     'tzxwzh' => '639731818', //泰州新闻综合
  96.     'sqxwzh' => '639731832', //宿迁新闻综合
  97.     'xzxwzh' => '639731747', //徐州新闻综合

  98.     'gdys' => '614961829', //广东影视
  99.     'jjkt' => '614952364', //嘉佳卡通

  100.     '24hyzb' => '895932793', //24小时亚洲杯频道
  101.     'cbajd' => '788813182', //CBA经典
  102.     'gdjys' => '631354620', //掼蛋精英赛
  103.     'gqdp' => '629943678', //高清大片
  104.     'hpjxss' => '780290695', //和平精英赛事
  105.     'hslbt' => '713600957', //红色轮播台
  106.     'jddhdjh' => '629942219', //经典动画大集合
  107.     'jdxgdy' => '625703337', //经典香港电影
  108.     'jsdp' => '617432318', //军事迷必看大片
  109.     'hyytzqy' => '707671890', //华语乐坛最强音
  110.     'mg24hty' => '654102378', //咪咕24小时体育台
  111.     'nbajd' => '788815380', //NBA经典
  112.     'ozzqfy' => '788816794', //欧洲足球风云
  113.     'qmpp' => '788818045', //全民乒乓
  114.     'sszjd' => '646596895', //赛事最经典
  115.     'ttmlh' => '629943305', //体坛名栏汇
  116.     'ufcgdjx' => '788818804', //UFC格斗精选
  117.     'wdlsjd' => '780288994', //五大联赛经典
  118.     'jsjc' => '713591450', //金色剧场
  119.     'xczx' => '713589837', //乡村振兴
  120.     'xfzgn' => '617432318', //幸福中国年
  121.     'xpfyt' => '619495952', //新片放映厅
  122.     'jpjc' => '615810094', //精品剧场
  123.     'yxlmss' => '780286989', //英雄联盟赛事
  124.     'zjlxc' => '625133682', //周杰伦现场
  125.     'zqzyp' => '629942228', //最强综艺趴

  126.     'xmpd' => '609158151', //熊猫01高清
  127.     'xm1' => '608933610', //熊猫1
  128.     'xm2' => '608933640', //熊猫2
  129.     'xm3' => '608934619', //熊猫3
  130.     'xm4' => '608934721', //熊猫4
  131.     'xm5' => '608935104', //熊猫5
  132.     'xm6' => '608935797', //熊猫6
  133.     'xm7' => '609169286', //熊猫7
  134.     'xm8' => '609169287', //熊猫8
  135.     'xm9' => '609169226', //熊猫9
  136.     'xm10' => '609169285', //熊猫10
  137. ];

  138. if (!isset($n[$id])) {
  139.     die("无效的 ID");
  140. }

  141. $cacheFile = CACHE_DIR . "cache_" . $id . ".json";

  142. // **Step 1: 先检查缓存**
  143. if (file_exists($cacheFile) && (time() - filemtime($cacheFile)) < CACHE_TIMEOUT) {
  144.     $cacheData = json_decode(file_get_contents($cacheFile), true);
  145.     if (!empty($cacheData['url'])) {
  146.         header("Content-Type: application/vnd.apple.mpegURL");
  147.         header("Location: " . $cacheData['url']);
  148.         exit;
  149.     }
  150. }

  151. // **Step 2: 请求 API**
  152. function generateRandomString($length = 32) {
  153.     return substr(str_shuffle('0123456789abcdef'), 0, $length);
  154. }

  155. $clientId = md5(generateRandomString());
  156. $bstrURL = 'https://webapi.miguvideo.com/gateway/playurl/v3/play/playurl?contId=' . $n[$id] . '&rateType=3&clientId=' . $clientId . '&startPlay=true&xh265=false&chip=mgwww&channelId=0132_10010001005';

  157. $d = date("YmdHis");

  158. $headers = [
  159.     'Content-Type: application/json',
  160.     "Referer: https://www.miguvideo.com/",
  161.     'Origin: https://www.miguvideo.com',
  162.     'User-Agent: Mozilla/5.0 (Linux; Android 8.0.0; Mi Note 2 Build/OPR1.170623.032)',
  163.     'Vtraceid:' . $clientId,
  164.     'Traceid:' . $clientId,
  165.     'Datafreshversion:' . $d,
  166.     'Dataversion:' . $d,
  167. ];

  168. $json = json_decode(get_data($bstrURL, $headers), true);

  169. if (empty($json['body']['urlInfo']['url'])) {
  170.     die("API 请求失败");
  171. }

  172. $live = $json['body']['urlInfo']['url'];
  173. $uas = parse_url($live);
  174. parse_str($uas["query"], $arr);
  175. $puData = str_split($arr['puData']);
  176. $ProgramID = str_split($n[$id]);
  177. $Program = str_split('yzwxcdwbgh');

  178. $s = count($puData);
  179. $arr_key = [];
  180. for ($v = 0; $v < $s / 2; $v++) {
  181.     $arr_key[] = $puData[$s - $v - 1];
  182.     $arr_key[] = $puData[$v];
  183.     switch ($v) {
  184.         case 1:
  185.         case 2:
  186.         case 4:
  187.             $arr_key[] = arrkey($v);
  188.             break;
  189.         case 3:
  190.             $arr_key[] = $Program[$ProgramID[1]];
  191.             break;
  192.     }
  193. }
  194. $ddCalcu = join($arr_key);

  195. function arrkey($v) {
  196.     $put = ['z', 'y', '0', 'z'];
  197.     return $put[$v - 1];
  198. }

  199. $p = $live . "&ddCalcu=" . $ddCalcu . '&sv=10000&crossdomain=www&ct=www';

  200. $playurl = get_data($p, $headers);

  201. // **Step 3: 存入缓存**
  202. file_put_contents($cacheFile, json_encode(['url' => $playurl], JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));

  203. // **Step 4: 返回 M3U8 地址**
  204. header("Content-Type: application/vnd.apple.mpegURL");
  205. header('Location: ' . $playurl);
  206. exit;

  207. /**
  208. * 发送 GET 请求
  209. */
  210. function get_data($url, $header) {
  211.     $ch = curl_init($url);
  212.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  213.     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  214.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  215.     curl_setopt($ch, CURLOPT_TIMEOUT, 1);
  216.     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  217.     $data = curl_exec($ch);
  218.     curl_close($ch);
  219.     return $data;
  220. }
复制代码


配合m3u观看 可以用VLC 等播放器观看

爱生活,爱奶昔~
发表于 2025-2-10 03:35:23 | 查看全部
migu是移动的源吗,我之前发代码发不出去,改成txt传附件了
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2025-2-10 03:36:27 | 查看全部
zhiyang3 发表于 2025-2-10 03:35
migu是移动的源吗,我之前发代码发不出去,改成txt传附件了

是的
肥羊那边分享的
改了一下
爱生活,爱奶昔~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 关注公众号
  • 添加微信客服
© 2025 Naixi Networks 沪ICP备13020230号-1|沪公网安备 31010702007642号
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表