diff options
| author | George Brighton <george@gebn.co.uk> | 2015-06-27 23:03:06 +0100 | 
|---|---|---|
| committer | George Brighton <george@gebn.co.uk> | 2015-06-27 23:03:06 +0100 | 
| commit | 5a9cc19972fb3aae7a67470f65ec5cd30918f4e1 (patch) | |
| tree | 10fed6892f6af4c8ae18c4467fa940f3c5e4a03d | |
| parent | 1a5fd4eebc2717b5173df50d65007f90cb05ee30 (diff) | |
[moviefap] Move flv videos to formats in the metadata
| -rw-r--r-- | youtube_dl/extractor/moviefap.py | 56 | 
1 files changed, 29 insertions, 27 deletions
| diff --git a/youtube_dl/extractor/moviefap.py b/youtube_dl/extractor/moviefap.py index 9de052a99..5e0c701d4 100644 --- a/youtube_dl/extractor/moviefap.py +++ b/youtube_dl/extractor/moviefap.py @@ -82,8 +82,36 @@ class MovieFapIE(InfoExtractor):                  r'flashvars\.config = escape\("(.+?)"', webpage, 'player parameters')          xml = self._download_xml(info_url, video_id) -        info = { +        # find the video container +        if xml.find('videoConfig') is not None: +            ext = xml.find('videoConfig').find('type').text +        else: +            ext = 'flv'  # guess... + +        # work out the video URL(s) +        formats = [] +        if xml.find('videoLink') is not None: +            # single format available +            formats.append({ +                'url': xpath_text(xml, 'videoLink', 'url', True), +                'ext': ext +            }) +        else: +            # multiple formats available +            for item in xml.find('quality').findall('item'): +                resolution = xpath_text(item, 'res', 'resolution', True)  # 480p etc. +                formats.append({ +                    'url': xpath_text(item, 'videoLink', 'url', True), +                    'ext': ext, +                    'resolution': resolution, +                    'height': int(re.findall(r'\d+', resolution)[0]) +                }) + +            self._sort_formats(formats) + +        return {              'id': video_id, +            'formats': formats,              'title': self._html_search_regex( \                      r'<div id="view_title"><h1>(.*?)</h1>', webpage, 'title'),              'display_id': re.compile(self._VALID_URL).match(url).group('name'), @@ -105,29 +133,3 @@ class MovieFapIE(InfoExtractor):              'categories': self._html_search_regex( \                      r'</div>\s*(.*?)\s*<br>', webpage, 'categories', fatal=False).split(', ')          } - -        # find and add the format -        if xml.find('videoConfig') is not None: -            info['ext'] = xml.find('videoConfig').find('type').text -        else: -            info['ext'] = 'flv'  # guess... - -        # work out the video URL(s) -        if xml.find('videoLink') is not None: -            # single format available -            info['url'] = xpath_text(xml, 'videoLink', 'url', True) -        else: -            # multiple formats available -            info['formats'] = [] - -            for item in xml.find('quality').findall('item'): -                resolution = xpath_text(item, 'res', 'resolution', True)  # 480p etc. -                info['formats'].append({ -                    'url': xpath_text(item, 'videoLink', 'url', True), -                    'resolution': resolution, -                    'height': int(re.findall(r'\d+', resolution)[0]) -                }) - -            self._sort_formats(info['formats']) - -        return info | 
