diff options
Diffstat (limited to 'youtube_dl/extractor/dailymotion.py')
| -rw-r--r-- | youtube_dl/extractor/dailymotion.py | 15 | 
1 files changed, 12 insertions, 3 deletions
diff --git a/youtube_dl/extractor/dailymotion.py b/youtube_dl/extractor/dailymotion.py index 2e6226ea0..1f92823b7 100644 --- a/youtube_dl/extractor/dailymotion.py +++ b/youtube_dl/extractor/dailymotion.py @@ -16,6 +16,7 @@ from ..utils import (      sanitized_Request,      str_to_int,      unescapeHTML, +    mimetype2ext,  ) @@ -111,6 +112,13 @@ class DailymotionIE(DailymotionBaseInfoExtractor):          }      ] +    @staticmethod +    def _extract_urls(webpage): +        # Look for embedded Dailymotion player +        matches = re.findall( +            r'<(?:(?:embed|iframe)[^>]+?src=|input[^>]+id=[\'"]dmcloudUrlEmissionSelect[\'"][^>]+value=)(["\'])(?P<url>(?:https?:)?//(?:www\.)?dailymotion\.com/(?:embed|swf)/video/.+?)\1', webpage) +        return list(map(lambda m: unescapeHTML(m[1]), matches)) +      def _real_extract(self, url):          video_id = self._match_id(url) @@ -153,18 +161,19 @@ class DailymotionIE(DailymotionBaseInfoExtractor):                      type_ = media.get('type')                      if type_ == 'application/vnd.lumberjack.manifest':                          continue -                    ext = determine_ext(media_url) -                    if type_ == 'application/x-mpegURL' or ext == 'm3u8': +                    ext = mimetype2ext(type_) or determine_ext(media_url) +                    if ext == 'm3u8':                          formats.extend(self._extract_m3u8_formats(                              media_url, video_id, 'mp4', preference=-1,                              m3u8_id='hls', fatal=False)) -                    elif type_ == 'application/f4m' or ext == 'f4m': +                    elif ext == 'f4m':                          formats.extend(self._extract_f4m_formats(                              media_url, video_id, preference=-1, f4m_id='hds', fatal=False))                      else:                          f = {                              'url': media_url,                              'format_id': 'http-%s' % quality, +                            'ext': ext,                          }                          m = re.search(r'H264-(?P<width>\d+)x(?P<height>\d+)', media_url)                          if m:  | 
