从Youtube下载视频:errorcode = 150

时间:2014-11-02 09:53:30

标签: video youtube download

我正在为youtube编写下载视频脚本。我知道,我需要使用从网址:http://www.youtube.com/get_video_info?video_id= {视频ID}下载的视频信息来解析文件。它工作正常,但有些视频受到保护"从嵌入外部网站(我不想要EMBED视频,我想下载它)。例如:

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

  

cosver = 6.1&安培; csi_page_type =嵌入&安培; COS = Windows和安培;状态=失败&安培; CBR = Chrome浏览器和的错误代码= 150 &安培; enablecsi = 1&安培; errordetail = 0&安培; cbrver = 38.0.2125.111&安培C = WEB&安培;事件ID = XftVVJbEA-nziwaU2YGgBw&安培;原因=十层+膜+ wideo + zawiera + TRE%C5%9B%C4%87 + OD + partnera + WMG +沫%C5%BCliwo%C5%9B%C4% 87 + + JEJ odtwarzania + W + okre%C5%9Blonych + witrynach +笑话+ zablokowana。%3Cbr%2F%3E%3CU%3E%3CA + HREF%3D%27http%3A%2F%2Fwww.youtube.com%2Fwatch %3Fv%3DcgqOSCgc8xc%26feature%3Dplayer_embedded%27 +靶%3D%27_blank%27%3EObejrzyj + W +的YouTube%3C%2FA%3E%3C%2FU%3E

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

1 个答案:

答案 0 :(得分: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有一个到期时间,所以不要打扰它。