我使用http://www.youtube.com/get_video_info?video_id= * VIDEO_ID *和下載視頻從我得到我解析的url_encoded_fmt_stream_map和我得到的URL像無法從YouTube
http://blah.youtube.com/videoplayback?blah
早些時候,我可以用這個網址下載的視頻數據,但現在我無法再下載視頻了。任何人都知道爲什麼?
我使用http://www.youtube.com/get_video_info?video_id= * VIDEO_ID *和下載視頻從我得到我解析的url_encoded_fmt_stream_map和我得到的URL像無法從YouTube
http://blah.youtube.com/videoplayback?blah
早些時候,我可以用這個網址下載的視頻數據,但現在我無法再下載視頻了。任何人都知道爲什麼?
這裏是一個視頻的URL返回代碼:
所有學分到YouTube-DL我只是複製了他們的腳本,你需要提取的URL
video_id = "yourvideoid"
for el_type in ['&el=embedded', '&el=detailpage', '&el=vevo', '']:
video_info_url = ('http://www.youtube.com/get_video_info?&video_id=%s%s& ps=default&eurl=&gl=US&hl=en'
% (video_id, el_type))
request = urllib2.Request(video_info_url)
try:
video_info_webpage = urllib2.urlopen(request).read()
video_info = parse_qs(video_info_webpage)
if 'token' in video_info:
break
except (urllib2.URLError, httplib.HTTPException, socket.error), err:
print('ERROR: unable to download video info webpage: %s' % str(err))
video_url_list = video_info['url_encoded_fmt_stream_map'][0]
url_data_strs = video_info['url_encoded_fmt_stream_map'][0].split(',')
url_data = [parse_qs(uds) for uds in url_data_strs]
url_data = filter(lambda ud: 'itag' in ud and 'url' in ud, url_data)
url_map = dict((ud['itag'][0], ud['url'][0] + '&signature=' + ud['sig'][0]) for ud in url_data)
print(str(url_map))
不幸的是,這種方法還不夠:在某些情況下,您還應該解密簽名。 –
不知道爲什麼,但它似乎是affecting all downloader extensions,所以它幾乎肯定在YouTube的一面。我假設它與知識產權有關。 YouTube「有意」成爲流媒體網站,而不是視頻文件存儲庫。
Shutaro at addons.mozilla.com已經發現需要迫使YouTube上恢復到交付舊.webm格式的解決方法。
的Youtube-DL仍然有效,所以它應該是可能的。如果你碰到任何東西好心分享 –
我有同樣的問題,從我從別人誰已經修好了,我們需要一個簽名添加到視頻鏈接(返回的MP4或3GP鏈接)瞭解......我期待進入此並將更新。如果你發現任何東西,我希望你也可以這樣做。
當然我會更新,如果我能得到的東西工作。如果您發現修復,請更新。 Youtube-DL仍然有效,我目前正試圖檢查你的做法。 –
找到工作解決方案有什麼好運? –
它可能在一些工作的一部分案例 - > [GO HERE] [1] [1]:http://askubuntu.com/a/429767/74504 – sydbeat