【问题标题】:Download video from Youtube: errorcode=150从 Youtube 下载视频:errorcode=150
【发布时间】:2014-11-02 09:53:29
【问题描述】:

我正在编写一个用于从 youtube 下载视频的脚本。我知道,我需要使用从 url 下载的视频信息解析文件:http://www.youtube.com/get_video_info?video_id={video id}。它工作正常,但有些视频受到“保护”,无法嵌入外部网站(我不想嵌入视频,我想下载它)。例如:

对于此视频https://www.youtube.com/watch?v=cgqOSCgc8xc,我无法从该网址检索任何视频信息: http://www.youtube.com/get_video_info?video_id=cgqOSCgc8xc,只有这些参数(下),错误码150:

cosver=6.1&csi_page_type=embed&cos=Windows&status=fail&cbr=Chrome&errorcode=150&enablecsi=1&errordetail=0&cbrver=38.0.2125.111&c=WEB&eventid=XftVVJbEA-nziwaU2YGgBw&reason=Ten+film+wideo+zawiera+ tre%C5%9B%C4%87+od+partnera+WMG.+Mo%C5%BCliwo%C5%9B%C4%87+jej+odtwarzania+w+okre%C5%9Blonych+witrynach+jest+zablokowana.% 3Cbr%2F%3E%3Cu%3E%3Ca+href%3D%27http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DcgqOSCgc8xc%26feature%3Dplayer_embedded%27+target%3D%27_blank%27%3EObejrzyj+ w+YouTube%3C%2Fa%3E%3C%2Fu%3E

但我看到,其他用于下载 youtube 视频的脚本对此没有任何问题。 那么,我怎样才能得到带有视频信息的准确文件呢?

【问题讨论】:

    标签: video youtube download


    【解决方案1】:

    当视频信息“http://www.youtube.com/get_video_info?video_id=cgqOSCgc8xc”的请求被发送到 YouTube 时,YouTube 预计请求来自试图嵌入播放器并播放视频的网站。

    YouTube 不允许您通过嵌入网站的播放器播放某些视频(YouTube 本身除外)。这些视频的所有者通常是选择不允许嵌入发生的人。因此,您当前的方法将不起作用,因为 YouTube 每次都会拒绝您对视频信息的请求。

    所以...您需要向 YouTube 发出不同的“请求”以获取视频信息。很难帮助您不知道您下载使用的语言/脚本/API,但是我能够使用一种策略来使用 iOS/Swift 语言获取原始视频 URL。

    不管你使用什么API,策略如下:

    1) 使用平台提供的网络浏览器界面来启动和播放相关视频。 2) 如果视频正在播放,那么可以确定您使用的平台能够发送 URL 请求以获取视频流 URL 并播放它。 3) 弄清楚你的平台上存在什么 API,可以让你看到上面提到的 URL 请求是什么。 4) 使用 URL 请求下载视频。请记住,该 URL 已过期,因此不要费心缓存它。

    【讨论】:

    • 我在 iOS/Swift 上开发并且有同样的问题。你能分享一下你的解决方法吗?
    猜你喜欢
    • 2010-11-08
    • 2014-05-25
    • 1970-01-01
    • 2012-09-07
    • 2014-11-26
    • 2012-07-18
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    相关资源
    最近更新 更多