mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	| @@ -4,6 +4,7 @@ import functools | ||||
| import os | ||||
| import random | ||||
| import re | ||||
| import threading | ||||
| import time | ||||
| 
 | ||||
| from ..minicurses import ( | ||||
| @@ -63,6 +64,7 @@ class FileDownloader: | ||||
|     min_filesize:       Skip files smaller than this size | ||||
|     max_filesize:       Skip files larger than this size | ||||
|     xattr_set_filesize: Set ytdl.filesize user xattribute with expected size. | ||||
|     progress_delta:     The minimum time between progress output, in seconds | ||||
|     external_downloader_args:  A dictionary of downloader keys (in lower case) | ||||
|                         and a list of additional command-line arguments for the | ||||
|                         executable. Use 'default' as the name for arguments to be | ||||
| @@ -88,6 +90,9 @@ class FileDownloader: | ||||
|         self.params = params | ||||
|         self._prepare_multiline_status() | ||||
|         self.add_progress_hook(self.report_progress) | ||||
|         if self.params.get('progress_delta'): | ||||
|             self._progress_delta_lock = threading.Lock() | ||||
|             self._progress_delta_time = time.monotonic() | ||||
| 
 | ||||
|     def _set_ydl(self, ydl): | ||||
|         self.ydl = ydl | ||||
| @@ -366,6 +371,12 @@ class FileDownloader: | ||||
|         if s['status'] != 'downloading': | ||||
|             return | ||||
| 
 | ||||
|         if update_delta := self.params.get('progress_delta'): | ||||
|             with self._progress_delta_lock: | ||||
|                 if time.monotonic() < self._progress_delta_time: | ||||
|                     return | ||||
|                 self._progress_delta_time += update_delta | ||||
| 
 | ||||
|         s.update({ | ||||
|             '_eta_str': self.format_eta(s.get('eta')).strip(), | ||||
|             '_speed_str': self.format_speed(s.get('speed')), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Simon Sawicki
					Simon Sawicki