diff options
Diffstat (limited to 'youtube_dl/extractor/nuevo.py')
-rw-r--r-- | youtube_dl/extractor/nuevo.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/youtube_dl/extractor/nuevo.py b/youtube_dl/extractor/nuevo.py new file mode 100644 index 000000000..ccc697e4f --- /dev/null +++ b/youtube_dl/extractor/nuevo.py @@ -0,0 +1,37 @@ +# encoding: utf-8 +from __future__ import unicode_literals + +from .common import InfoExtractor + +from ..utils import ( + float_or_none, + xpath_text +) + + +class NuevoBaseIE(InfoExtractor): + def _extract_nuevo(self, config_url, video_id): + tree = self._download_xml(config_url, video_id, transform_source=lambda s: s.strip()) + + title = xpath_text(tree, './title') + if title: + title = title.strip() + + thumbnail = xpath_text(tree, './image') + duration = float_or_none(xpath_text(tree, './duration')) + + formats = [] + for element_name, format_id in (('file', 'sd'), ('filehd', 'hd')): + video_url = tree.find(element_name) + video_url is None or formats.append({ + 'format_id': format_id, + 'url': video_url.text + }) + + return { + 'id': video_id, + 'title': title, + 'thumbnail': thumbnail, + 'duration': duration, + 'formats': formats + } |