我的问题是关于流行的 YouTube 下载器,例如youtube-dl
(命令行程序)或视频下载助手(Firefox 浏览器扩展)。
比较两种情况:
- 在 YouTube 上观看视频
- 使用下载器下载视频(具体来说,我们假设
youtube-dl
)
是否可以通过检查网络流量等方式判断视频是否已被下载而不是在 YouTube 上“仅仅观看”?
也许可以使用以下程序来比较网络流量Wireshark我自己做不到这一点,但也许这会帮助别人回答这个问题。
答案1
是的,查看网络流量时可以区分这两种用例。简单的解释是:
- 当您使用 下载原始视频文件时
youtube-dl
,您会一次加载完整的文件。 - 当你通过浏览器观看 YouTube 视频时,Flash 客户端会分块下载视频。这些块会填满一个缓冲区,一旦缓冲区即将用完,播放器就会获取下一个块。
如今,两者都可以通过 HTTP 完成。加载视频时,您可以观察客户端的行为。视频绝不会一次性完全下载:缓冲区会播放完,然后加载下一部分。这当然在网络流量中可见,因为一段时间内会向 YouTube 发送多个针对同一资源的请求。
引用 Kuschnig 等人的话(见下文):
视频片段被分割成大小为 lch 的块,由标准 HTTP 服务器提供。视频块的下载由客户端协调。为此,客户端维护 nc 个基于 HTTP 的请求-响应流,并使用每个流的单独队列来安排不同块的下载
如果您想了解有关 YouTube 流媒体流量的更多细节,我当然可以解释更多。我们目前正在进行各种模拟实验,以优化 YouTube 缓冲并分析各种视频流场景。
进一步阅读:
答案2
是的,它是不同的(在使用的特殊情况下youtube-dl
),这一点可以从在 youtube.com 网站上观看时的流量使用https://传输,而 youtube-dl 生成的流量使用未加密的http://。
如果有人嗅探这些包,他就能知道该文件不是在 youtube 上观看的。至少不是通过常规方式