浏览器按F12打开开发者工具,网页切到Network(网络)标签页,视频实地刷新页面,网页等视频开始播放,视频实地然后看列表里那些不断蹦出来的网页文件。找后缀是视频实地.mp4、.m3u8、网页.flv或者干脆就是视频实地个巨大数字的请求,多半就是网页视频本体。这法子最直接,视频实地但有些网站会把视频切成几百个小片段,网页一个个.ts文件刷屏,视频实地这时候你需要的网页其实是那个.m3u8索引文件——它就是个播放清单,记录了所有小片的视频实地顺序和地址。
拿B站举例,网页你点开一个视频,Network里会冒出一堆带“mcdn”字样的请求,其中有个文件名长得像乱码、后缀是.m4s的家伙。别被吓到,这玩意儿其实就是视频流,只是被B站用自家格式包了一层。你把它下载下来,改后缀成.mp4,大多数播放器照样能放。不过得注意,B站分了视频流和音频流两条轨道,你得把两个.m4s都抓下来,再用格式工厂或者ffmpeg合并。麻烦吗?确实麻烦,但这就是国内大厂的典型做法——不想让你轻易拿到直链。
有些网站更鸡贼,视频地址藏在XHR请求的JSON响应里。比如某些课程网站,你点播放,Network里会有一个api.php或者get_video_info之类的请求,点开它的Response(响应)选项卡,里面是一大坨JSON数据。别急着关,用Ctrl+F搜“url”或者“mp4”,往往能直接翻到真实地址。有时候地址是加密的,一串base64或者带时间戳签名的字符串,这时候你得看它旁边的参数——比如有个“sign=xxx”或者“token=xxx”,把这些参数拼到地址后面,才能完整播放。
碰上那种用M3U8做HLS直播流的,比如电视直播网站,你抓到的是一大串.ts文件地址。手动一个个下载不现实,这时候得靠工具。我习惯用一个小脚本,把.m3u8文件里的所有.ts链接批量拉下来,再用ffmpeg合并成完整视频。命令行里输一行ffmpeg -i "http://example.com/playlist.m3u8" -c copy output.mp4,比你手动去点几百个请求高效得多。当然,前提是网站没做防盗链——有些站会检查请求头里的Referer,少了这个头,你拿到地址也下不动。
遇到那种视频藏得极深的,比如先加载一个播放器JS文件,再由JS动态生成视频地址的,就得去Sources(源代码)面板里翻JS了。搜“new Blob”或者“createObjectURL”,看到这两个关键词,说明视频被转成了二进制流存在内存里,你直接下载下来的文件多半是乱码。这种一般是大站为了防止爬虫搞的,实际破解难度高,而且容易踩法律红线——我建议遇到这种就收手,换个思路去查查有没有官方下载渠道或者第三方解析工具。
最后说句实在话,查视频地址这技术,用来看缓存、离线学习、剪素材都没问题,但别拿去盗录付费内容或者搞二次分发。我见过有人拿这套手法去扒别人付费课程,结果被版权方发律师函的——那代价,比你想的贵得多。工具本身没对错,关键看拿它干嘛。