VGrab 网页视频下载扩展 博客 反馈
安装到 Chrome

发布于

哪些视频 VGrab 不下载,为什么

有数字版权保护的视频、YouTube 这一类站,我们明确不做。这不是还没做完,是一开始就划的线。

有数字版权保护的,不下载

Widevine、FairPlay、PlayReady 这几样是版权方给视频加的保护措施。 遇到这类视频,VGrab 会认出来,在界面上明说「这个视频有版权保护,下载不了」,然后停下。

这不是能力问题,是我们不做的事。解开这类保护属于规避保护措施,不是技术难题, 所以扩展里不会有这方面的任何代码,将来也不会添加。

YouTube,不做

这件事我们真的去看了一遍,不是凭印象说的:在真实的播放页面上把播放时发出去的请求抓取下来查看, 结论是三道坎,性质不一样:

  • 格式不同。YouTube 传输视频的方式和普通网站不一样,画面和声音分两路传, 页面上一条 m3u8 都没有。这一条只是工程量,不涉及对抗。
  • 访问控制。视频地址有有效期、绑着请求方的地址、带两道签名。 这些主要是防盗链和防滥用,顺带让下载变难。
  • 专门针对下载的防护。地址里有一个限速参数,算不对服务器就慢慢喂; 算它的那段代码藏在会变的播放器脚本里,要拿到可用的地址就得去逆向那段代码。

第三条是我们停下的地方。这个项目一开始就写下了两条硬约束: 遇到人机验证就停下来报错、不去伪装成人类;不碰数字版权保护。 逆向人家专门为了防下载而设的东西,是同一类事。所以不做。

还有一层现实原因:应用商店的开发者政策本来就不允许扩展下载 YouTube 的内容。 同类扩展的商店页面上也都写着这一条。

撞上人机验证,也停止

有些网站会弹出「正在进行安全验证」那种页面。VGrab 不会去伪造浏览器指纹、 不会去接打码服务、不会用任何绕过验证的办法。

正确的做法只有一条:由你自己在浏览器里正常打开那一页、正常过掉验证, 扩展读的就是你真实浏览出来的那一页。扩展这个形态天然就是这么工作的, VGrab 不替你访问网站,只是把你已经打开的那一页里的东西整理出来。

那还剩下什么

剩下的是绝大多数:普通网站上的流媒体(m3u8、DASH)、 一整个文件的 MP4 / WEBM / FLV、 画面和声音分两条轨传的、以及不交出地址的播放器和直播(用录制)。

换句话说,VGrab 做的是把你已经能看到的东西保存下来, 不是把你看不到的东西弄出来。这条线以后也不会改变。

下次看到想留下的视频。仅需一点,不用注册。
安装到 Chrome