哪些标头对于 M3U8 热链接保护很重要?
| 标头 | 应该是什么 | 何时使用它 |
|---|---|---|
| Referer | 流通常播放的页面URL。 | 当源拒绝直接 .m3u8 请求或返回 403 时使用。 |
| User-Agent | 发送到源的客户端身份。 | 当源允许浏览器但拒绝机器人或未知客户端时使用。 |
| Origin | 请求的 Web 应用程序来源。 | 通常将其留给浏览器或代理;除非您控制端点,否则不要伪造它。 |
| Cookie | 原始站点的会话状态。 | 除非您拥有流工作流程,否则请避免使用。该玩家不要求cookie。 |
如何使用自定义Referer玩M3U8
- 1
找到原来的播放页面
使用流通常工作的页面作为Referer。请勿将 .m3u8 URL 本身用作 Referer。
- 2
粘贴M3U8URL
将清单粘贴到播放器中,然后在没有自定义标头的情况下尝试播放一次以建立基线。
- 3
启用CORS代理
自定义Referer和User-Agent转发需要代理,因为浏览器不允许页面脚本在直接媒体请求上设置这些标头。
- 4
设置Referer和User-Agent
打开高级标题控件,将原始页面URL粘贴为Referer,并仅在源过滤客户端时添加普通桌面浏览器User-Agent。
- 5
运行健康报告
通过相同的代理/标头路径验证流,以便您可以查看清单、密钥或段是否仍然被阻止。
为什么浏览器播放器不能直接设置Referer
浏览器保护 Referer 和 User-Agent 等标头。网页不能针对直接的HLS段请求自由地重写它们。这就是该工具通过可选代理转发自定义标头的原因:浏览器与代理通信,代理与带有您选择的标头的 HLS 源通信。
Referer 值通常有效
使用嵌入视频的规范页面 URL,例如 https://example.com/watch/123。请勿使用 CDN 域或 .m3u8 URL,除非这是来源期望的实际页面。如果源页面重定向,请使用浏览器地址栏中显示的最后第 URL。
如何区分盗链保护与CORS
CORS 阻止浏览器读取响应。热链接保护使源拒绝请求,除非标头与其策略相匹配。如果代理修复了CORS,但源端仍然返回 403,则添加Referer。如果在设置Referer之后开始播放,则该流受到热链接保护。
相关HLS调试页面
- HLSCORS错误 解释何时被阻止的浏览器请求需要 CORS 标头或代理。
- M3U8 链接故障排除 涵盖了针对死链接和受保护链接的更广泛的故障检查表。
常见问题
我可以为 M3U8 流设置自定义 Referer 吗?
是的。启用代理,打开高级标题控件,并将流通常播放的页面URL设置为Referer。代理将 Referer 转发到 HLS 源。
为什么浏览器不能直接设置Referer?
Referer 和 User-Agent 是受保护的请求标头。浏览器 JavaScript 无法针对直接媒体请求自由重写它们,因此自定义标头测试需要一个将标头转发到服务器端的代理。
对于受热链接保护的 HLS,我应该使用什么Referer?
使用嵌入流的原始网页URL,而不是.m3u8URL。许多源在提供清单、密钥或媒体片段之前会检查该页面。
我还应该更改User-Agent吗?
仅当来源按客户端过滤时。从单独的Referer开始,如果流仍然被拒绝,然后添加普通的桌面浏览器User-Agent。
自定义Referer是否适用于受 DRM 保护的流?
不会。Referer 可以帮助保护热链接,但它不能绕过 Widevine、FairPlay 或 PlayReady 等 DRM 系统。