这样改对吗,看不了,帮帮我
if($id=='bjws4k')这里面id要和这里面一致'bjws' => '5755n511tbk8flo40l4c71l0sdf',//北京卫视 aallsskkgg 发表于 2025-3-29 16:20
这样改对吗,看不了,帮帮我
这样肯定不行的啊 'bjws4k' => '5755n511tbk8flo40l4c71l0sdf',//北京卫视4K 简单粗暴的时候回来看看能不能打印 10086 发表于 2025-3-29 17:12
你id不对。。
你把下面那个判断句的bjws4k改成bjws
然后已经有if判断了下面那句记得删一下 ...
<?php
error_reporting(0);
$id = $_GET['id']??'bjwy';
$n = [
'bjws4k' => '5755n511tbk8flo40l4c71l0sdf',//北京卫视
'bjwy' => '54db6gi5vfj8r8q1e6r89imd64s',//BRTV文艺
];
$t = time();
$sign = substr(md5($n[$id]."151".$t.'TtJSg@2g*$K4PjUH'),0,8);
$url = "https://pc.api.btime.com/video/play?id=$n[$id]&sign=$sign×tamp=$t&type_id=151";
$d = file_get_contents($url);
$stream_url = json_decode($d,1)['data']['video_stream']['stream_url'];
if($id=='bjws4k'){
$playurl = $stream_url;
} else {
$playurl = base64_decode(base64_decode(strrev($stream_url)));
}
$playurl = base64_decode(base64_decode(strrev($stream_url)));
header('location:'.$playurl);
//print_r($playurl);
?>
也不行啊,帮我看看还哪里不对 本帖最后由 tongxunlu 于 2025-3-31 10:43 编辑
aallsskkgg 发表于 2025-3-31 08:48
也不行啊,帮我看看还哪里不对
漏了header
$options = [
'http' => [
'method' => 'GET',
'header' => implode("\r\n", [
'Accept: */*',
'Referer: https://www.btime.com/',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
])
]
];
$context = stream_context_create($options);
$d = file_get_contents($url,false, $context);
$stream_url = json_decode($d,1)['data']['video_stream']['stream_url'];
if($id=='bjws4k'){
$playurl = $stream_url;
} else {
$playurl = base64_decode(base64_decode(strrev($stream_url)));
}
header('location:'.$playurl); 用豆包编程改的,测试了一下,可以用。
<?php
error_reporting(0);
// 获取id参数,若未提供则默认为bjwy
$id = isset($_GET['id']) ? $_GET['id'] : 'bjwy';
// 定义频道ID和对应的密钥
$n = [
'bjws' => '5755n511tbk8flo40l4c71l0sdf',// 北京卫视
'bjwy' => '54db6gi5vfj8r8q1e6r89imd64s' // BRTV文艺
];
// 检查id是否存在于数组中
if (!array_key_exists($id, $n)) {
// 若不存在,输出错误信息并终止脚本
die("Invalid ID");
}
// 获取当前时间戳
$t = time();
// 生成签名
$sign = substr(md5($n[$id] . "151" . $t . 'TtJSg@2g*$K4PjUH'), 0, 8);
// 构建请求URL
$url = "https://pc.api.btime.com/video/play?id=" . $n[$id] . "&sign=" . $sign . "×tamp=" . $t . "&type_id=151";
// 设置请求头
$options = [
'http' => [
'method' => 'GET',
'header' => implode("\r\n", [
'Accept: */*',
'Referer: https://www.btime.com/',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
])
]
];
// 创建上下文
$context = stream_context_create($options);
// 发起网络请求
$d = file_get_contents($url, false, $context);
// 检查请求是否成功
if ($d === false) {
// 若失败,输出错误信息并终止脚本
die("Failed to fetch data from the server");
}
// 解析JSON数据
$jsonData = json_decode($d, true);
// 检查JSON解析是否成功
if ($jsonData === null || !isset($jsonData['data']['video_stream']['stream_url'])) {
// 若失败,输出错误信息并终止脚本
die("Invalid JSON data or missing stream URL");
}
// 获取视频流URL
$stream_url = $jsonData['data']['video_stream']['stream_url'];
// 根据id选择播放URL
if ($id == 'bjws') {
$playurl = $stream_url;
} else {
$playurl = base64_decode(base64_decode(strrev($stream_url)));
}
// 重定向到播放URL
header('location:' . $playurl);
// 用于调试,可注释掉
// print_r($playurl);
?> aallsskkgg 发表于 2025-3-31 08:48
也不行啊,帮我看看还哪里不对
if($id=='bjws4k'){
$playurl = $stream_url;
} else {
$playurl = base64_decode(base64_decode(strrev($stream_url)));
}
$playurl = base64_decode(base64_decode(strrev($stream_url)));
header('location:'.$playurl);
//print_r($playurl);
base64解码这行重复,把最后一行$playurl = base64_decode(base64_decode(strrev($stream_url)));删掉 aallsskkgg 发表于 2025-3-29 16:20
这样改对吗,看不了,帮帮我
$playurl = base64_decode(base64_decode(strrev($stream_url)));
if($playurl == null){
echo "因版权方要求,暂无直播";
} else {
header('location:'.$playurl);
//print_r($playurl);
}
?>
这部分改为:
header('location:'.$playurl);
//print_r($playurl);
?> tongxunlu 发表于 2025-3-31 10:42
漏了header
$options = [
'http' => [
完美,谢谢! sunyeen 发表于 2025-3-31 12:38
用豆包编程改的,测试了一下,可以用。
可用,谢谢! 向guoma大佬致敬
页:
1
[2]