1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-08-13 16:08:29 +00:00

Dont't trust substack's webpage "post.type"

A substack "podcast" type can also have a video. This commit looks for "videoUpload" elements regardless of content type. If it has a video url add it to formats.

Closes #13594
This commit is contained in:
Robert Damas 2025-07-17 19:56:47 +02:00
parent c1ac543c81
commit 7cbe4b5f33

View File

@ -107,7 +107,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,
@ -117,9 +119,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 {