0

这是一个包含 Flash 视频的网页:http: //nptel.iitm.ac.in/courses/106101007/1。在解析 HTML 时,很容易发现有一个span带有 id的播放器,其href属性包含指向视频源的链接。一旦我们有了那个链接,通过 say 来自动化下载过程就很简单了wget

但是,在大多数基于 Flash 的视频共享网站(如 Youtube、Metacafe、Dailymotion)中,没有此类链接。相反,有一系列meta标签,我猜链接隐藏在某个地方。如何下载此类视频?像 Youtube 下载器这样的过程软件是如何下载这种基于 Flash 的视频的,而在任何地方都没有提到实际资源的链接?

4

1 回答 1

2

正如您所注意到的,一般视频下载可能会变得复杂。问题是网页可以嵌入这种称为 JavaScript 的通用编程语言。这为隐藏真实视频下载 URL 的方法创造了无限可能。

您已经观察到存在视频下载工具。这些工具需要不时更新,因为它们正在与视频网站的维护者进行军备竞赛,这些维护者通常希望阻止人们下载和保存内容。

有时,视频甚至无法通过直接 HTTP 获得。相反,它可能需要另一个协议来进行流式传输(例如,RTMP、RTSP、MMS)。在这些情况下,需要调用另一个工具。

为了开发这样的工具,通常需要一些 JavaScript 逆向工程以及协议分析器或 Web 浏览器网络分析工具。十年前,我编写了一个工具来从一个现已不存在的音乐视频网站下载 WMV 视频。我通过使用网络协议分析器来观察浏览器将发送到站点的各种 URL 来做到这一点。然后我写了一个模仿同样对话的工具。现代工具的运作方式类似。当我的工具派生出真正的流媒体 URL 时,它会将 URL 传递给能够下载和保存彩信流的单独工具。每当该站点更新其小型对话协议(通常每几个月一次)时,我的脚本就会中断,如果我足够关心的话,我将不得不花费精力来升级它。

于 2013-06-10T21:41:00.877 回答