You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.1 KiB
71 lines
2.1 KiB
# coding: utf-8 |
|
from __future__ import unicode_literals |
|
|
|
from .common import InfoExtractor |
|
from ..compat import ( |
|
compat_urlparse, |
|
) |
|
from ..utils import ( |
|
determine_ext, |
|
) |
|
|
|
|
|
class GolemIE(InfoExtractor): |
|
_VALID_URL = r'^https?://video\.golem\.de/.+?/(?P<id>.+?)/' |
|
_TEST = { |
|
'url': 'http://video.golem.de/handy/14095/iphone-6-und-6-plus-test.html', |
|
'md5': 'c1a2c0a3c863319651c7c992c5ee29bf', |
|
'info_dict': { |
|
'id': '14095', |
|
'format_id': 'high', |
|
'ext': 'mp4', |
|
'title': 'iPhone 6 und 6 Plus - Test', |
|
'duration': 300.44, |
|
'filesize': 65309548, |
|
} |
|
} |
|
|
|
_PREFIX = 'http://video.golem.de' |
|
|
|
def _real_extract(self, url): |
|
video_id = self._match_id(url) |
|
|
|
config = self._download_xml( |
|
'https://video.golem.de/xml/{0}.xml'.format(video_id), video_id) |
|
|
|
info = { |
|
'id': video_id, |
|
'title': config.findtext('./title', 'golem'), |
|
'duration': self._float(config.findtext('./playtime'), 'duration'), |
|
} |
|
|
|
formats = [] |
|
for e in config: |
|
url = e.findtext('./url') |
|
if not url: |
|
continue |
|
|
|
formats.append({ |
|
'format_id': e.tag, |
|
'url': compat_urlparse.urljoin(self._PREFIX, url), |
|
'height': self._int(e.get('height'), 'height'), |
|
'width': self._int(e.get('width'), 'width'), |
|
'filesize': self._int(e.findtext('filesize'), 'filesize'), |
|
'ext': determine_ext(e.findtext('./filename')), |
|
}) |
|
self._sort_formats(formats) |
|
info['formats'] = formats |
|
|
|
thumbnails = [] |
|
for e in config.findall('.//teaser'): |
|
url = e.findtext('./url') |
|
if not url: |
|
continue |
|
thumbnails.append({ |
|
'url': compat_urlparse.urljoin(self._PREFIX, url), |
|
'width': self._int(e.get('width'), 'thumbnail width'), |
|
'height': self._int(e.get('height'), 'thumbnail height'), |
|
}) |
|
info['thumbnails'] = thumbnails |
|
|
|
return info
|
|
|