找回密码
 注册需人工审核(节假日除外)
搜索
查看: 548|回复: 4

深圳php修改版

[复制链接]

签到天数: 194 天

[LV.7]炉火纯青

发表于 7 天前 | 显示全部楼层 |阅读模式
本帖最后由 yf1197565391 于 2025-1-25 11:14 编辑

可以正常输出下载文件  但是播放器无法播放  求助大神指点下
  1. <?php
  2. header('Content-Type: application/json');

  3. // IPTV 频道列表
  4. $tv_list = [
  5.     'szws' => ['AxeFRth', '7867', '深圳卫视'],
  6.     'szds' => ['ZwxzUXr', '7868', '都市频道'],
  7.     'szdsj' => ['4azbkoY', '7880', '电视剧频道'],
  8.     'szgg' => ['2q76Sw2', '7874', '公共频道'],
  9.     'szcj' => ['3vlcoxP', '7871', '财经频道'],
  10.     'szse' => ['1SIQj6s', '7881', '少儿频道'],
  11.     'szyd' => ['wDF6KJ3', '7869', '移动电视'],
  12.     'szyh' => ['BJ5u5k2', '7878', '宜和购物频道'],
  13.     'szgj' => ['sztvgjpd', '7944', '国际频道'],
  14. ];

  15. // 通用 curl GET 请求
  16. function curl_get($url, $params = null) {
  17.     if ($params) $url .= '?' . http_build_query($params);
  18.     $ch = curl_init($url);
  19.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  20.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  21.     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
  22.     curl_setopt($ch, CURLOPT_REFERER,'https://www.sztv.com.cn/pindao/index.html?id=7868');
  23.     curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36');
  24.     $data = curl_exec($ch);

  25. curl_close($ch);
  26.     return $data;
  27. }

  28. // 获取密钥
  29. function get_key($url, $params) {
  30.     return json_decode(curl_get($url, $params), true);
  31. }

  32. // Base64 解码逻辑
  33. function ba($a) {
  34.     return base64_decode(implode('', array_reverse(str_split(substr($a, strlen($a) / 2) . substr($a, 0, strlen($a) / 2)))));
  35. }

  36. // 获取 m3u8 文件内容
  37. function get_m3u8_content($live_id, $cdn_id) {
  38.     $live_key = ba(get_key('https://hls-api.sztv.com.cn/getCutvHlsLiveKey', [
  39.         't' => time(),
  40.         'id' => $live_id,
  41.         'token' => md5(time() . $live_id . 'cutvLiveStream|Dream2017'),
  42.         'at' => '1'
  43.     ]));
  44.    
  45.     $cdn_key = get_key('https://sttv2-api.sztv.com.cn/api/getCDNkey.php', [
  46.         'domain' => 'sztv-live.sztv.com.cn',
  47.         'page' => 'https://www.sztv.com.cn/pindao/index.html?id=' . $cdn_id,
  48.         'token' => md5('iYKkRHlmUanQGaNMIJziWOkNsztv-live.sztv.com.cn' . time() * 1000),
  49.         't' => time() * 1000
  50.     ])['key'];

  51.     $t = dechex(time());
  52.     $sign = md5("$cdn_key/$live_id/500/$live_key.m3u8$t");
  53.     $url = "https://sztv-live.sztv.com.cn/$live_id/500/$live_key.m3u8?sign=$sign&t=$t";

  54.     return preg_replace_callback('/(\d{13})(\/\d+\.ts)/', function ($matches) use ($live_id) {
  55.         return "https://sztv-live.sztv.com.cn/$live_id/500/{$matches[1]}{$matches[2]}";
  56.     }, curl_get($url));
  57. }

  58. // 处理 IPTV 请求
  59. $id = $_GET['id'] ?? 'szds';
  60. if (isset($tv_list[$id])) {
  61.     header('Content-Type: application/vnd.apple.mpegurl');
  62.     echo get_m3u8_content($tv_list[$id][0], $tv_list[$id][1]);
  63. } else {
  64.     echo json_encode(['code' => 400, 'message' => 'Invalid request']);
  65. }
  66. ?>
复制代码


点评

1.$cdn_key直接抓取。用接口获取容易失败。 2.curl_get函数加个re请求头。  发表于 6 天前

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

头像被屏蔽

签到天数: 1 天

[LV.1]初学乍练

发表于 7 天前 | 显示全部楼层

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 486 天

[LV.9]已臻大成

发表于 6 天前 | 显示全部楼层
谢谢楼主的分享

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

签到天数: 1 天

[LV.1]初学乍练

发表于 前天 10:08 | 显示全部楼层
谢谢楼主的分享

人生没有彩排,每天都是直播。

Welcome to iptv.cc !

回复

使用道具 举报

本版积分规则

Archiver|手机版|小黑屋|IPTV论坛 | 管理员邮箱:a@8494.net

本站以兴趣爱好为宗旨,非经营性质,不以任何形式收取任何费用。IPTV论坛没有任何官方Q群,V群,T群,禁止留任何联系方式,请配合。

免责声明:本站上述内容来自网络,不得用于商业或非法用途,您必须在下载后24小时内,从设备中删除,否则后果自负。如内容侵犯您的版权、著作权,请联系我,第一时间处理。

GMT+8, 2025-1-31 02:48 , Processed in 0.097387 second(s), 18 queries .

IPTV论坛 创建于 2023年5月1日

快速回复 返回顶部 返回列表