这是一个包含Flash视频的网页:http://nptel.iitm.ac.in/courses/106101007/1。在解析HTML时,很容易发现span
的ID为播放器,其href
属性包含指向视频源的链接。一旦我们有了这个链接,通过说wget
来自动化下载过程是微不足道的。
但是,在大多数基于Flash的视频共享网站(如Youtube,Metacafe,Dailymotion)中,此类链接并不存在。相反,有一系列meta
标签,我猜这个链接隐藏在某处。我如何下载此类视频?什么是像Youtube下载程序的流程软件下载这样的基于闪存的视频,其中没有在任何地方提到实际资源的链接?
答案 0 :(得分:2)
正如您所注意到的,一般视频下载可能会变得复杂。问题是网页可以嵌入这种称为JavaScript的通用编程语言。这样就可以通过无数种方式来掩盖真正的视频下载URL。
您发现存在视频下载工具。这些工具需要不时更新,因为他们与视频网站的维护者进行军备竞赛,他们通常希望阻止人们下载和保存内容。
有时,视频甚至无法通过直接HTTP获取。相反,它可能需要另一个协议来流(例如,RTMP,RTSP,MMS)。在这些情况下,需要调用另一个工具。
为了开发这样的工具,它通常需要一些JavaScript逆向工程以及协议分析器或Web浏览器网络分析工具。十年前,我写了一个工具,从一个已经不存在的音乐视频网站下载WMV视频。我通过使用网络协议分析器来观察浏览器将发送到站点的各种URL。然后我写了一个模仿同一个对话的工具。现代工具运作相似。当我的工具派生出真正的流式URL时,它将URL传递给一个能够下载和保存MMS流的独立工具。每当网站更新其小会话协议(通常每隔几个月)时,我的脚本就会中断,如果我有足够的关注,我将不得不花费大量的时间来升级它。