为什么视频右键另存不下来
很多网站不把一部片子存成一个文件。它们把片子切成几秒钟一段的小片段,
再写一份清单,告诉播放器先放哪段、后放哪段。清单的后缀通常是 .m3u8(HLS)
或者 .mpd(DASH)。你在页面上右键,能看到的只是播放器这个壳,
底下那几百上千段是播一段取一段的,右键另存自然拿不到。
这么做是为了让视频能随网速自动换清晰度、能从中间点开就放。对网站是好事, 对想把视频存下来的人就多了一道手续:得先拿到清单,照着清单把每一段取回来,再按顺序拼成一个文件。
VGrab 是怎么做的
装上扩展之后不用开任何开关。你照常打开视频页面、点播放,扩展在后台看着这一页发出去的请求, 认出里面的清单和视频文件。图标右下角会显示这一页发现了几条。
- 点一下扩展图标。这一页里能下的都列出来了,最像正片的排在最前面 —— 广告片段、循环的背景视频、预告片这些会被排到后面去。
- 清晰度已经挑好了。默认 480P;这部片子没有 480P 这一档,就挑最接近的那一档, 弹窗上写的是实际用的那一档,不会让你以为下到的是 480P。想换,点一下就能换。
- 点保存。剩下的事扩展自己做:把清单里的每一段取回来,按顺序拼成一个文件,存进下载文件夹。
拼出来的是什么文件
分片流下完拼成一个 .mp4。这里只换外壳、不重新编码 ——
画面和声音的数据原样搬过去,所以又快又不掉画质,也不需要装 ffmpeg 之类的东西。
极少数换不成外壳的会存成 .ts,弹窗里会写清楚为什么。
文件存在浏览器的下载文件夹里,按视频网站的域名分子文件夹,文件名用视频标题。 电脑、手机上的播放器都能直接播,能拖进度条。
几种会让人卡住的情况
片段是加密的。清单里带 EXT-X-KEY 的 AES-128 加密流照样能下 ——
密钥就放在清单指的那个地址上,取到密钥解开它本来就是正常播放的一部分。
画面和声音是两条轨。有些网站(尤其是 DASH 那一类)把画面和声音分开传。 两条轨都找得到时,扩展会把它们合成一个文件;只拿到一条会如实说,不会默默给你一个没声音的文件。
网站限速。同一个地址取得太密,网站会开始拒绝。这时扩展会自己放慢、只留一路慢慢下, 而不是一直重试把网站给的额度耗光。真的等了十分钟一点进展都没有,才会停下来告诉你, 过一会儿点「继续」,从停下的那一段接上。
网断了。下好的片段都在本地存着。断在 87%,接着下就是从 87% 开始,不会从头再来。