Merge pull request #1002 from tcely/patch-3

Save thumbnail when refreshing formats
This commit is contained in:
meeb 2025-05-01 13:26:40 +10:00 committed by GitHub
commit e95b02de44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -25,7 +25,8 @@ from .youtube import ( get_media_info as get_youtube_media_info,
download_media as download_youtube_media,
get_channel_image_info as get_youtube_channel_image_info)
from .utils import (seconds_to_timestr, parse_media_format, filter_response,
write_text_file, mkdir_p, directory_and_stem, glob_quote)
write_text_file, mkdir_p, directory_and_stem, glob_quote,
multi_key_sort)
from .matching import ( get_best_combined_format, get_best_audio_format,
get_best_video_format)
from .fields import CommaSepChoiceField
@ -1268,6 +1269,27 @@ class Media(models.Model):
if getattr(settings, 'SHRINK_NEW_MEDIA_METADATA', False):
response = filter_response(metadata, True)
# save the new list of thumbnails
thumbnails = self.get_metadata_first_value(
'thumbnails',
self.get_metadata_first_value('thumbnails', []),
arg_dict=response,
)
field = self.get_metadata_field('thumbnails')
self.save_to_metadata(field, thumbnails)
# select and save our best thumbnail url
try:
thumbnail = [ thumb.get('url') for thumb in multi_key_sort(
thumbnails,
[('preference', True,)],
) if thumb.get('url', '').endswith('.jpg') ][0]
except IndexError:
pass
else:
field = self.get_metadata_field('thumbnail')
self.save_to_metadata(field, thumbnail)
field = self.get_metadata_field('formats')
self.save_to_metadata(field, response.get(field, []))
self.save_to_metadata(refreshed_key, response.get('epoch', formats_seconds))