我使用 Chrome 浏览器扩展来解析从 .m3u8 URL 流式传输视频的网页。
是否可以使用视频元素中的 blob URL 来查找源 .m3u8 URL?
这是视频元素的示例
<video class="jw-video jw-reset" tabindex="-1" disableremoteplayback=""
src="blob:https://www.example.com/c15f59e0-872f-43c0-9811-ef907362ef2b"
webkit-playsinline="" playsinline=""
id="yui_3_17_2_1_1731598374038_37">
</video>
以下是可能的 .m3u8 URL:
“https://souvod.bynetcdn.com/vod/smil:vod/example/PRV2/se8SHJBRO2/App/se8SHJBRO2_10.smil/playlist.m3u8?md5=1eIJ0a3gmKuZsbXj2GIA7g&expires=1731653039”
“https://souvod.bynetcdn.com/vod/smil:vod/example/PRV2/T9fPkHmcGS/App/T9fPkHmcG S_10.smil/chunklist_b400000.m3u8?md5=yoWmdzXdGRVlOvJQjsqVwg&expires=1731653048"
“https://souvod.bynetcdn.com/vod/smil:vod/openu/PRV2/se8SHJBRO2/App/se8SHJBRO2 _10.smil/chunklist_b400000.m3u8?md5=vq7cq3DmDwbN2YlwGx0zpA&expires=1731653742"
是否可以使用视频元素中的 blob URL 来查找源 .m3u8 URL?
不。
在这种情况下,M3U8 HLS 播放列表由脚本加载。 浏览器本身不会自行加载。
该脚本初始化 MediaSource(媒体源扩展 API 或 MSE 的一部分)。 即使不涉及实际的 Blob 对象,也会创建该 MediaSource 的 URL,并且它具有
blob:
前缀。 该脚本将数据附加到 MediaSource。 同样,浏览器本身不知道也不关心数据来自哪里。 该脚本只是使用 Fetch API 来获取播放列表及其引用的媒体片段。