2009-12-10 44 views
2

我正在写FLV媒体播放器,并想知道是否存在通过URL访问YouTube使用的底层FLV文件的方式吗?过去有很多种方式,但YouTube已经改变了一些事情,我现在找不到任何方式去做它...在.NET中从YouTube获取FLV

从我迄今看到的情况来看,YouTube API不会看起来也不能进入。有没有人找到一种方法呢?

干杯!

+0

假设性地说,即使你找到了方法,也不会持续很长时间。 – Sampson 2009-12-10 20:22:37

+0

我认为可能是这种情况,但我仍然有兴趣看看是否有可能 – 2009-12-10 20:23:54

回答

6

有两种与YouTube视频相关的值:ID和签名。该ID很容易获得,因为它在URI本身。签名有点棘手。它嵌入在每个视频页面的源代码中的Javascript语句中。

例如,我们拍下Numa Numa视频。

它有一个ID为KmtzQCSh6xk,可以从URI中看到。

为了得到签名,我们必须深入研究HTML的源代码。要在Firefox中轻松完成此操作,请右键单击页面上的任意位置并单击“查看页面源”来加载页面的源代码。之后,按Ctrl + F,然后输入"t":。它会带你到页面的签名:在引号后面的值就是签名。

在沼沼舞的情况下,它的签名是vjVQa1PpcFOSvCcjdAYSc3ZQgK-6EG9yQM7RLSYqJk4%3D

获得实际的FLV,你进入这个网址:

http://www.youtube.com/get_video?fmt=5&video_id={ID}&t={SIGNATURE}

完整的URI来获取FLV视频:

http://www.youtube.com/get_video?fmt=5&video_id=KmtzQCSh6xk&t=vjVQa1PpcFOSvCcjdAYSc3ZQgK-6EG9yQM7RLSYqJk4%3D

您可以使用这些信息来帮助你摹以及您需要以编程方式下载FLV的签名和ID。无论是对值"t":执行简单的String.Find还是使用RegEx,都应该很容易找到,直到他们改变为止。

+0

我试过这个在IE8中,但无法在源代码中找到签名。我可能做错了什么,但是你在那里得到的URI也恰好给了我一个403--也许这是YouTube关闭的另一种方法... – 2009-12-10 20:57:51

+0

忽略!我找到了签名......谢谢! – 2009-12-10 21:08:30

+0

有没有办法从页面以编程方式解析这些信息?当我用WebRequest请求页面时,即使设置了引用链接和用户代理,我也会得到与浏览器完全不同的版本(没有签名)。 – 2010-03-22 19:07:49