要检查的加密HLS信号
| Signal | 这意味着什么 | 要测试什么 |
|---|---|---|
| #EXT-X-KEY:METHOD=AES-128 | 该流使用标准HLS段加密。 | 确认关键 URI 通过与段相同的直接或代理路径加载。 |
| 密钥请求被阻止 | 清单已加载,但当播放器获取密钥时播放失败。 | 启用代理或修复密钥 URL 的Access-Control-Allow-Origin。 |
| 受保护的关键端点 | 除非请求包含原始页面上下文,否则键 URL 将返回 403。 | 通过代理将源页面设置为Referer并重试播放。 |
| 旋转钥匙 | 随着时间的推移,播放列表会引用多个键。 | 测试足够的流以确认每个引用的键仍然可访问。 |
| 数字版权管理系统 | 该流媒体需要 Widevine、FairPlay、PlayReady 或许可证交换。 | 使用许可的应用程序或播放器。该工具不会绕过 DRM。 |
如何测试加密的M3U8流
- 1粘贴加密的M3U8URL使用直接URL开始播放,这样您就可以查看清单、密钥和段是否可以访问,而无需额外的路由。
- 2检查舱单和健康报告运行验证器以检查播放列表是否引用 #EXT-X-KEY 以及它是否看起来像现场直播或 VOD HLS。
- 3将键和段一起路由如果CORS阻止密钥或媒体文件,请启用代理,以便清单、密钥 URI 和段都使用相同的浏览器可读源。
- 4为受保护的关键端点添加Referer如果按键URL返回403,则通过代理将原始播放页面设置为Referer并重试流。
- 5在 DRM 边界处停止如果流需要许可证服务器或 DRM 堆栈,请使用授权播放器。 AES-128 密钥访问与 DRM 绕过不同。
AES-128 HLS 与 DRM 不同
AES-128HLS使用#EXT-X-KEY在播放列表中存储密钥URI并加密正常媒体片段。如果您被允许访问密钥,浏览器HLS播放器通常可以解密播放。 DRM 系统需要许可证交换和平台 CDM,此工具无法取代或绕过这些。
为什么即使清单加载,关键URL也会失败
清单、密钥和段可以存在于不同的路径或域中。流可以公开播放列表,但通过CORS、签名的URL到期或Referer检查来阻止密钥。对于加密流,链中的每个请求都必须可访问,而不仅仅是第一个 .m3u8 文件。
转换如何处理加密HLS
对于可访问的普通AES-128流,MP4转换器可以获取清单引用的密钥并在FFmpeg步骤期间解密。如果密钥访问被阻止,请在尝试导出 MP4 或 MP3 之前修复代理或 Referer 路由。
相关加密HLS页面
- M3U8 至 MP4 转换器 可以导出可访问的 AES-128 HLS 流以及本地 FFmpeg WebAssembly。
- HLSCORS错误 解释了为什么键和段请求需要浏览器可读的响应。
- 自定义RefererM3U8播放器 涵盖拒绝直接请求的受保护密钥或段端点。
常见问题
该播放器可以播放加密的M3U8流吗?
是的,对于正常的AES-128HLS流,当清单、密钥URL和媒体段可达时。它无法绕过 DRM 系统或许可证服务器。
#EXT-X-KEY 在 M3U8 文件中意味着什么?
#EXT-X-KEY 告诉 HLS 播放器如何加密媒体片段以及在哪里获取解密密钥。对于 AES-128 HLS,必须可以访问该键 URL 才能进行播放或转换。
为什么加载清单后加密流会失败?
最常见的原因是密钥请求被阻止。清单可能会加载,但当浏览器无法获取 AES-128 密钥或后来加密的片段时,播放会失败。
CORS 代理可以帮助加密HLS 吗?
是的,如果问题是浏览器访问。代理必须将清单、密钥URL和媒体段一起路由,以便浏览器可以读取每个加密的HLS请求。
这是否会绕过 Widevine、FairPlay 或 PlayReady?
不需要。受 DRM 保护的流需要授权许可证交换和平台 DRM 支持。该工具用于正常的HLS调试,而不是DRM绕过。