aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-10-05 09:15:22 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-10-05 09:17:33 +0530
commitaebb4f4ba78ec7542416832e9dd5e47788cb12aa (patch)
treeebec52b8fd9920e160ed477fcb70a4016d7c9535 /yt_dlp
parentbf2e1ec67a5cdaa9039e91cd39c1f670649068a8 (diff)
downloadhypervideo-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.py22
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 = [
[