Correctly parse the player URL in RTMP downloads (closes #11)
Fixed several problems courtesy of jamiejones: The parsing for the SWF url was wrong (the "//" are now escaped and the initial .*match needs to be 'ungreedy'), so the -W setting to rtmpdump was not set, causing the decryption of the video to be wrong. Finally, add "&has_verified=1" to the fetch of the HMTL page to allow fetching of age-restricted videos.
This commit is contained in:
parent
5e596cac0a
commit
b620a5f811
6
youtube-dl
Executable file → Normal file
6
youtube-dl
Executable file → Normal file
@ -831,7 +831,7 @@ class YoutubeIE(InfoExtractor):
|
|||||||
|
|
||||||
# Get video webpage
|
# Get video webpage
|
||||||
self.report_video_webpage_download(video_id)
|
self.report_video_webpage_download(video_id)
|
||||||
request = urllib2.Request('http://www.youtube.com/watch?v=%s&gl=US&hl=en' % video_id, None, std_headers)
|
request = urllib2.Request('http://www.youtube.com/watch?v=%s&gl=US&hl=en&has_verified=1' % video_id, None, std_headers)
|
||||||
try:
|
try:
|
||||||
video_webpage = urllib2.urlopen(request).read()
|
video_webpage = urllib2.urlopen(request).read()
|
||||||
except (urllib2.URLError, httplib.HTTPException, socket.error), err:
|
except (urllib2.URLError, httplib.HTTPException, socket.error), err:
|
||||||
@ -839,9 +839,9 @@ class YoutubeIE(InfoExtractor):
|
|||||||
return
|
return
|
||||||
|
|
||||||
# Attempt to extract SWF player URL
|
# Attempt to extract SWF player URL
|
||||||
mobj = re.search(r'swfConfig.*"(http://.*?watch.*?-.*?\.swf)"', video_webpage)
|
mobj = re.search(r'swfConfig.*?"(http:\\/\\/.*?watch.*?-.*?\.swf)"', video_webpage)
|
||||||
if mobj is not None:
|
if mobj is not None:
|
||||||
player_url = mobj.group(1)
|
player_url = re.sub(r'\\(.)', r'\1', mobj.group(1))
|
||||||
else:
|
else:
|
||||||
player_url = None
|
player_url = None
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user