要实现这个功能,你需要进行以下步骤:

  1. 配置Nginx服务器以处理M3U8文件的请求,并支持重写URL。你可以在Nginx配置文件中添加以下代码段:
location /index.m3u8 {
    if ($args ~* "^token=(.*)&time=(.*)$") {
        set $token $1;
        set $time $2;
    }
    if ($time < 1691507413) {
        return 403;
    }
    # 在这里添加生成token的PHP代码
    set $generated_token 'your_generated_token';
    if ($token != $generated_token) {
        return 403;
    }
    # 处理真实的M3U8请求
    proxy_pass https://www.baidu.com/index.m3u8;
}
  1. 在上述Nginx配置中的# 在这里添加生成token的PHP代码的位置,你需要添加PHP代码来生成token和有效期。以下是一个简单的示例:
<?php
$secret_key = 'your_secret_key';
$token_lifetime = 3600; // 1小时

$token = md5($secret_key . $_SERVER['REQUEST_TIME']);
$expire_time = $_SERVER['REQUEST_TIME'] + $token_lifetime;

echo '<script>window.location.href = "https://www.baidu.com/index.m3u8?token='.$token.'&time='.$expire_time.'";</script>';
?>
  1. 以上代码将生成一个带有token和有效期的JavaScript重定向页面。当用户访问https://www.baidu.com/index.m3u8时,Nginx将重定向到生成的JavaScript页面,该页面将重定向到https://www.baidu.com/index.m3u8?token=gfklgdfjklj8248&time=1691507413或类似的URL。

这样,用户只有在请求URL中提供正确的token并且在有效期内,才能访问M3U8文件。否则,Nginx将返回403 Forbidden错误

文件地址为httpswwwbaiducomindexm3u8 使用nginx修改成httpswwwbaiducomindexm3u8token=gfklgdfjklj8248&time=1691507413 才可以正常访问 token使用php动态生成 链接有效期1小时

原文地址: https://www.cveoy.top/t/topic/ixYA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录