查看: 7|回复: 0

江西赣橙TV

[复制链接]

28

主题

3

回帖

26

积分

新手上路

积分
26
发表于 昨天 11:15 | 显示全部楼层 |阅读模式
  1. <?php

  2. $channelMap = [
  3.     'cctv1' => 'G_CCTV-1-HQ',
  4.     'cctv2' => 'G_CCTV-2-HQ',
  5.     'cctv3' => 'G_CCTV-3-HQ',
  6.     'cctv4' => 'G_CCTV-4-HQ',
  7.     'cctv5' => 'G_CCTV-5-HQ',
  8.     'cctv6' => 'G_CCTV-6-HQ',
  9.     'cctv8' => 'G_CCTV-8-HQ',
  10.     'cctv9' => 'G_CCTV-9-HQ',
  11.     'cctv10' => 'G_CCTV-10-HQ',
  12.     'cctv11' => 'G_CCTV-11-HQ',
  13.     'cctv12' => 'G_CCTV-12-HQ',
  14.     'cctv13' => 'G_CCTV-13-HQ',
  15.     'cctv14' => 'G_CCTV-14-HQ',
  16.     'cctv15' => 'G_CCTV-15',
  17.     'cetv1' => 'G_CETV-1-HQ',
  18.     'cetv4' => 'G_CETV-4-HQ',
  19.     'bjws' => 'G_BEIJING-HQ',
  20.     'dfws' => 'G_DONGFANG-HQ',
  21.     'tjws' => 'G_TIANJIN-HQ',
  22.     'cqws' => 'G_CHONGQING-HQ',
  23.     'hljws' => 'G_HEILONGJIANG-HQ',
  24.     'jlws' => 'G_JILIN-HQ',
  25.     'lnws' => 'G_LIAONING-HQ',
  26.     'nmws' => 'G_NEIMENGGU',
  27.     'nxws' => 'G_NINGXIA',
  28.     'gsws' => 'G_GANSU',
  29.     'qhws' => 'G_QINGHAI',
  30.     'sxws' => 'G_SHANXI',
  31.     'hbws' => 'G_HEBEI-HQ',
  32.     'sxiws' => 'SXWS',
  33.     'sdws' => 'G_SHANDONG-HQ',
  34.     'ahws' => 'G_ANHUI-HQ',
  35.     'hnws' => 'G_HENAN-HQ',
  36.     'hubws' => 'G_HUBEI-HQ',
  37.     'hunws' => 'G_HUNAN-HQ',
  38.     'jxws' => 'G_JIANGXI-HQ',
  39.     'jsws' => 'G_JIANGSU-HQ',
  40.     'zjws' => 'G_ZHEJIANG-HQ',
  41.     'dnws' => 'G_DONGNAN-HQ',
  42.     'gdws' => 'G_GUANGDONG-HQ',
  43.     'szws' => 'G_SHENZHEN-HQ',
  44.     'gxws' => 'G_GUANGXI-HQ',
  45.     'ynws' => 'G_YUNNAN',
  46.     'gzws' => 'G_GUIZHOU-HQ',
  47.     'scws' => 'G_SICHUAN-HQ',
  48.     'xjws' => 'G_XINJIANG',
  49.     'btws' => 'G_BINGTUAN',
  50.     'xzws' => 'G_XIZANG',
  51.     'hinws' => 'G_HAINAN-HQ',
  52.     'xdkt' => 'G_XUANDONG',
  53.     'jyjs' => 'G_JINYINGJS-HQ',
  54.     'jykt' => 'G_JINYING',
  55.     'jxds' => 'G_JXDS',
  56.     'jxjs' => 'G_JXJJSH',
  57.     'jxys' => 'G_JXYSLY',
  58.     'jxgg' => 'G_JXGGNY',
  59.     'jxse' => 'G_JXSE',
  60.     'jxxw' => 'G_JXXW',
  61.     'fsgw' => 'G_FENGSHANG',
  62.     'jxjy' => 'G_JXJY',
  63. ];

  64. function main($id, $channelMap) {
  65.     if (empty($id) || !isset($channelMap[$id])) {
  66.         return false;
  67.     }

  68.     $realId = $channelMap[$id];
  69.     $ch = curl_init();
  70.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  71.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  72.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  73.     curl_setopt($ch, CURLOPT_TIMEOUT, 10);
  74.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

  75.     curl_setopt($ch, CURLOPT_URL, 'https://jscn-auth-user.live.gitv.tv/v1/getAppToken');
  76.     curl_setopt($ch, CURLOPT_POST, true);
  77.     curl_setopt($ch, CURLOPT_HTTPHEADER, [
  78.         'Content-Type: application/json',
  79.         'checksum: e4b13e6cb63bf456e4f42e44c238f01a'
  80.     ]);
  81.     curl_setopt($ch, CURLOPT_POSTFIELDS, '{"partnerCode":"JSCN","timestamp":"1710725285"}');
  82.    
  83.     $tokenRes = curl_exec($ch);
  84.    
  85.     if (empty($tokenRes)) {
  86.         curl_close($ch);
  87.         return '';
  88.     }
  89.    
  90.     $tokenData = json_decode($tokenRes, true);
  91.     $token = $tokenData['data']['token'] ?? '';
  92.    
  93.     if (empty($token)) {
  94.         curl_close($ch);
  95.         return '';
  96.     }

  97.     curl_setopt($ch, CURLOPT_URL, 'https://jxcbn.live.gitv.tv/gitv_live/' . $realId . '/' . $realId . '.m3u8?partnerCode=JXCN&gAppChannel=XIAOMI&gMac=02:00:00:00:00:00&token=' . urlencode($token));
  98.     curl_setopt($ch, CURLOPT_POST, false);
  99.     curl_setopt($ch, CURLOPT_HTTPHEADER, []);
  100.     curl_setopt($ch, CURLOPT_POSTFIELDS, null);
  101.    
  102.     $playUrlRes = curl_exec($ch);
  103.     curl_close($ch);
  104.    
  105.     if (empty($playUrlRes)) {
  106.         return '';
  107.     }
  108.    
  109.     $playData = json_decode($playUrlRes, true);
  110.     return $playData['data']['playinfo']['playurl'] ?? '';
  111. }

  112. $channelId = $_GET['id'] ?? '';

  113. if (empty($channelId) || !isset($channelMap[$channelId])) {
  114.     http_response_code(403);
  115.     exit;
  116. }

  117. $playUrl = main($channelId, $channelMap);

  118. if (!empty($playUrl)) {
  119.     header('Location: ' . $playUrl);
  120. } else {
  121.     http_response_code(404);
  122. }
复制代码



人生没有彩排,每天都是直播
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:[email protected]

返回顶部