diff options
author | bashonly <88596187+bashonly@users.noreply.github.com> | 2023-11-15 17:24:55 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-15 23:24:55 +0000 |
commit | 15cb3528cbda7b6198f49a6b5953c226d701696b (patch) | |
tree | 1b09c53238997bba8da7552ebf639653acac2913 | |
parent | 2325d03aa7bb80f56ba52cd6992258e44727b424 (diff) |
[ie/abc.net.au:iview:showseries] Fix extraction (#8586)
Closes #8554, Closes #8572
Authored by: bashonly
-rw-r--r-- | yt_dlp/extractor/abc.py | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/yt_dlp/extractor/abc.py b/yt_dlp/extractor/abc.py index 9d527246a..a7b614ca1 100644 --- a/yt_dlp/extractor/abc.py +++ b/yt_dlp/extractor/abc.py @@ -16,6 +16,7 @@ from ..utils import ( try_get, unescapeHTML, update_url_query, + url_or_none, ) @@ -379,6 +380,18 @@ class ABCIViewShowSeriesIE(InfoExtractor): 'noplaylist': True, 'skip_download': 'm3u8', }, + }, { + # 'videoEpisodes' is a dict with `items` key + 'url': 'https://iview.abc.net.au/show/7-30-mark-humphries-satire', + 'info_dict': { + 'id': '178458-0', + 'title': 'Episodes', + 'description': 'Satirist Mark Humphries brings his unique perspective on current political events for 7.30.', + 'series': '7.30 Mark Humphries Satire', + 'season': 'Episodes', + 'thumbnail': r're:^https?://cdn\.iview\.abc\.net\.au/thumbs/.*\.jpg$' + }, + 'playlist_count': 15, }] def _real_extract(self, url): @@ -398,12 +411,14 @@ class ABCIViewShowSeriesIE(InfoExtractor): series = video_data['selectedSeries'] return { '_type': 'playlist', - 'entries': [self.url_result(episode['shareUrl']) - for episode in series['_embedded']['videoEpisodes']], + 'entries': [self.url_result(episode_url, ABCIViewIE) + for episode_url in traverse_obj(series, ( + '_embedded', 'videoEpisodes', (None, 'items'), ..., 'shareUrl', {url_or_none}))], 'id': series.get('id'), 'title': dict_get(series, ('title', 'displaySubtitle')), 'description': series.get('description'), 'series': dict_get(series, ('showTitle', 'displayTitle')), 'season': dict_get(series, ('title', 'displaySubtitle')), - 'thumbnail': series.get('thumbnail'), + 'thumbnail': traverse_obj( + series, 'thumbnail', ('images', lambda _, v: v['name'] == 'seriesThumbnail', 'url'), get_all=False), } |