Merge branch 'ted_subtitles'
authorIsmaël Mejía <iemejia@gmail.com>
Sat, 2 Nov 2013 18:50:45 +0000 (19:50 +0100)
committerIsmaël Mejía <iemejia@gmail.com>
Sat, 2 Nov 2013 18:50:45 +0000 (19:50 +0100)
1  2 
youtube_dl/extractor/dailymotion.py
youtube_dl/extractor/youtube.py

index 355b4ed0a028540c81a486ac4f389d50cbf48987,3aef82bcf402e0a8795a71cc6210596f811e954d..e87690f9d288103ea222e1c216786b42e89364de
@@@ -121,43 -99,37 +121,43 @@@ class DailymotionIE(DailymotionBaseInfo
              msg = 'Couldn\'t get video, Dailymotion says: %s' % info['error']['title']
              raise ExtractorError(msg, expected=True)
  
 -        # TODO: support choosing qualities
 -
 -        for key in ['stream_h264_hd1080_url','stream_h264_hd_url',
 -                    'stream_h264_hq_url','stream_h264_url',
 -                    'stream_h264_ld_url']:
 -            if info.get(key):#key in info and info[key]:
 -                max_quality = key
 -                self.to_screen(u'Using %s' % key)
 -                break
 -        else:
 +        formats = []
 +        for (key, format_id) in self._FORMATS:
 +            video_url = info.get(key)
 +            if video_url is not None:
 +                m_size = re.search(r'H264-(\d+)x(\d+)', video_url)
 +                if m_size is not None:
 +                    width, height = m_size.group(1), m_size.group(2)
 +                else:
 +                    width, height = None, None
 +                formats.append({
 +                    'url': video_url,
 +                    'ext': 'mp4',
 +                    'format_id': format_id,
 +                    'width': width,
 +                    'height': height,
 +                })
 +        if not formats:
              raise ExtractorError(u'Unable to extract video URL')
 -        video_url = info[max_quality]
  
          # subtitles
-         video_subtitles = self.extract_subtitles(video_id)
+         video_subtitles = self.extract_subtitles(video_id, webpage)
          if self._downloader.params.get('listsubtitles', False):
-             self._list_available_subtitles(video_id)
+             self._list_available_subtitles(video_id, webpage)
              return
  
 -        return [{
 +        return {
              'id':       video_id,
 -            'url':      video_url,
 +            'formats': formats,
              'uploader': video_uploader,
              'upload_date':  video_upload_date,
              'title':    self._og_search_title(webpage),
 -            'ext':      video_extension,
              'subtitles':    video_subtitles,
 -            'thumbnail': info['thumbnail_url']
 -        }]
 +            'thumbnail': info['thumbnail_url'],
 +            'age_limit': age_limit,
 +        }
  
-     def _get_available_subtitles(self, video_id):
+     def _get_available_subtitles(self, video_id, webpage):
          try:
              sub_list = self._download_webpage(
                  'https://api.dailymotion.com/video/%s/subtitles?fields=id,language,url' % video_id,
Simple merge