2011-09-21 67 views
3

在网站上查看,每个问题使用过时的方法。 YouTube FLV下载网站/应用程序如何做到这一点?如何获得YouTube FLV网址?

我想在PHP中这样做,但理论或步骤做到这一点就足够了,谢谢。

+0

啊可能希望从源头上看看file2hd.com –

回答

15

正如其他职位提到的,你可能想看看我们的代码在 youtube-dl(或Firefox扩展的代码中调用 FlashVideoReplacer)。

在YouTube的-DL的特殊情况下,“真正的工作”中的InformationExtractor的 子做,它很难给一个“稳定”的答案, 为不断此类网站的布局改变。

有一些信息不是动态的,例如,对于 实例,视频的上传者,标题,上传日期以及最重要的是视频的标识符(a 11个字符的字符串)。

对于动态部分,关于这些工具可以说的是,从本质上说,这些视频生成的URL是动态生成的,您需要与服务器进行一些往返式通信。

重要的是要记住,这些网站可以(并且确实)考虑 考虑的因素取决于许多参数,包括:您已经收到的 的Cookie ---对于HTML5视频,您的 地理位置---用于区域控制,您的年龄 - 用于“强”材料,您的 语言/地区---用于显示适合您的内容等。

的YouTube-DL使用正则表达式来从你给和,那么URL 提取视频ID,采用的是“标准化”,典型的URL从 美国,从中进行使用。

动态数据收集的一些包括:

  • 一些时间戳(的expire,并fexp零件的最终URL)
  • 饼干发送到浏览器
  • 在此我们要下载的视频(最终URL的一部分itag
  • 限制信息(algorithmburst,012格式)
  • 通过它们内部使用一些散列/令牌(例如,最后的URL的signature一部分)

一些上面列出曾经不所需的信息,但现在它们 是(特别是他们寄给你的cookies)。这意味着,上面列出的 信息很可能变得过时,作为对照 变得更加严格。

你可以看到一些工作(相对于饼干),我在 做了这方面的外部的后端的实现使用外部 下载(“下载加速器”)什么的YouTube-DL提取物。 Discloser:我已经对存储库进行了一些更改,并且我在Debian中维护 youtube-dl软件包(并且,作为Ubuntu的一个副作用)。

+2

与youtube-dl,它很高兴能够找到像易于使用和积极维护的有用的东西。 – AndyDunn

+0

@AndyDunn,自从我编写回答和最新变更以来,youtube-dl已获得许多其他网站的支持。看到一个简单的'InformationExtractors'是理解视频抓取原理如何工作的好方法。 – rbrito

+0

感谢一群人指出。这对我所做的事情有很大的影响,知道它也可以用于其他网站! :) – AndyDunn

1

Youtube不存储FLV文件,他们将您的视频编译成SWF对象。这些视频需要提取或转换为FLV才能获得FLV。

http://www.youtube.com/v/videoid

例如:

http://www.youtube.com/watch?v=C6nRb45I3e4 

成为

http://www.youtube.com/v/C6nRb45I3e4 

从那里,你需要将SWF转换成FLV,可与ffmpeg完成。

+0

感谢,但是这不是我所提出的要求。 – xLite

+0

是的,flv文件没有url,因为没有FLV文件。它们是在SWF对象内编译的。您必须使用ffmpeg进行反编译才能获取flv。 SWF位于前面提到的位置。 –

+5

?? YouTube会将FLV文件传输到播放器。他们不会上传嵌入视频的独特SWF文件。 – xLite

4

您可能想看看youtube-dl如何下载文件。随着YouTube的变化,该程序似乎更新得相当快。

-1

如果你真的想在flv或mp4模式下获得youtube视频的网址,那么在Chrome中使用“YouTube Downloader - 版本:5.0”,你可以右键点击下载按钮并复制路径。 !

[你可以从这个按钮,任何格式的URL] [1]

http://i.stack.imgur.com/AFUWr.jpg (see this url due to i can't upload image at this time) 

您可以点击此按钮,并从复制网址“铬://下载/” 我想,这可能帮你。