]> jfr.im git - yt-dlp.git/commitdiff
Bugfix for 39f32f1715c0dffb7626dda7307db6388bb7abaa
authorpukkandan <redacted>
Sun, 12 Feb 2023 20:04:27 +0000 (01:34 +0530)
committerpukkandan <redacted>
Sun, 12 Feb 2023 20:05:54 +0000 (01:35 +0530)
yt_dlp/YoutubeDL.py

index 4b652d1725ee2033c08849cd335e342c18302115..d214a6449cfc2cce0ebc7e457ff192c7bdbb58ed 100644 (file)
@@ -2466,15 +2466,8 @@ def _raise_pending_errors(self, info):
 
     def sort_formats(self, info_dict):
         formats = self._get_formats(info_dict)
-        if not formats:
-            return
-        # Backward compatibility with InfoExtractor._sort_formats
-        field_preference = formats[0].pop('__sort_fields', None)
-        if field_preference:
-            info_dict['_format_sort_fields'] = field_preference
-
         formats.sort(key=FormatSorter(
-            self, info_dict.get('_format_sort_fields', [])).calculate_preference)
+            self, info_dict.get('_format_sort_fields') or []).calculate_preference)
 
     def process_video_result(self, info_dict, download=True):
         assert info_dict.get('_type', 'video') == 'video'
@@ -2563,6 +2556,11 @@ def sanitize_numeric_fields(info):
 
         formats = self._get_formats(info_dict)
 
+        # Backward compatibility with InfoExtractor._sort_formats
+        field_preference = formats[0].pop('__sort_fields', None)
+        if field_preference:
+            info_dict['_format_sort_fields'] = field_preference
+
         # or None ensures --clean-infojson removes it
         info_dict['_has_drm'] = any(f.get('has_drm') for f in formats) or None
         if not self.params.get('allow_unplayable_formats'):
@@ -2623,7 +2621,10 @@ def is_wellformed(f):
         if '__x_forwarded_for_ip' in info_dict:
             del info_dict['__x_forwarded_for_ip']
 
-        self.sort_formats({'formats': formats})
+        self.sort_formats({
+            'formats': formats,
+            '_format_sort_fields': info_dict.get('_format_sort_fields')
+        })
 
         # Sanitize and group by format_id
         formats_dict = {}