服务器托管运行php方案
感谢gaoma大神提供的方案 :https://iptv.cc/thread-5725-1-1.html这里只对代码做了简单改动,使php代理可以在服务器上托管。
直接服务器上传这两个php,再创建一个 sz.json文件(记得权限664),用来缓存数组。 服务器定时运行下面php,目的缓存最新数组。
<?php
$n = [
'cctv1?id=1725&uin=1632?CCTV1综合',
'dyjc?id=1793&uin=2311?CCTV第一剧场',
'zhms?id=3782&uin=4251?中华美食',
'cptv?id=3341&uin=3698?昌平电视台',
'dqzh?id=2281&uin=1463?大庆新闻综合',
'dqjy?id=2283&uin=1463?大庆教育',
'nazh?id=2475&uin=3543?牡丹江宁安综合',
'tlzh?id=2584&uin=3816?铁岭新闻综合',
'jptv1?id=1066&uin=1332?大连金普一套',
'jptv2?id=2598&uin=1332?大连金普二套',
'bdzh?id=3067&uin=1630?保定新闻综合',
'bdgg?id=3068&uin=1630?保定公共',
'bdsh?id=3069&uin=1630?保定生活健康',
'jzzh?id=732&uin=1724?衡水冀州综合',
'wqzh?id=3654&uin=1425?衡水武强综合',
'qxtv?id=2988&uin=4048?太原清徐电视台',
'hmxw?id=2125&uin=2556?临汾侯马新闻综合',
'qwzh?id=1203&uin=2653?临汾曲沃新闻综合',
'lltv1?id=2652&uin=2268?吕梁一套',
'lltv2?id=2653&uin=2268?吕梁二套',
'jctv?id=3406&uin=1779?吕梁交城电视台',
'lztv?id=3407&uin=1723?长治潞州电视台',
'rczh?id=2511&uin=3580?运城芮城综合',
'zbzh?id=2308&uin=3185?淄博新闻综合',
'jxzh?id=1306&uin=2606?济宁嘉祥新闻综合',
'jxsh?id=1307&uin=2606?济宁嘉祥生活',
'hztv1?id=3492&uin=4042?菏泽一套',
'hztv2?id=3493&uin=4042?菏泽二套',
'hztv3?id=3520&uin=4042?菏泽三套',
'ngzh?id=1588&uin=2465?宣城宁国新闻综合',
'sszh?id=3390&uin=4180?安庆宿松新闻综合',
'ssxq?id=3389&uin=4180?安庆宿松戏曲文艺',
'tczh?id=3350&uin=4104?安庆桐城综合',
'dszh?id=2334&uin=1364?宿州砀山新闻综合',
'fyzh?id=2851&uin=2577?阜阳新闻综合',
'fyjy?id=2852&uin=2577?阜阳教育',
'fygg?id=2853&uin=2577?阜阳公共',
'fyds?id=2854&uin=2577?阜阳都市文艺',
'fdzh?id=3780&uin=1167?肥东新闻综合',
'nyzh?id=142&uin=1081?南阳新闻综合',
'nygg?id=295&uin=1081?南阳公共',
'nykj?id=296&uin=1081?南阳科教',
'pyzh?id=3662&uin=3616?濮阳新闻综合',
'pygg?id=3017&uin=3616?濮阳公共',
'pyxtv?id=3753&uin=3616?濮阳县电视台',
'xxzh?id=3706&uin=4436?新乡新闻综合',
'xxgg?id=3708&uin=4436?新乡公共',
'hbzh?id=340&uin=1465?鹤壁新闻综合',
'pdsxwzh?id=1969&uin=2367?平顶山新闻综合',
'xyzh?id=3061&uin=1500?襄阳综合',
'xygg?id=2337&uin=1500?襄阳公共',
'xyjj?id=2675&uin=1500?襄阳经济生活',
'szzh?id=304&uin=1487?随州综合',
'sznc?id=305&uin=1487?随州农村',
'xtzh?id=509&uin=1832?仙桃新闻综合',
'cdzh?id=1982&uin=3165?武汉蔡甸新闻综合',
'xzzh?id=2904&uin=3951?武汉新洲综合',
'hszh?id=3031&uin=3065?黄石新闻综合',
'hsds?id=3032&uin=3065?黄石都市',
'hsgg?id=3623&uin=3065?黄石公共',
'zbhs?id=3071&uin=3065?直播黄石',
'eszh?id=1812&uin=3179?恩施新闻综合',
'eswl?id=1811&uin=3179?恩施文旅',
'bdtv?id=3522&uin=3179?巴东综合',
'xfzh?id=3567&uin=3179?咸丰综合',
'jmzh?id=3612&uin=1936?荆门新闻综合',
'hnws?id=680&uin=1202?湖南卫视',
'hnws2?id=1726&uin=1632?湖南卫视2',
'csxw?id=346&uin=1648?长沙新闻',
'cszf?id=348&uin=1648?长沙政法',
'lyxw?id=1788&uin=3275?长沙浏阳电视台',
'yyzh?id=1699&uin=2193?岳阳新闻综合',
'yywl?id=1701&uin=2193?岳阳文旅都市',
'zzzh?id=2053&uin=1366?株洲新闻综合',
'nxxw?id=1724&uin=1632?益阳南县新闻',
'xxxw?id=2581&uin=3815?湘西综合',
'xxgg?id=2582&uin=3815?湘西公共',
'yzzh?id=3088&uin=4100?郴州宜章新闻综合',
'ytzh?id=2574&uin=3313?鹰潭新闻综合',
'jnzh?id=2505&uin=3579?南京江宁综合',
'gyzh?id=777&uin=1909?连云港灌云综合',
'hazh?id=2778&uin=1610?淮安综合',
'wxha?id=808&uin=1610?无线淮安',
'xytv1?id=3177&uin=1812?徐州新沂1套',
'xytv2?id=3178&uin=1812?徐州新沂2套',
'xydy?id=2648&uin=1812?徐州新沂老电影',
'lazh?id=2747&uin=3568?杭州临安综合',
'fyxw?id=1181&uin=1482?杭州富阳新闻综合',
'lpxw?id=2513&uin=3767?杭州临平新闻',
'jdzh?id=187&uin=1176?杭州建德综合',
'tlxw?id=3566&uin=1163?杭州桐庐新闻综合',
'yqzh?id=171&uin=1356?温州乐清综合',
'yqxw?id=170&uin=1356?温州乐清新闻',
'yjzh?id=1335&uin=2768?温州永嘉新闻综合',
'wlzh?id=911&uin=1639?台州温岭新闻综合',
'wlms?id=1287&uin=1639?台州温岭民生休闲',
'xjzh?id=1603&uin=2515?台州仙居新闻综合',
'xcxw?id=1361&uin=2840?绍兴新昌新闻',
'xcsh?id=1362&uin=2840?绍兴新昌生活',
'nhzh?id=1423&uin=1329?宁波宁海新闻综合',
'fhzh?id=3152&uin=3512?宁波奉化新闻综合',
'cxzh?id=3697&uin=1346?宁波慈溪新闻综合',
'ajxw?id=1499&uin=1253?湖州安吉新闻综合',
'ajsh?id=1526&uin=1253?湖州安吉生活影视',
'jhzh?id=3711&uin=4099?金华新闻综合',
'ywzh?id=1796&uin=3071?金华义乌新闻综合',
'ywsm?id=2133&uin=3071?金华义乌商贸',
'ywgg?id=3090&uin=3071?金华义乌公共文艺',
'lxzh?id=1185&uin=1324?金华兰溪新闻综合',
'txzh?id=1511&uin=1043?嘉兴桐乡新闻综合',
'fqzh?id=699&uin=1945?福州福清综合',
'mhzh?id=2068&uin=2656?福州闽侯综合',
'ptzh?id=907&uin=1118?平潭新闻综合',
'ptly?id=908&uin=1118?平潭旅游文化',
'yazh?id=2597&uin=3454?三明永安综合',
'sxzh?id=425&uin=1567?三明沙县综合',
'yxzh?id=765&uin=2055?三明尤溪新闻综合',
'yxly?id=767&uin=2055?三明尤溪旅游宣传',
'qgtv?id=2333&uin=3708?泉州泉港一套',
'dhzh?id=2467&uin=3164?泉州德化综合',
'yctv1?id=1792&uin=2311?泉州永春综合',
'yctv2?id=1793&uin=2311?泉州永春公共',
'zztv1?id=175&uin=1116?漳州一套',
'zpzh?id=2803&uin=3350?漳州漳浦综合',
'jmtv?id=3102&uin=4113?厦门集美综合',
'xytv?id=643&uin=1629?茂名信宜电视台',
'kpzh?id=1434&uin=1132?江门开平综合',
'kpsh?id=1435&uin=1132?江门开平生活',
'zctv?id=3454&uin=3047?广州增城台',
'lzzh?id=1902&uin=3370?柳州新闻综合',
'lzkj?id=1808&uin=3370?柳州科教',
'ylzh?id=3289&uin=4042?玉林新闻综合',
'ylgg?id=3290&uin=4042?玉林公共',
'gy1?id=3398&uin=4263?贵阳新闻综合',
'yjtv?id=3043&uin=4088?铜仁印江电视台',
'njtv?id=1670&uin=1822?巴中南江电视台',
'mztv?id=1933&uin=3277?德阳绵竹电视',
'mztv2?id=3686&uin=3277?德阳绵竹电视2',
'shtv?id=391&uin=1743?遂宁射洪综合',
'akstv1?id=2229&uin=3643?阿克苏1套汉语综合',
'akstv2?id=2233&uin=3643?阿克苏2套维语综合',
'aksdj?id=2234&uin=3643?阿克苏党员远程教育',
'bejha?id=3377&uin=4239?阿勒泰布尔津哈语综合',
'dztv?id=1330&uin=1669?海南儋州台',
];
$result = [];
for ($i = 0; $i < count($n); $i++) {
$ar = explode("?", $n[$i]);
$pid = $ar; // 如:cctv1
$id = $ar; // 如:id=1725&uin=1632
$pn = $ar ?? '未知频道'; // 频道名,容错处理
$apiUrl = "https://1812501212048408.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/node-api.online/node-api/tv/getPlayAddress?{$id}&clientId=奥点有效Id" . getrand(8);
$h = [
"Referer: https://web.guangdianyun.tv/",
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
];
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $h);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if (isset($data['data']['hlsUrl'])) {
$extra_key = explode("extra_key=", $data['data']['hlsUrl']) ?? '';
$result[$pid] = [$id, $extra_key]; // 保存格式 ['cctv1' => ['id=xxx&uin=xxx', 'extra_key']]
}
}
file_put_contents(__DIR__ . '/sz.json', json_encode($result, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
echo "数据已成功写入 sz.json 文件。";
function getrand($length) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomIndex = random_int(0, strlen($characters) - 1);
$randomString .= $characters[$randomIndex];
}
return $randomString;
}
?>
<?php
error_reporting(0);
// 读取 sz.json 文件并解析为数组
$jsonData = file_get_contents(__DIR__ . '/sz.json');
$n = json_decode($jsonData, true);
// 获取频道 ID,默认为 cctv1
$id = isset($_GET['id']) ? $_GET['id'] : 'cctv1';
// 判断 ID 是否存在于 $n 中
if (!isset($n[$id])) {
exit('Invalid channel ID.');
}
// 构建 API 请求 URL
$apiUrl = "https://1812501212048408.cn-hangzhou.fc.aliyuncs.com/2016-08-15/proxy/node-api.online/node-api/tv/getPlayAddress?" . $n[$id] . "&clientId=奥点有效Id" . getrand(8);
// 设置请求头
$h = [
"Referer: https://web.guangdianyun.tv/",
"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
];
// 发送 CURL 请求
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $h);
$response = curl_exec($ch);
curl_close($ch);
// 解析返回数据
$data = json_decode($response, true);
// 拼接播放地址
$url = explode("&extra_key", $data['data']['hlsUrl']) . "&extra_key=" . $n[$id];
$burl = dirname($url)."/";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, $h);
$res = curl_exec($ch);
curl_close($ch);
header('Content-Type: application/vnd.apple.mpegurl');
print_r(preg_replace("/(.*?.ts)/i",$burl."$1",$res));
// 生成随机字符串函数
function getrand($length) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyz';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomIndex = random_int(0, strlen($characters) - 1);
$randomString .= $characters[$randomIndex];
}
return $randomString;
}
?>
调用方式:https://你的域名/gdy.php?id=cctv1
借花献佛,再次感谢gaoma大神提供的代码及方案。
看看,学习学习 两个PHP文件,第一个命名为gdy,第二个呢? $randomIndex = random_int(0, strlen($characters) - 1);这行报错,$pn = $ar ?? '未知频道'; $extra_key = explode("extra_key=", $data['data']['hlsUrl']) ?? '';这两行也报错 谢谢楼主分享 谢谢楼主分享! 人生没有彩排,每天都是直播。 这玩意还限制ip吧,国外的获取不了第一个php的内容 xiaren2 发表于 2025-5-3 08:36
这玩意还限制ip吧,国外的获取不了第一个php的内容
没有限制的,我在此字符被系统屏蔽测试成功。 0517 发表于 2025-5-2 23:45
两个PHP文件,第一个命名为gdy,第二个呢?
php名字随便起的,只有json文件名对应代码中的,如需要修改可以自己改一下。 93met 发表于 2025-5-3 00:23
$randomIndex = random_int(0, strlen($characters) - 1);这行报错,$pn = $ar ?? '未知频道'; $extr ...
检擦你的运行环境,代码没问题,php7.3-8.0军测试成功。 感谢楼主分享
页:
[1]
2