有时候在网页上看到一段视频,想拿到它的M3U8链接放到别的播放器里看,或者下载保存。怎么找这个链接?其实并不难,用浏览器的开发者工具就能搞定。我一步步教你怎么做。
在视频页面按F12打开开发者工具,切换到Network标签页。然后刷新页面,或者点击播放按钮。这时候所有网络请求都会列在这里。
关键一步是过滤。Network面板底下有个过滤框,输入m3u8回车,只显示包含m3u8的请求。大多数情况下,视频页面的M3U8索引文件请求会直接出现在列表里。

有时候过滤m3u8之后啥也没有,别慌。可能网站用的是别的加载方式,比如先请求一个JSON接口,返回M3U8的地址。这时候你可以过滤.json或者xhr,看看有没有可疑的接口。
一般来说,视频流的请求类型是xhr或者media,大小通常很小(M3U8文件本身只有几KB),而TS切片的请求会比较大,几百KB到几MB不等。
找到疑似M3U8的请求后,点进去,在右侧的Headers或者Response里能看到完整的URL。右键 -> Copy -> Copy link address,链接就到手了。
现在很多视频网站学精了,M3U8链接不是直接写在页面里的,而是通过JavaScript动态生成的,甚至做了混淆。这种情况下,Network面板里可能看不到直接的m3u8请求。
我的办法是:在Network面板里过滤.ts。TS切片总是要加载的,找到了TS请求,看看它的URL结构,往上推就能猜出M3U8的地址。比如TS地址是https://cdn.xxx.com/video/123/seg001.ts,那M3U8很可能在https://cdn.xxx.com/video/123/index.m3u8。
手机浏览器没法直接按F12,但可以用远程调试。Chrome和Edge都支持把手机连到电脑上,通过USB调试查看手机浏览器的Network请求。具体步骤稍微复杂一点,网上教程很多,搜"Chrome remote debug"就行。
还有一个笨办法:手机连WiFi,电脑上用Wireshark或者Fiddler抓整个局域网的包,过滤HTTP请求,也能找到M3U8链接。不过这个需要点网络知识,新手可能觉得麻烦。
需要提醒的是,从网页里提取出来的M3U8链接,往往绑定了Cookie、Referer或者IP。你单独拿出来可能播不了,需要配合原页面的环境使用。这点要有心理准备,不是每个链接都能万能播放。