aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan@gmail.com>2021-02-09 23:12:32 +0530
committerpukkandan <pukkandan@gmail.com>2021-02-09 23:12:41 +0530
commit6c4fd172de3b469918ca17b3e2f818a3bdc25564 (patch)
treeaf471765165354ba1ba812d28fd4d3744c966f7d
parentdeaec5afc260726dbcc35b006ebf9ef6142eba3f (diff)
downloadhypervideo-pre-6c4fd172de3b469918ca17b3e2f818a3bdc25564.tar.lz
hypervideo-pre-6c4fd172de3b469918ca17b3e2f818a3bdc25564.tar.xz
hypervideo-pre-6c4fd172de3b469918ca17b3e2f818a3bdc25564.zip
Add fallback for thumbnails
Workaround for: https://github.com/ytdl-org/youtube-dl/issues/28023 Related: https://github.com/ytdl-org/youtube-dl/pull/28031 Also fixes https://www.reddit.com/r/youtubedl/comments/lfslw1/youtubedlp_with_aria2c_for_dash_support_is/gmolt0r?context=3
-rw-r--r--youtube_dlc/YoutubeDL.py19
1 files changed, 9 insertions, 10 deletions
diff --git a/youtube_dlc/YoutubeDL.py b/youtube_dlc/YoutubeDL.py
index 1bbc0a212..ad25dfba4 100644
--- a/youtube_dlc/YoutubeDL.py
+++ b/youtube_dlc/YoutubeDL.py
@@ -2893,20 +2893,17 @@ class YoutubeDL(object):
return encoding
def _write_thumbnails(self, info_dict, filename): # return the extensions
- if self.params.get('writethumbnail', False):
- thumbnails = info_dict.get('thumbnails')
- if thumbnails:
- thumbnails = [thumbnails[-1]]
- elif self.params.get('write_all_thumbnails', False):
+ write_all = self.params.get('write_all_thumbnails', False)
+ thumbnails = []
+ if write_all or self.params.get('writethumbnail', False):
thumbnails = info_dict.get('thumbnails') or []
- else:
- thumbnails = []
+ multiple = write_all and len(thumbnails) > 1
ret = []
- for t in thumbnails:
+ for t in thumbnails[::1 if write_all else -1]:
thumb_ext = determine_ext(t['url'], 'jpg')
- suffix = '%s.' % t['id'] if len(thumbnails) > 1 else ''
- thumb_display_id = '%s ' % t['id'] if len(thumbnails) > 1 else ''
+ suffix = '%s.' % t['id'] if multiple else ''
+ thumb_display_id = '%s ' % t['id'] if multiple else ''
t['filename'] = thumb_filename = replace_extension(filename, suffix + thumb_ext, info_dict.get('ext'))
if not self.params.get('overwrites', True) and os.path.exists(encodeFilename(thumb_filename)):
@@ -2926,4 +2923,6 @@ class YoutubeDL(object):
except (compat_urllib_error.URLError, compat_http_client.HTTPException, socket.error) as err:
self.report_warning('Unable to download thumbnail "%s": %s' %
(t['url'], error_to_compat_str(err)))
+ if ret and not write_all:
+ break
return ret