]> jfr.im git - yt-dlp.git/blame - yt_dlp/extractor/spiegel.py
[ie/matchtv] Fix extractor (#10190)
[yt-dlp.git] / yt_dlp / extractor / spiegel.py
CommitLineData
49f5f315 1from .common import InfoExtractor
8bdd16b4 2from .jwplatform import JWPlatformIE
49f5f315
PH
3
4
5class SpiegelIE(InfoExtractor):
8bdd16b4 6 _UUID_RE = r'[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}'
add96eb9 7 _VALID_URL = rf'https?://(?:www\.)?(?:spiegel|manager-magazin)\.de(?:/[^/]+)+/[^/]*-(?P<id>[0-9]+|{_UUID_RE})(?:-embed|-iframe)?(?:\.html)?(?:$|[#?])'
7150858d 8 _TESTS = [{
4baff4a4 9 'url': 'http://www.spiegel.de/video/vulkan-tungurahua-in-ecuador-ist-wieder-aktiv-video-1259285.html',
8bdd16b4 10 'md5': '50c7948883ec85a3e431a0a44b7ad1d6',
4baff4a4 11 'info_dict': {
8bdd16b4 12 'id': 'II0BUyxY',
13 'display_id': '1259285',
55c97a03 14 'ext': 'mp4',
8bdd16b4 15 'title': 'Vulkan Tungurahua in Ecuador ist wieder aktiv - DER SPIEGEL - Wissenschaft',
55c97a03 16 'description': 'md5:8029d8310232196eb235d27575a8b9f4',
8bdd16b4 17 'duration': 48.0,
252a1f75 18 'upload_date': '20130311',
8bdd16b4 19 'timestamp': 1362997920,
4baff4a4 20 },
55c97a03 21 }, {
4baff4a4 22 'url': 'http://www.spiegel.de/video/schach-wm-videoanalyse-des-fuenften-spiels-video-1309159.html',
8bdd16b4 23 'only_matching': True,
e4bdb37e 24 }, {
8bdd16b4 25 'url': 'https://www.spiegel.de/video/eifel-zoo-aufregung-um-ausgebrochene-raubtiere-video-99018031.html',
26 'only_matching': True,
aeb7b41d 27 }, {
8bdd16b4 28 'url': 'https://www.spiegel.de/panorama/urteile-im-goldmuenzenprozess-haftstrafen-fuer-clanmitglieder-a-aae8df48-43c1-4c61-867d-23f0a2d254b7',
aeb7b41d 29 'only_matching': True,
4471affc 30 }, {
4471affc
S
31 'url': 'http://www.spiegel.de/video/spiegel-tv-magazin-ueber-guellekrise-in-schleswig-holstein-video-99012776.html',
32 'only_matching': True,
8bdd16b4 33 }, {
34 'url': 'http://www.spiegel.de/sport/sonst/badminton-wm-die-randsportart-soll-populaerer-werden-a-987092.html',
35 'only_matching': True,
7150858d 36 }]
49f5f315
PH
37
38 def _real_extract(self, url):
0e15e725 39 video_id = self._match_id(url)
8bdd16b4 40 webpage = self._download_webpage(url, video_id)
41 media_id = self._html_search_regex(
42 r'(&#34;|["\'])mediaId\1\s*:\s*(&#34;|["\'])(?P<id>(?:(?!\2).)+)\2',
43 webpage, 'media id', group='id')
4baff4a4 44 return {
a07879d6 45 '_type': 'url_transparent',
49f5f315 46 'id': video_id,
8bdd16b4 47 'display_id': video_id,
add96eb9 48 'url': f'jwplatform:{media_id}',
8bdd16b4 49 'title': self._og_search_title(webpage, default=None),
50 'ie_key': JWPlatformIE.ie_key(),
49f5f315 51 }