|
|
@ -616,7 +616,7 @@ class MetacafeIE(InfoExtractor): |
|
|
|
class DailymotionIE(InfoExtractor): |
|
|
|
"""Information Extractor for Dailymotion""" |
|
|
|
|
|
|
|
_VALID_URL = r'(?i)(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/video/([^_/]+)_([^/]+)' |
|
|
|
_VALID_URL = r'(?i)(?:https?://)?(?:www\.)?dailymotion\.[a-z]{2,3}/video/([^/]+)' |
|
|
|
IE_NAME = u'dailymotion' |
|
|
|
|
|
|
|
def __init__(self, downloader=None): |
|
|
@ -637,7 +637,7 @@ class DailymotionIE(InfoExtractor): |
|
|
|
self._downloader.trouble(u'ERROR: invalid URL: %s' % url) |
|
|
|
return |
|
|
|
|
|
|
|
video_id = mobj.group(1) |
|
|
|
video_id = mobj.group(1).split('_')[0].split('?')[0] |
|
|
|
|
|
|
|
video_extension = 'mp4' |
|
|
|
|
|
|
@ -662,10 +662,12 @@ class DailymotionIE(InfoExtractor): |
|
|
|
elif 'sdURL' in flashvars: max_quality = 'sdURL' |
|
|
|
else: max_quality = 'ldURL' |
|
|
|
mobj = re.search(r'"' + max_quality + r'":"(.+?)"', flashvars) |
|
|
|
if mobj is None: |
|
|
|
mobj = re.search(r'"video_url":"(.*?)",', flashvars) |
|
|
|
if mobj is None: |
|
|
|
self._downloader.trouble(u'ERROR: unable to extract media URL') |
|
|
|
return |
|
|
|
video_url = mobj.group(1).replace('\\/', '/') |
|
|
|
video_url = urllib.unquote(mobj.group(1)).replace('\\/', '/') |
|
|
|
|
|
|
|
# TODO: support choosing qualities |
|
|
|
|
|
|
|