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

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

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

注册账号,享受无广告的清爽界面!

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

×
<?php
error_reporting(0);

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

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

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

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

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

    'dfws' => '651632648', //东方卫视
    'cqws' => '738910914', //重庆卫视
    'jlws' => '738906889', //吉林卫视
    'lnws' => '630291707', //辽宁卫视
    'nmws' => '738911430', //内蒙古卫视
    'nxws' => '738910535', //宁夏卫视
    'gsws' => '738910997', //甘肃卫视
    'qhws' => '738898486', //青海卫视
    'sxws' => '738910838', //陕西卫视
    'sdws' => '738910366', //山东卫视
    'hnws' => '790187291', //河南卫视
    'hubws' => '738906825', //湖北卫视
    'hunws' => '635491149', //湖南卫视
    'jxws' => '783847495', //江西卫视
    'jsws' => '623899368', //江苏卫视
    'dnws' => '849116810', //东南卫视
    'hxws' => '849119120', //海峡卫视
    'gdws' => '608831231', //广东卫视
    'dwqws' => '608917627', //大湾区卫视
    'gxws' => '783844132', //广西卫视
    'ynws' => '783846580', //云南卫视
    'gzws' => '783845222', //贵州卫视
    'xjws' => '738910476', //新疆卫视
    'xzws' => '738910461', //西藏卫视
    'hinws' => '738906860', //海南卫视

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

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

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

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

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

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

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

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

    'xmpd' => '609158151', //熊猫01高清
    'xm1' => '608933610', //熊猫1
    'xm2' => '608933640', //熊猫2
    'xm3' => '608934619', //熊猫3
    'xm4' => '608934721', //熊猫4
    'xm5' => '608935104', //熊猫5
    'xm6' => '608935797', //熊猫6
    'xm7' => '609169286', //熊猫7
    'xm8' => '609169287', //熊猫8
    'xm9' => '609169226', //熊猫9
    'xm10' => '609169285', //熊猫10
];

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

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

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

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

$clientId = md5(generateRandomString());
$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';

$d = date("YmdHis");

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

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

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

$live = $json['body']['urlInfo']['url'];
$uas = parse_url($live);
parse_str($uas["query"], $arr);
$puData = str_split($arr['puData']);
$ProgramID = str_split($n[$id]);
$Program = str_split('yzwxcdwbgh');

$s = count($puData);
$arr_key = [];
for ($v = 0; $v < $s / 2; $v++) {
    $arr_key[] = $puData[$s - $v - 1];
    $arr_key[] = $puData[$v];
    switch ($v) {
        case 1:
        case 2:
        case 4:
            $arr_key[] = arrkey($v);
            break;
        case 3:
            $arr_key[] = $Program[$ProgramID[1]];
            break;
    }
}
$ddCalcu = join($arr_key);

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

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

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

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

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

/**
 * 发送 GET 请求
 */
function get_data($url, $header) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

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

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

使用道具 举报

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

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

使用道具 举报

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

本版积分规则

投诉/建议联系

@naixinet

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任!
  • 关注公众号
  • 添加微信客服
Copyright © 2025 Nyarime. 沪ICP备13020230号-1|沪公网安备 31010702007642号
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表