mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	add --write-thumbnail option to download thumbnail (Suggested by `)
This commit is contained in:
		| @@ -7,6 +7,7 @@ import math | ||||
| import io | ||||
| import os | ||||
| import re | ||||
| import shutil | ||||
| import socket | ||||
| import subprocess | ||||
| import sys | ||||
| @@ -79,6 +80,7 @@ class FileDownloader(object): | ||||
|     updatetime:        Use the Last-modified header to set output file timestamps. | ||||
|     writedescription:  Write the video description to a .description file | ||||
|     writeinfojson:     Write the video description to a .info.json file | ||||
|     writethumbnail:    Write the thumbnail image to a file | ||||
|     writesubtitles:    Write the video subtitles to a file | ||||
|     onlysubtitles:     Downloads only the subtitles of the video | ||||
|     allsubtitles:      Downloads all the subtitles of the video | ||||
| @@ -658,6 +660,20 @@ class FileDownloader(object): | ||||
|                 self.report_error(u'Cannot write metadata to JSON file ' + infofn) | ||||
|                 return | ||||
|  | ||||
|         if self.params.get('writethumbnail', False): | ||||
|             if 'thumbnail' in info_dict: | ||||
|                 thumb_format = info_dict['thumbnail'].rpartition(u'/')[2].rpartition(u'.')[2] | ||||
|                 if not thumb_format: | ||||
|                     thumb_format = 'jpg' | ||||
|                 thumb_filename = filename.rpartition('.')[0] + u'.' + thumb_format | ||||
|                 self.to_screen(u'[%s] %s: Downloading thumbnail ...' % | ||||
|                                (info_dict['extractor'], info_dict['id'])) | ||||
|                 uf = compat_urllib_request.urlopen(info_dict['thumbnail']) | ||||
|                 with open(thumb_filename, 'wb') as thumbf: | ||||
|                     shutil.copyfileobj(uf, thumbf) | ||||
|                 self.to_screen(u'[%s] %s: Writing thumbnail to: %s' % | ||||
|                                (info_dict['extractor'], info_dict['id'], thumb_filename)) | ||||
|  | ||||
|         if not self.params.get('skip_download', False): | ||||
|             if self.params.get('nooverwrites', False) and os.path.exists(encodeFilename(filename)): | ||||
|                 success = True | ||||
|   | ||||
| @@ -284,6 +284,9 @@ def parseOpts(overrideArguments=None): | ||||
|     filesystem.add_option('--write-info-json', | ||||
|             action='store_true', dest='writeinfojson', | ||||
|             help='write video metadata to a .info.json file', default=False) | ||||
|     filesystem.add_option('--write-thumbnail', | ||||
|             action='store_true', dest='writethumbnail', | ||||
|             help='write thumbnail image to disk', default=False) | ||||
|  | ||||
|  | ||||
|     postproc.add_option('-x', '--extract-audio', action='store_true', dest='extractaudio', default=False, | ||||
| @@ -513,6 +516,7 @@ def _real_main(argv=None): | ||||
|         'updatetime': opts.updatetime, | ||||
|         'writedescription': opts.writedescription, | ||||
|         'writeinfojson': opts.writeinfojson, | ||||
|         'writethumbnail': opts.writethumbnail, | ||||
|         'writesubtitles': opts.writesubtitles, | ||||
|         'onlysubtitles': opts.onlysubtitles, | ||||
|         'allsubtitles': opts.allsubtitles, | ||||
| @@ -529,7 +533,7 @@ def _real_main(argv=None): | ||||
|         'keepvideo': opts.keepvideo, | ||||
|         'min_filesize': opts.min_filesize, | ||||
|         'max_filesize': opts.max_filesize, | ||||
|         'daterange': date | ||||
|         'daterange': date, | ||||
|         }) | ||||
|  | ||||
|     if opts.verbose: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user