mirror of
				https://code.hackerspace.pl/q3k/youtube-dl
				synced 2025-03-16 11:43:02 +00:00 
			
		
		
		
	[downloader/external] Fix download finalization when writing file to stdout (closes #10809)
An OSError or IOError generally indicates something a little more wrong than a "simple" UnavailableVideoError, so print the actual traceback that leads to the exception. Otherwise meaningful postmortem debugging a bug report is essentially infeasible.
This commit is contained in:
		
							parent
							
								
									0ff2c1ecb6
								
							
						
					
					
						commit
						80aa246094
					
				| @ -249,12 +249,14 @@ class FileDownloader(object): | |||||||
|             if self.params.get('noprogress', False): |             if self.params.get('noprogress', False): | ||||||
|                 self.to_screen('[download] Download completed') |                 self.to_screen('[download] Download completed') | ||||||
|             else: |             else: | ||||||
|                 s['_total_bytes_str'] = format_bytes(s['total_bytes']) |                 if s.get('total_bytes') is not None: | ||||||
|  |                     s['_total_bytes_str'] = format_bytes(s['total_bytes']) | ||||||
|  |                     msg_template = '100%% of %(_total_bytes_str)s' | ||||||
|  |                 else: | ||||||
|  |                     msg_template = 'Completed' | ||||||
|                 if s.get('elapsed') is not None: |                 if s.get('elapsed') is not None: | ||||||
|                     s['_elapsed_str'] = self.format_seconds(s['elapsed']) |                     s['_elapsed_str'] = self.format_seconds(s['elapsed']) | ||||||
|                     msg_template = '100%% of %(_total_bytes_str)s in %(_elapsed_str)s' |                     msg_template += ' in %(_elapsed_str)s' | ||||||
|                 else: |  | ||||||
|                     msg_template = '100%% of %(_total_bytes_str)s' |  | ||||||
|                 self._report_progress_status( |                 self._report_progress_status( | ||||||
|                     msg_template % s, is_last_line=True) |                     msg_template % s, is_last_line=True) | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -41,15 +41,21 @@ class ExternalFD(FileDownloader): | |||||||
|             self.to_screen('[%s] Interrupted by user' % self.get_basename()) |             self.to_screen('[%s] Interrupted by user' % self.get_basename()) | ||||||
| 
 | 
 | ||||||
|         if retval == 0: |         if retval == 0: | ||||||
|             fsize = os.path.getsize(encodeFilename(tmpfilename)) |             if filename == '-': | ||||||
|             self.to_screen('\r[%s] Downloaded %s bytes' % (self.get_basename(), fsize)) |                 self._hook_progress({ | ||||||
|             self.try_rename(tmpfilename, filename) |                     'filename': filename, | ||||||
|             self._hook_progress({ |                     'status': 'finished', | ||||||
|                 'downloaded_bytes': fsize, |                 }) | ||||||
|                 'total_bytes': fsize, |             else: | ||||||
|                 'filename': filename, |                 fsize = os.path.getsize(encodeFilename(tmpfilename)) | ||||||
|                 'status': 'finished', |                 self.to_screen('\r[%s] Downloaded %s bytes' % (self.get_basename(), fsize)) | ||||||
|             }) |                 self.try_rename(tmpfilename, filename) | ||||||
|  |                 self._hook_progress({ | ||||||
|  |                     'downloaded_bytes': fsize, | ||||||
|  |                     'total_bytes': fsize, | ||||||
|  |                     'filename': filename, | ||||||
|  |                     'status': 'finished', | ||||||
|  |                 }) | ||||||
|             return True |             return True | ||||||
|         else: |         else: | ||||||
|             self.to_stderr('\n') |             self.to_stderr('\n') | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 John Hawkinson
						John Hawkinson