DailymotionIE: There is not necessarily an underscore in a Dailymotion URL.
[youtube-dl] / youtube_dl / InfoExtractors.py
index bdb2ec3110321c2628b281d36062ffa1bdb0905f..dca26a85aaf5a9a375325057570a22009753fb07 100644 (file)
@@ -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):
@@ -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":"(.*?)",', urllib.unquote(webpage))
                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