mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +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:
		 John Hawkinson
					John Hawkinson
				
			
				
					committed by
					
						 Sergey M․
						Sergey M․
					
				
			
			
				
	
			
			
			 Sergey M․
						Sergey M․
					
				
			
						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: | ||||||
|  |                 if s.get('total_bytes') is not None: | ||||||
|                     s['_total_bytes_str'] = format_bytes(s['total_bytes']) |                     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,6 +41,12 @@ 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: | ||||||
|  |             if filename == '-': | ||||||
|  |                 self._hook_progress({ | ||||||
|  |                     'filename': filename, | ||||||
|  |                     'status': 'finished', | ||||||
|  |                 }) | ||||||
|  |             else: | ||||||
|                 fsize = os.path.getsize(encodeFilename(tmpfilename)) |                 fsize = os.path.getsize(encodeFilename(tmpfilename)) | ||||||
|                 self.to_screen('\r[%s] Downloaded %s bytes' % (self.get_basename(), fsize)) |                 self.to_screen('\r[%s] Downloaded %s bytes' % (self.get_basename(), fsize)) | ||||||
|                 self.try_rename(tmpfilename, filename) |                 self.try_rename(tmpfilename, filename) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user