You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP实现Auth-Token获取与带UA头重定向及Video.js播放问题

解决方案:处理UA头与播放器兼容问题

你的问题核心在于两点:一是请求环节未正确携带指定User-Agent,二是直接用Location重定向无法被Video.js这类播放器正确识别处理。下面是针对性的解决步骤:

1. 正确获取auth-token(携带指定UA)

原代码里file_get_contents用的是PHP默认的User-Agent,部分站点会验证UA才返回有效token。我们需要在获取token的请求里手动指定你需要的UA:

<?php
// 创建请求上下文,注入指定的User-Agent头
$requestContext = stream_context_create([
    'http' => [
        'header' => "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0\r\n"
    ]
]);

// 携带UA获取auth-token参数串
$authParams = file_get_contents("http://0--0.gq/Jio/Bittu_Ghosh_22.php", false, $requestContext);

// 做基础的有效性校验
if(empty($authParams)) {
    http_response_code(500);
    die("Failed to fetch valid auth parameters");
}

2. 替代重定向:用反向代理返回m3u8内容

Video.js这类播放器通常期望直接拿到媒体资源的内容,而非HTTP重定向指令。我们可以让PHP充当代理,请求目标m3u8(带上auth参数和指定UA),再把响应内容和正确的头信息返回给播放器:

<?php
// 创建请求上下文,注入指定的User-Agent头
$requestContext = stream_context_create([
    'http' => [
        'header' => "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0\r\n"
    ]
]);

// 携带UA获取auth-token参数串
$authParams = file_get_contents("http://0--0.gq/Jio/Bittu_Ghosh_22.php", false, $requestContext);

if(empty($authParams)) {
    http_response_code(500);
    die("Failed to fetch valid auth parameters");
}

// 拼接目标m3u8的完整URL
$targetM3u8Url = "http://test.m3u8" . $authParams;

// 携带UA请求目标m3u8内容
$m3u8Content = file_get_contents($targetM3u8Url, false, $requestContext);

if($m3u8Content === false) {
    http_response_code(404);
    die("Failed to fetch m3u8 content");
}

// 设置播放器能识别的响应头
header('Content-Type: application/vnd.apple.mpegurl');
header('Content-Length: ' . strlen($m3u8Content));

// 直接返回m3u8内容给播放器
echo $m3u8Content;
?>

为什么这样能解决问题?

  • 统一UA携带:不管是获取token还是请求目标m3u8,都严格使用你指定的User-Agent,确保请求符合站点要求。
  • 适配播放器逻辑:直接返回m3u8内容而非跳转指令,播放器可以直接解析播放,完美兼容Video.js这类媒体播放库。

额外优化建议

  • 可以添加token缓存逻辑(如果token有有效期),避免每次请求都重复获取,提升响应速度。
  • 增加更细致的错误捕获,比如网络超时、token格式异常等,返回更清晰的错误提示。

内容的提问来源于stack exchange,提问作者shubham ghosh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:27:38