【问题标题】:Can't Download from youtube无法从 youtube 下载
【发布时间】:2011-05-22 19:21:26
【问题描述】:

我有一个从 youtube 下载 mp4 文件的脚本。它的作用是生成http://youtube.com/get_video?video_id=*VIDEO_ID*&&t=*THE_TOKEN*=&fmt=18&asv=2 形式的链接,但它不再起作用(今天注意到了)。你怎么看?

【问题讨论】:

  • 我们都非常需要一个开源项目来跟上我们的 youtube dl 链接。我已经厌倦了跟上他们的比赛。

标签: url video download youtube mp4


【解决方案1】:

如果你想下载到服务器,你可以使用youtube-dl,它仍然可以工作。

【讨论】:

    【解决方案2】:

    看来他们已经删除了 fmt 选项。见http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs

    【讨论】:

    • 如果你解析fmt_url_map(来自youtube.com/get_video_info?video_id=*VIDEO_ID*),你可以获得更直接的下载URL,但它们通常没有所有可能的格式......
    • 好的,我将其发布为答案 - 如果您有任何问题,请提出。
    【解决方案3】:

    不要尝试使用 get_video 来获取视频,而是尝试解析 fmt_url_map(格式-url 映射)。

    您应该能够在找到令牌的相同位置找到 fmt_url_map(例如在 YouTube Flash 视频播放器的 flashvars 中或在 YouTube 页面的某个地方)。如果找不到,请向http://www.youtube.com/get_video_info?video_id=VIDEO_ID 发送请求,您应该会得到一个很长的结果,格式为name=value&name=value&... 在此结果中查找“fmt_url_map”(通过搜索以 "&fmt_url_map=" 开头并以 "&" 结尾的字符串的结果。

    在你得到这个值之后(你可能需要对它进行 url 解码),它会是这样的(没有换行符):

    22|http://blah.youtube.com/videoplayback?blah,
    35|http://blah.youtube.com/videoplayback?blah,
    ...
    

    每个以逗号分隔的条目都以 fmt 值(在示例中为 22 或 35)开头,然后是竖线字符,然后是可用于下载该格式视频的 URL。 (此 URL 是特定于客户端的,因此由于 YouTube 检查 IP,某个客户端的 URL 很可能无法与其他客户端一起使用。此外,这些 URL 确实会在一段时间后过期。)

    有关不同 fmt 值的列表,请参阅:http://en.wikipedia.org/wiki/YouTube#Quality_and_formats 并显示“YouTube 媒体编码选项的 Comarison”。注意:并非所有格式都适用于所有视频。

    已弃用:不再有效!

    【讨论】:

    • 如果可以的话,+10。但是问题:您说它是特定于客户端的,所以如果我为用户生成 url 以自己下载文件,这将不起作用?还有其他解决方案吗?
    • 这可能是个问题(虽然 get_video 也有这个问题)。如果您实际请求该页面并在外部服务器上获取下载 URL,YouTube 会将服务器的 IP 与该 URL 相关联(就像它如何将 IP 与 get_video 方法中的每个令牌相关联一样)。假设您尝试在 Web 浏览器中执行此操作,您可以尝试使用 Java 小程序在客户端执行此操作(这是许多像 clipnabber.com 这样的网站所做的,尽管它可能非常笨重)。如果你只是写一个完全客户端的程序,那应该没问题,因为所有的请求都是用客户端的 IP 发送的
    • 我今天注意到这种方法不再起作用了。如果你们中有人知道一种工作方法,请在此处发布
    • @PavanK 我找到了一种新方法。详情见我的回答。
    【解决方案4】:

    我创建了一个 node.js 服务器,可以将 YouTube 视频直接流式传输到客户端并且它可以工作。详情请见https://github.com/licson0729/node-YouTubeStreamer

    【讨论】:

      猜你喜欢
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 2012-12-21
      • 2019-11-23
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      相关资源
      最近更新 更多