1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2026-02-22 08:26:00 +00:00

[ie/tele5] Fix extractor (#16005)

Closes #16003
Authored by: bashonly
This commit is contained in:
bashonly
2026-02-19 17:53:53 -06:00
committed by GitHub
parent c7945800e4
commit 772559e3db

View File

@@ -9,39 +9,39 @@ class Tele5IE(DiscoveryPlusBaseIE):
_VALID_URL = r'https?://(?:www\.)?tele5\.de/(?P<parent_slug>[\w-]+)/(?P<slug_a>[\w-]+)(?:/(?P<slug_b>[\w-]+))?' _VALID_URL = r'https?://(?:www\.)?tele5\.de/(?P<parent_slug>[\w-]+)/(?P<slug_a>[\w-]+)(?:/(?P<slug_b>[\w-]+))?'
_TESTS = [{ _TESTS = [{
# slug_a and slug_b # slug_a and slug_b
'url': 'https://tele5.de/mediathek/stargate-atlantis/quarantane', 'url': 'https://tele5.de/mediathek/star-trek-enterprise/vox-sola',
'info_dict': { 'info_dict': {
'id': '6852024', 'id': '4140114',
'ext': 'mp4', 'ext': 'mp4',
'title': 'Quarantäne', 'title': 'Vox Sola',
'description': 'md5:6af0373bd0fcc4f13e5d47701903d675', 'description': 'md5:329d115f74324d4364efc1a11c4ea7c9',
'episode': 'Episode 73', 'duration': 2542.76,
'episode_number': 73, 'thumbnail': r're:https://[^/.]+\.disco-api\.com/.+\.jpe?g',
'season': 'Season 4',
'season_number': 4,
'series': 'Stargate Atlantis',
'upload_date': '20240525',
'timestamp': 1716643200,
'duration': 2503.2,
'thumbnail': 'https://eu1-prod-images.disco-api.com/2024/05/21/c81fcb45-8902-309b-badb-4e6d546b575d.jpeg',
'creators': ['Tele5'],
'tags': [], 'tags': [],
'creators': ['Tele5'],
'series': 'Star Trek - Enterprise',
'season': 'Season 1',
'season_number': 1,
'episode': 'Episode 22',
'episode_number': 22,
'timestamp': 1770491100,
'upload_date': '20260207',
}, },
}, { }, {
# only slug_a # only slug_a
'url': 'https://tele5.de/mediathek/inside-out', 'url': 'https://tele5.de/mediathek/30-miles-from-nowhere-im-wald-hoert-dich-niemand-schreien',
'info_dict': { 'info_dict': {
'id': '6819502', 'id': '4102641',
'ext': 'mp4', 'ext': 'mp4',
'title': 'Inside out', 'title': '30 Miles from Nowhere - Im Wald hört dich niemand schreien',
'description': 'md5:7e5f32ed0be5ddbd27713a34b9293bfd', 'description': 'md5:0b731539f39ee186ebcd9dd444a86fc2',
'series': 'Inside out', 'duration': 4849.96,
'upload_date': '20240523', 'thumbnail': r're:https://[^/.]+\.disco-api\.com/.+\.jpe?g',
'timestamp': 1716494400,
'duration': 5343.4,
'thumbnail': 'https://eu1-prod-images.disco-api.com/2024/05/15/181eba3c-f9f0-3faf-b14d-0097050a3aa4.jpeg',
'creators': ['Tele5'],
'tags': [], 'tags': [],
'creators': ['Tele5'],
'series': '30 Miles from Nowhere - Im Wald hört dich niemand schreien',
'timestamp': 1770417300,
'upload_date': '20260206',
}, },
}, { }, {
# playlist # playlist
@@ -50,20 +50,27 @@ class Tele5IE(DiscoveryPlusBaseIE):
'id': 'mediathek-schlefaz', 'id': 'mediathek-schlefaz',
}, },
'playlist_mincount': 3, 'playlist_mincount': 3,
'skip': 'Dead link',
}] }]
def _real_extract(self, url): def _real_extract(self, url):
parent_slug, slug_a, slug_b = self._match_valid_url(url).group('parent_slug', 'slug_a', 'slug_b') parent_slug, slug_a, slug_b = self._match_valid_url(url).group('parent_slug', 'slug_a', 'slug_b')
playlist_id = join_nonempty(parent_slug, slug_a, slug_b, delim='-') playlist_id = join_nonempty(parent_slug, slug_a, slug_b, delim='-')
query = {'environment': 'tele5', 'v': '2'} query = {
'include': 'default',
'filter[environment]': 'tele5',
'v': '2',
}
if not slug_b: if not slug_b:
endpoint = f'page/{slug_a}' endpoint = f'page/{slug_a}'
query['parent_slug'] = parent_slug query['parent_slug'] = parent_slug
else: else:
endpoint = f'videos/{slug_b}' endpoint = f'shows/{slug_a}'
query['filter[show.slug]'] = slug_a query['filter[video.slug]'] = slug_b
cms_data = self._download_json(f'https://de-api.loma-cms.com/feloma/{endpoint}/', playlist_id, query=query)
cms_data = self._download_json(f'https://public.aurora.enhanced.live/site/{endpoint}/', playlist_id, query=query)
return self.playlist_result(map( return self.playlist_result(map(
functools.partial(self._get_disco_api_info, url, disco_host='eu1-prod.disco-api.com', realm='dmaxde', country='DE'), functools.partial(self._get_disco_api_info, url, disco_host='eu1-prod.disco-api.com', realm='dmaxde', country='DE'),