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

部署Node.js Stremio插件至Vercel时M3U8链接403 Forbidden求助

解决方案

1. 给请求添加浏览器级别的请求头

目标CDN(milocdn.com)大概率在做请求合法性校验,Vercel默认的请求UA会被识别为服务器爬虫,直接拦截。修改axios请求,模拟浏览器的请求参数:

const { data: streamProviderData } = await axios.get(streamProviderUrl, {
  headers: {
    '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',
    'Referer': 'https://ryderjet.com/' // 必须和嵌入页的主域名一致
  }
});

如果这样获取的M3U8还是403,那需要让插件做一层转发:不要直接返回M3U8链接,而是提供一个Vercel接口,由接口带上上述请求头去拉取M3U8内容,再转发给客户端。

2. 绕开Vercel的IP限制

很多CDN会屏蔽云服务商的IP段(包括Vercel用的AWS IP),可以试试:

  • 给axios请求加代理,用第三方代理服务(注意合规),让请求从非云服务商IP发出,这样获取的M3U8链接会绑定合法IP,不会被拦截。
  • 在Vercel控制台切换部署区域,不同区域的IP段可能没被目标CDN拉黑。

3. 应对ASN绑定限制

对比两个链接的asn字段:本地是2860(你的ISP),Vercel是14618(AWS),说明目标CDN会验证请求来源的自治系统编号,只有生成链接时对应的ASN才能访问。这种情况下,要么用代理模拟本地ASN的IP,要么用Vercel接口做转发,由服务器带上合法请求头去拉流。

4. 调整Vercel函数配置

在项目根目录创建vercel.json,增加函数的超时时间和内存分配,避免请求中途被中断:

{
  "functions": {
    "api/*.js": {
      "maxDuration": 60,
      "memory": 1024
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 01:03:14