|
立刻注册账号,享受更清爽的界面!
您需要 登录 才可以下载或查看,没有账号?注册
×
- <?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 等播放器观看
|
|