如何使用java从http url下载video文件(video流链接)?

可能重复:
如何使用java从直播video中获取video链接?

大家好!

我必须开发一个应用程序,将任何video文件从http url(video流)下载到本地系统。 这有免费的api吗? 还有像youtube这样的网站。 这里没有可用于video文件的直接链接。 在这种情况下,我如何获得确切的video文件链接。 另外我需要java源来保存来自url的video文件。

谢谢!

(免责声明:我是Resty的作者)。

以下是有关如何将Google地图图像直接下载到磁盘的代码示例:

Resty r = new Resty(); File f = r.bytes("http://maps.google.com/maps/api/staticmap?size=512x512" + "&maptype=hybrid&markers=size:mid%7Ccolor:red%7C37.815649,-122.477646&sensor=false"). save(File.createTempFile("google", ".png")); 

您将主要考虑以下情况:

的Youtube

有一些工具已经可以生成一个指向youtubevideo的原始源文件的链接(您可以下载,例如,作为h.264编码的.mp4文件)尝试找到其中的一些,示例用户脚本 ,他们将拥有大量源代码,您可以重复使用这些源代码来查找URL。 这是一个例子 。 也许在Stackoverflow上也有一些关于这个的问题,我没看过。 那是你的工作。

Flashvideo

嵌入Flashvideo的网站使用由某些选项提供的flash播放器(duh),主要是硬编码或JavaScript。 这意味着在网站源代码的某处,有一个指向video文件的链接,可能是.mp4或.flv文件。

您将不得不找到该链接(它可以加密,URL转义,包装在JSON,等等),然后下载原始文件。

示例: 此网站从源代码中的某个JSON字符串中提供其Flash播放器。 我能够解码它并生成一个允许您下载原始video的网站。 在PHP中,这样的工作原理如此 。

原始文件

有些URL会公开该文件,例如http://www.test.com/video.mp4 。 要从URL保存这样的文件,它归结为只是“下载”它。 有很多教程,包括这个 。

结论

编写一个适用于所有网站的video下载应用程序并不是一件容易的事。 专注于“简单”的,如Youtube和那些你可以直接提取文件的网站。