aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor
diff options
context:
space:
mode:
authorGeorge Brighton <george@gebn.co.uk>2015-06-27 23:03:06 +0100
committerGeorge Brighton <george@gebn.co.uk>2015-06-27 23:03:06 +0100
commit5a9cc19972fb3aae7a67470f65ec5cd30918f4e1 (patch)
tree10fed6892f6af4c8ae18c4467fa940f3c5e4a03d /youtube_dl/extractor
parent1a5fd4eebc2717b5173df50d65007f90cb05ee30 (diff)
downloadyoutube-dl-5a9cc19972fb3aae7a67470f65ec5cd30918f4e1.tar.xz
[moviefap] Move flv videos to formats in the metadata
Diffstat (limited to 'youtube_dl/extractor')
-rw-r--r--youtube_dl/extractor/moviefap.py56
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