]>
Commit | Line | Data |
---|---|---|
1 | # coding: utf-8 | |
2 | from __future__ import unicode_literals | |
3 | ||
4 | from .common import InfoExtractor | |
5 | from ..utils import get_element_by_attribute | |
6 | ||
7 | ||
8 | class SportschauIE(InfoExtractor): | |
9 | IE_NAME = 'Sportschau' | |
10 | _VALID_URL = r'https?://(?:www\.)?sportschau\.de/\w+(?:/\w+)?/video(?P<id>\w+)\.html' | |
11 | _TEST = { | |
12 | 'url': 'http://www.sportschau.de/tourdefrance/videoseppeltkokainhatnichtsmitklassischemdopingzutun100.html', | |
13 | 'info_dict': { | |
14 | 'id': 'seppeltkokainhatnichtsmitklassischemdopingzutun100', | |
15 | 'ext': 'mp4', | |
16 | 'title': 'Seppelt: "Kokain hat nichts mit klassischem Doping zu tun"', | |
17 | 'thumbnail': 're:^https?://.*\.jpg$', | |
18 | 'description': 'Der ARD-Doping Experte Hajo Seppelt gibt seine Einschätzung zum ersten Dopingfall der diesjährigen Tour de France um den Italiener Luca Paolini ab.', | |
19 | }, | |
20 | 'params': { | |
21 | # m3u8 download | |
22 | 'skip_download': True, | |
23 | }, | |
24 | } | |
25 | ||
26 | def _real_extract(self, url): | |
27 | video_id = self._match_id(url) | |
28 | ext = '-mc_defaultQuality-h.json' | |
29 | json_url = url[:-5] + ext | |
30 | ||
31 | json = self._download_json(json_url, video_id) | |
32 | thumb_url = json['_previewImage'] | |
33 | ||
34 | m3u8_url = json['_mediaArray'][1]['_mediaStreamArray'][0]['_stream'][0] | |
35 | m3u8_formats = self._extract_m3u8_formats(m3u8_url, video_id, ext="mp4") | |
36 | ||
37 | webpage = self._download_webpage(url, video_id) | |
38 | title = get_element_by_attribute('class', 'headline', webpage) | |
39 | desc = self._html_search_meta('description', webpage) | |
40 | ||
41 | return { | |
42 | 'id': video_id, | |
43 | 'title': title, | |
44 | 'formats': m3u8_formats, | |
45 | 'description': desc, | |
46 | 'thumbnail': thumb_url, | |
47 | } |