aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsepro <sepro@sepr0.com>2024-09-26 18:35:19 +0200
committerGitHub <noreply@github.com>2024-09-26 18:35:19 +0200
commit416686ed0cf792ec44ab059f3b229dd776077e14 (patch)
tree59f5cdfdd4b532d67abd38c3567e8c0999b7d44e
parentb37417e4f934fd8909788b493d017777155b0ae5 (diff)
[ie/ertgr] Fix video extraction (#11091)
Closes #8955 Authored by: seproDev
-rw-r--r--yt_dlp/extractor/ertgr.py44
1 files changed, 22 insertions, 22 deletions
diff --git a/yt_dlp/extractor/ertgr.py b/yt_dlp/extractor/ertgr.py
index 864aa6dc5..6f3f60ff4 100644
--- a/yt_dlp/extractor/ertgr.py
+++ b/yt_dlp/extractor/ertgr.py
@@ -17,6 +17,7 @@ from ..utils import (
url_or_none,
variadic,
)
+from ..utils.traversal import traverse_obj
class ERTFlixBaseIE(InfoExtractor):
@@ -74,29 +75,28 @@ class ERTFlixCodenameIE(ERTFlixBaseIE):
def _extract_formats_and_subs(self, video_id):
media_info = self._call_api(video_id, codename=video_id)
- formats, subs = [], {}
- for media_file in try_get(media_info, lambda x: x['MediaFiles'], list) or []:
- for media in try_get(media_file, lambda x: x['Formats'], list) or []:
- fmt_url = url_or_none(try_get(media, lambda x: x['Url']))
- if not fmt_url:
- continue
- ext = determine_ext(fmt_url)
- if ext == 'm3u8':
- formats_, subs_ = self._extract_m3u8_formats_and_subtitles(
- fmt_url, video_id, m3u8_id='hls', ext='mp4', fatal=False)
- elif ext == 'mpd':
- formats_, subs_ = self._extract_mpd_formats_and_subtitles(
- fmt_url, video_id, mpd_id='dash', fatal=False)
- else:
- formats.append({
- 'url': fmt_url,
- 'format_id': str_or_none(media.get('Id')),
- })
- continue
- formats.extend(formats_)
- self._merge_subtitles(subs_, target=subs)
+ formats, subtitles = [], {}
+ for media in traverse_obj(media_info, (
+ 'MediaFiles', lambda _, v: v['RoleCodename'] == 'main',
+ 'Formats', lambda _, v: url_or_none(v['Url']))):
+ fmt_url = media['Url']
+ ext = determine_ext(fmt_url)
+ if ext == 'm3u8':
+ fmts, subs = self._extract_m3u8_formats_and_subtitles(
+ fmt_url, video_id, m3u8_id='hls', ext='mp4', fatal=False)
+ elif ext == 'mpd':
+ fmts, subs = self._extract_mpd_formats_and_subtitles(
+ fmt_url, video_id, mpd_id='dash', fatal=False)
+ else:
+ formats.append({
+ 'url': fmt_url,
+ 'format_id': str_or_none(media.get('Id')),
+ })
+ continue
+ formats.extend(fmts)
+ self._merge_subtitles(subs, target=subtitles)
- return formats, subs
+ return formats, subtitles
def _real_extract(self, url):
video_id = self._match_id(url)