在没有网站的情况下下载视频并注意到您不只是在观看它?

信息安全 Web应用程序 视频
2021-08-27 15:28:28

我想下载视频,但我想以一种你看不到视频不仅被观看,而是被下载的方式下载。有没有办法做到这一点?

我唯一能想到的就是流式传输视频(例如在 VLC 中)和录制屏幕,但老实说这似乎很愚蠢。我读到为什么可以跟踪视频是否已下载的问题是流是按块请求的,但视频下载程序通常一次下载整个内容。这是关于相当短的视频(5-20​​ 分钟),而不是电影或类似的东西。

2个回答

你问错问题了。正确的问题是:

网站如何知道视频是否已被观看或下载?

简单的答案是:它无法确定


我将用于此论点的示例是大多数 Linux 用户观看视频的方式。Linux 上视频显示的后端是今天ffmpeg(被使用mpv并且也被使用vlc)。后端通过youtube-dl(并且youtube-dl 是/可以在 VLC 中使用)来支持 youtube URL。

当用户输入时(或者我这样做,因为我只是输入这个来进行测试):

mpv https://www.youtube.com/watch?v=B3NcgOs0LYo

该视频播放之前下载到我的机器。

浏览器说明

但是等等,当我通过浏览器观看视频时,是不是没有被下载? 错了当您通过浏览器观看视频时,视频会在显示之前下载到您的机器上。视频需要在某个时间点到达您机器的内存才能播放。

vlc因此,使用流媒体播放器(或mpv)和从浏览器观看(几乎)没有区别。只有几个不同之处。当您通过浏览器观看时,您还会看到网站的其余部分,获取横幅,执行 JS。如果流媒体网站上的某人可以查看网络服务器日志,他可以推断您是否通过浏览器看到了该页面(流媒体播放器没有 JS 引擎)。

结论

网站维护人员可以判断您在观看视频时是否看过网页。因此,他可以判断您是使用浏览器界面访问他的网站还是流媒体播放器。但是他无法区分流播放器和下载之间的区别,因为流播放器已经执行了下载。

网站可以声称流播放器与视频下载相同吗?不是真的,使用流播放器的人数很多,尤其是 VLC。

人们开始使用流媒体播放器的最大原因之一是避免使用 Flash 插件(它以在安全性方面特别有问题而闻名)。这在今天已经不是什么大问题了(HTML5 流媒体已广泛实施),但仍然是使用如此多的流媒体播放器的一个原因。


免责声明:当 DRM 开始发挥作用时,情况会发生变化。不幸的是(幸运的是?)我几乎没有使用 DRM 的经验

如果您担心服务器将能够通过某种启发式方法发现您不是在流式传输而是在下载,我认为解决方案是简单地流式传输而不是下载,然后从流中捕获数据。

数据捕获可以在不同阶段完成。按时间顺序,我们有:

  • 在网络上,捕获数据包。要将它们解码为一些有用的格式,您可能需要一个专门构建的程序。仅使用 Wireshark 即可为您提供所有数据,但您无法直接点击播放来观看视频......
  • 在播放视频的浏览器中。我认为有多个浏览器扩展可以做到这一点,但我没有测试过它们中的任何一个。
  • 正如您所提到的,通过将屏幕录制为视频(如果播放)。然而,这可能导致质量损失。

除非您想开始自己破解,否则您将需要软件,但对此的具体建议超出了本网站的范围。

另一种方法是仅使用 VPN,以便您可以匿名下载视频。但是,如果需要某种登录方式才能查看它,他们仍然能够知道是您。