你能否通过网络流量判断视频是否从 YouTube 观看或下载?

你能否通过网络流量判断视频是否从 YouTube 观看或下载?

我的问题是关于流行的 YouTube 下载器,例如youtube-dl(命令行程序)或视频下载助手(Firefox 浏览器扩展)。

比较两种情况:

  1. 在 YouTube 上观看视频
  2. 使用下载器下载视频(具体来说,我们假设youtube-dl

是否可以通过检查网络流量等方式判断视频是否已被下载而不是在 YouTube 上“仅仅观看”?

也许可以使用以下程序来比较网络流量Wireshark我自己做不到这一点,但也许这会帮助别人回答这个问题。

答案1

是的,查看网络流量时可以区分这两种用例。简单的解释是:

  • 当您使用 下载原始视频文件时youtube-dl,您会一次加载完整的文件。
  • 当你通过浏览器观看 YouTube 视频时,Flash 客户端会分块下载视频。这些块会填满一个缓冲区,一旦缓冲区即将用完,播放器就会获取下一个块。

如今,两者都可以通过 HTTP 完成。加载视频时,您可以观察客户端的行为。视频绝不会一次性完全下载:缓冲区会播放完,然后加载下一部分。这当然在网络流量中可见,因为一段时间内会向 YouTube 发送多个针对同一资源的请求。

引用 Kuschnig 等人的话(见下文):

视频片段被分割成大小为 lch 的块,由标准 HTTP 服务器提供。视频块的下载由客户端协调。为此,客户端维护 nc 个基于 HTTP 的请求-响应流,并使用每个流的单独队列来安排不同块的下载

如果您想了解有关 YouTube 流媒体流量的更多细节,我当然可以解释更多。我们目前正在进行各种模拟实验,以优化 YouTube 缓冲并分析各种视频流场景。

进一步阅读:

  • Kuschnig, Robert、Ingo Kofler 和 Hermann Hellwagner。“对基于 http 的互联网视频流请求-响应流的评估。”第二届 ACM 多媒体系统年会论文集。ACM,2011 年(PDF

  • Stockhammer,Thomas。“HTTP 上的动态自适应流媒体:标准和设计原则。”第二届 ACM 多媒体系统年会论文集。ACM,2011 年。(PDF

答案2

是的,它是不同的(在使用的特殊情况下youtube-dl),这一点可以从在 youtube.com 网站上观看时的流量使用https://传输,而 youtube-dl 生成的流量使用未加密的http://

如果有人嗅探这些包,他就能知道该文件不是在 youtube 上观看的。至少不是通过常规方式

相关内容