yf1197565391 发表于 6 天前

深圳php修改版

本帖最后由 yf1197565391 于 2025-1-25 11:14 编辑

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

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

// 通用 curl GET 请求
function curl_get($url, $params = null) {
    if ($params) $url .= '?' . http_build_query($params);
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_REFERER,'https://www.sztv.com.cn/pindao/index.html?id=7868');
    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');
    $data = curl_exec($ch);

curl_close($ch);
    return $data;
}

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

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

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

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

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

// 处理 IPTV 请求
$id = $_GET['id'] ?? 'szds';
if (isset($tv_list[$id])) {
    header('Content-Type: application/vnd.apple.mpegurl');
    echo get_m3u8_content($tv_list[$id], $tv_list[$id]);
} else {
    echo json_encode(['code' => 400, 'message' => 'Invalid request']);
}
?>


zow1990 发表于 6 天前

金生丽水 发表于 5 天前

谢谢楼主的分享

zxwwp 发表于 昨天 10:08

谢谢楼主的分享
页: [1]
查看完整版本: 深圳php修改版