diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-10-05 09:15:22 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-10-05 09:17:33 +0530 |
commit | aebb4f4ba78ec7542416832e9dd5e47788cb12aa (patch) | |
tree | ebec52b8fd9920e160ed477fcb70a4016d7c9535 /yt_dlp | |
parent | bf2e1ec67a5cdaa9039e91cd39c1f670649068a8 (diff) | |
download | hypervideo-pre-aebb4f4ba78ec7542416832e9dd5e47788cb12aa.tar.lz hypervideo-pre-aebb4f4ba78ec7542416832e9dd5e47788cb12aa.tar.xz hypervideo-pre-aebb4f4ba78ec7542416832e9dd5e47788cb12aa.zip |
Fix for formats=None
Fixes: https://github.com/yt-dlp/yt-dlp/pull/4965#issuecomment-1267682512
Diffstat (limited to 'yt_dlp')
-rw-r--r-- | yt_dlp/YoutubeDL.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/yt_dlp/YoutubeDL.py b/yt_dlp/YoutubeDL.py index 53681149e..e1c24b892 100644 --- a/yt_dlp/YoutubeDL.py +++ b/yt_dlp/YoutubeDL.py @@ -2525,11 +2525,7 @@ class YoutubeDL: info_dict['requested_subtitles'] = self.process_subtitles( info_dict['id'], subtitles, automatic_captions) - if info_dict.get('formats') is None: - # There's only one format available - formats = [info_dict] - else: - formats = info_dict['formats'] + formats = self._get_formats(info_dict) # or None ensures --clean-infojson removes it info_dict['_has_drm'] = any(f.get('has_drm') for f in formats) or None @@ -2644,7 +2640,7 @@ class YoutubeDL: info_dict, _ = self.pre_process(info_dict, 'after_filter') # The pre-processors may have modified the formats - formats = info_dict.get('formats', [info_dict]) + formats = self._get_formats(info_dict) list_only = self.params.get('simulate') is None and ( self.params.get('list_thumbnails') or self.params.get('listformats') or self.params.get('listsubtitles')) @@ -3571,11 +3567,17 @@ class YoutubeDL: res += '~' + format_bytes(fdict['filesize_approx']) return res - def render_formats_table(self, info_dict): - if not info_dict.get('formats') and not info_dict.get('url'): - return None + def _get_formats(self, info_dict): + if info_dict.get('formats') is None: + if info_dict.get('url') and info_dict.get('_type', 'video') == 'video': + return [info_dict] + return [] + return info_dict['formats'] - formats = info_dict.get('formats', [info_dict]) + def render_formats_table(self, info_dict): + formats = self._get_formats(info_dict) + if not formats: + return if not self.params.get('listformats_table', True) is not False: table = [ [ |