Select a combined format if nothing else is available

This commit is contained in:
tcely authored and GitHub committed 2025-02-19 00:53:05 -05:00
1 parent 8cd970d135
commit 9d3d997e9a
1 file changed
+19
+19
View File
@@ -822,6 +822,25 @@ class Media(models.Model):
if audio_format and video_format: if audio_format and video_format:
return f'{video_format}+{audio_format}' return f'{video_format}+{audio_format}'
else: else:
# last resort: any combined format
fallback_hd_cutoff = getattr(settings, 'VIDEO_HEIGHT_IS_HD', 500)
for fmt in reversed(list(self.iter_formats())):
select_fmt = (
fmt.get('id') and
fmt.get('acodec') and
fmt.get('vcodec') and
self.source.can_fallback and
(
(self.source.fallback == Val(Fallback.NEXT_BEST)) or
(
self.source.fallback == Val(Fallback.NEXT_BEST_HD) and
(fmt.get('height') or 0) >= fallback_hd_cutoff
)
)
)
if select_fmt:
return str(fmt.get('id'))
return False return False
return False return False