【问题标题】:Getting an FLV from YouTube in .NET在 .NET 中从 YouTube 获取 FLV
【发布时间】:2009-12-10 20:21:20
【问题描述】:

我正在编写 FLV 媒体播放器,想知道是否可以从 URL 访问 YouTube 使用的底层 FLV 文件?曾经有很多方法可以做到这一点,但是 YouTube 已经改变了一些事情,我现在找不到任何方法......

从我目前看到的情况来看,YouTube API 似乎也没有提供访问权限。有人找到方法了吗?

干杯!

【问题讨论】:

  • 假设说,即使你找到了方法,也不会持续很长时间。
  • 我认为可能是这样,但我仍然有兴趣看看它是否可能

标签: c# .net youtube flv


【解决方案1】:

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

Numa Numa视频为例。

它的 ID 为 KmtzQCSh6xk,从 URI 中可以看出。

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

在 Numa Numa Dance 的例子中,它的签名是vjVQa1PpcFOSvCcjdAYSc3ZQgK-6EG9yQM7RLSYqJk4%3D

要获取实际的 FLV,请输入以下 URI:

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

获取 FLV 视频的完整 URI 是:

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

您可以使用此信息来帮助您获取以编程方式下载 FLV 所需的签名和 ID。无论是对值"t": 做一个简单的String.Find 还是使用RegEx,在他们更改之前都应该很容易找到。

【讨论】:

  • 我在 IE8 中尝试过,但在源代码中找不到签名。我可能做错了什么,但你在那里的 URI 也恰好给了我一个 403 - 也许这是 YouTube 关闭的另一种方法......
  • 是否可以从页面以编程方式解析这些信息?当我使用 WebRequest 请求页面时,我得到的版本与使用浏览器时完全不同(其中没有签名),即使我设置了引用者和用户代理。
  • 我试过这个,但我无法复制它。我得到了一个签名,尽管是一个不同的签名,因为自从我写这篇文章以来,他们已经更改了那个视频上的签名。
猜你喜欢
  • 2014-02-15
  • 1970-01-01
  • 2011-11-22
  • 2011-12-03
  • 1970-01-01
  • 2015-10-18
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
相关资源
最近更新 更多