]>
Commit | Line | Data |
---|---|---|
63da13e8 | 1 | # encoding: utf-8 |
526b276f | 2 | from __future__ import unicode_literals |
63da13e8 JMF |
3 | |
4 | from .common import InfoExtractor | |
63da13e8 JMF |
5 | |
6 | ||
7 | class FazIE(InfoExtractor): | |
526b276f | 8 | IE_NAME = 'faz.net' |
255f5694 | 9 | _VALID_URL = r'https?://(?:www\.)?faz\.net/(?:[^/]+/)*.*?-(?P<id>\d+)\.html' |
63da13e8 | 10 | |
255f5694 | 11 | _TESTS = [{ |
526b276f PH |
12 | 'url': 'http://www.faz.net/multimedia/videos/stockholm-chemie-nobelpreis-fuer-drei-amerikanische-forscher-12610585.html', |
13 | 'info_dict': { | |
14 | 'id': '12610585', | |
15 | 'ext': 'mp4', | |
16 | 'title': 'Stockholm: Chemie-Nobelpreis für drei amerikanische Forscher', | |
17 | 'description': 'md5:1453fbf9a0d041d985a47306192ea253', | |
63da13e8 | 18 | }, |
255f5694 S |
19 | }, { |
20 | 'url': 'http://www.faz.net/aktuell/politik/berlin-gabriel-besteht-zerreissprobe-ueber-datenspeicherung-13659345.html', | |
21 | 'only_matching': True, | |
22 | }, { | |
23 | 'url': 'http://www.faz.net/berlin-gabriel-besteht-zerreissprobe-ueber-datenspeicherung-13659345.html', | |
24 | 'only_matching': True, | |
25 | }, { | |
26 | 'url': 'http://www.faz.net/-13659345.html', | |
27 | 'only_matching': True, | |
28 | }, { | |
29 | 'url': 'http://www.faz.net/aktuell/politik/-13659345.html', | |
30 | 'only_matching': True, | |
31 | }, { | |
32 | 'url': 'http://www.faz.net/foobarblafasel-13659345.html', | |
33 | 'only_matching': True, | |
34 | }] | |
63da13e8 JMF |
35 | |
36 | def _real_extract(self, url): | |
526b276f PH |
37 | video_id = self._match_id(url) |
38 | ||
63da13e8 | 39 | webpage = self._download_webpage(url, video_id) |
526b276f PH |
40 | config_xml_url = self._search_regex( |
41 | r'writeFLV\(\'(.+?)\',', webpage, 'config xml url') | |
42 | config = self._download_xml( | |
43 | config_xml_url, video_id, 'Downloading config xml') | |
63da13e8 JMF |
44 | |
45 | encodings = config.find('ENCODINGS') | |
46 | formats = [] | |
526b276f | 47 | for pref, code in enumerate(['LOW', 'HIGH', 'HQ']): |
63da13e8 JMF |
48 | encoding = encodings.find(code) |
49 | if encoding is None: | |
50 | continue | |
51 | encoding_url = encoding.find('FILENAME').text | |
52 | formats.append({ | |
53 | 'url': encoding_url, | |
63da13e8 | 54 | 'format_id': code.lower(), |
526b276f | 55 | 'quality': pref, |
63da13e8 | 56 | }) |
526b276f | 57 | self._sort_formats(formats) |
63da13e8 | 58 | |
526b276f PH |
59 | descr = self._html_search_regex( |
60 | r'<p class="Content Copy">(.*?)</p>', webpage, 'description', fatal=False) | |
fb7abb31 | 61 | return { |
63da13e8 JMF |
62 | 'id': video_id, |
63 | 'title': self._og_search_title(webpage), | |
64 | 'formats': formats, | |
af4d506e | 65 | 'description': descr, |
63da13e8 JMF |
66 | 'thumbnail': config.find('STILL/STILL_BIG').text, |
67 | } |