diff --git a/yt_dlp/extractor/substack.py b/yt_dlp/extractor/substack.py index f0fa00ea57..7f305dc180 100644 --- a/yt_dlp/extractor/substack.py +++ b/yt_dlp/extractor/substack.py @@ -130,7 +130,9 @@ def _real_extract(self, url): post_type = webpage_info['post']['type'] formats, subtitles = [], {} - if post_type == 'podcast': + if webpage_info['post'].get('videoUpload'): + formats, subtitles = self._extract_video_formats(webpage_info['post']['videoUpload']['id'], canonical_url) + if webpage_info['post'].get('podcast_url'): fmt = {'url': webpage_info['post']['podcast_url']} if not determine_ext(fmt['url'], default_ext=None): # The redirected format URL expires but the original URL doesn't, @@ -140,9 +142,7 @@ def _real_extract(self, url): 'Resolving podcast file extension', 'Podcast URL is invalid').url) formats.append(fmt) - elif post_type == 'video': - formats, subtitles = self._extract_video_formats(webpage_info['post']['videoUpload']['id'], canonical_url) - else: + if not formats: self.raise_no_formats(f'Page type "{post_type}" is not supported') return {