3

是否可以从 YouTube 网页源获取当前播放视频的下载 URL?提前谢谢。请帮助我。

实际上我有一个下载器,但它现在不工作。当我尝试在浏览器中使用下载器提供的 URL 时,它返回一个错误页面,显示“访问网页被拒绝”。我为视频获得的 URL 为 " http://r14---sn-h557snel.c.youtube.com/videoplayback?gcr=in&ip=121.241.181.70&upn=OOcjKEO_S6I&cp=U0hUTFZQT19KU0NONF9OSlNGOmFRT2JSUUs2bDVi&ipbits=8&fexp=900148,920704,912806,928001,922403,922405,929901, 913605,929104,913546,913556,908496,920201,913302,919009,911116,901451,902556&ms=au&mt=1357625350&mv=m&id=31a79fcdbfc6c2f6&sparams=cp,gcr,id,ip,ipbits,itag,ratebypass,source,upn,expire&expire= 1357651559&itag=18&key=yt1&newshard=yes&source=youtube&ratebypass=yes&sver=3 "

几个月前 URL 的格式是 http://oo---preferred---sn-h557snes---v24---lscache3.c.youtube.com/videoplayback?upn=AmmxhSpq470&sparams=cp,gcr,id ,ip,ipbits,itag,ratebypass,source,upn,expire&fexp=917013,906437,916626,922401,920704,912806,927201,925706,922403,913546,913556,916805,920201,901451&ms=au&expire=1353668177&itag=18&ipbits=8&gcr =in&sver=3&ratebypass=yes&mt=1353646087&ip=121.241.181.70&mv=m&source=youtube&key=yt1&cp=U0hUSFZRVl9MUUNONF9OS1pCOmhtUTVMak5oTVNy&id=c429fa5466ee9447&newshard=yes "

所以我不知道下载器是否给出了正确的 URL。请帮我

4

3 回答 3

1

抱歉,我环顾四周,找不到直接从 youtube 链接下载源文件的方法。那里有一些指南,但都在 2009 年左右;并且由于 youtube 更改了很多代码,目前它们都不起作用。

尽管有许多网站、插件、应用程序可以让您下载视频;但我认为它们不能通过链接中的代码工作。由于要观看视频,您必须临时下载它,我认为他们都使用打开页面,播放(下载)视频并实际保存它的方法。我会列出这些网站和插件,但因为这些来源并不难找到;我假设您正在尝试构建自己的下载器,而不是使用已经存在的下载器。

如果您能以某种方式获得指向视频源文件的链接,请另外注意。我确信 youtube 有权阻止访问其后端的所有文件夹和文件,以采取安全措施;只允许这些文件被转发并显示在实际的播放器页面上。如果您认为嵌入的视频会以某种方式工作,他们仍然只是向 youtube 发出请求,然后 youtube 会返回 video-feed-data,因此仍然没有与文件的直接连接。

于 2013-01-08T05:41:56.760 回答
1

您应该使用播放器 API https://developers.google.com/youtube/js_api_reference#Retrieving_video_information

player.getVideoUrl():String

返回当前加载/播放视频的 YouTube.com URL。

于 2013-01-08T06:01:23.413 回答
1

我编写了一个简单的 python 代码,可以从 html 代码中获取 youtube href。希望它可以帮助你:

#!/usr/bin/env python

import re

pattern = '.*<(iframe|param).*(src|value)="(?P<link>http://www.youtube.com/(embed|v)/[a-zA-Z0-9/\.\?&;=\+_-]+);?.*".*>.*</(iframe|param)>.*'

action = re.compile(pattern)
result = action.findall('<div><iframe.....></iframe><param......></param></div>')

print result 

https://gist.github.com/Mortezaipo/5707738

于 2013-08-19T06:30:02.587 回答