mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	Add --max-sleep-interval (Closes #9930)
This commit is contained in:
		
				
					committed by
					
						 Sergey M․
						Sergey M․
					
				
			
			
				
	
			
			
			
						parent
						
							3a380766d1
						
					
				
				
					commit
					065bc35489
				
			| @@ -249,7 +249,11 @@ class YoutubeDL(object): | ||||
|     source_address:    (Experimental) Client-side IP address to bind to. | ||||
|     call_home:         Boolean, true iff we are allowed to contact the | ||||
|                        youtube-dl servers for debugging. | ||||
|     sleep_interval:    Number of seconds to sleep before each download. | ||||
|     sleep_interval:    Minimum number of seconds to sleep before each download. | ||||
|                        Sleep will be for a random interval if --max-sleep-interval is also passed. | ||||
|     max_sleep_interval:Max number of seconds to sleep before each download. | ||||
|                        Sleep will be for a random interval if passed along with --min-sleep-interval | ||||
|                        or --sleep-interval, otherwise ignored. | ||||
|     listformats:       Print an overview of available video formats and exit. | ||||
|     list_thumbnails:   Print a table of all thumbnails and exit. | ||||
|     match_filter:      A function that gets called with the info_dict of | ||||
|   | ||||
| @@ -145,6 +145,12 @@ def _real_main(argv=None): | ||||
|         if numeric_limit is None: | ||||
|             parser.error('invalid max_filesize specified') | ||||
|         opts.max_filesize = numeric_limit | ||||
|     if opts.sleep_interval is not None: | ||||
|         if opts.sleep_interval < 0: | ||||
|             parser.error('sleep interval should not be negative') | ||||
|         elif opts.max_sleep_interval is not None: | ||||
|             if opts.max_sleep_interval < opts.sleep_interval: | ||||
|                 parser.error('max sleep interval should not be less than sleep interval') | ||||
|  | ||||
|     def parse_retries(retries): | ||||
|         if retries in ('inf', 'infinite'): | ||||
| @@ -370,6 +376,7 @@ def _real_main(argv=None): | ||||
|         'source_address': opts.source_address, | ||||
|         'call_home': opts.call_home, | ||||
|         'sleep_interval': opts.sleep_interval, | ||||
|         'max_sleep_interval': opts.max_sleep_interval, | ||||
|         'external_downloader': opts.external_downloader, | ||||
|         'list_thumbnails': opts.list_thumbnails, | ||||
|         'playlist_items': opts.playlist_items, | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import os | ||||
| import re | ||||
| import sys | ||||
| import time | ||||
| import random | ||||
|  | ||||
| from ..compat import compat_os_name | ||||
| from ..utils import ( | ||||
| @@ -342,8 +343,10 @@ class FileDownloader(object): | ||||
|             }) | ||||
|             return True | ||||
|  | ||||
|         sleep_interval = self.params.get('sleep_interval') | ||||
|         if sleep_interval: | ||||
|         sleep_lower_bound = self.params.get('sleep_interval') | ||||
|         if sleep_lower_bound: | ||||
|             sleep_upper_bound = self.params.get('max_sleep_interval', sleep_lower_bound) | ||||
|             sleep_interval = random.uniform(sleep_lower_bound, sleep_upper_bound) | ||||
|             self.to_screen('[download] Sleeping %s seconds...' % sleep_interval) | ||||
|             time.sleep(sleep_interval) | ||||
|  | ||||
|   | ||||
| @@ -499,9 +499,17 @@ def parseOpts(overrideArguments=None): | ||||
|         dest='bidi_workaround', action='store_true', | ||||
|         help='Work around terminals that lack bidirectional text support. Requires bidiv or fribidi executable in PATH') | ||||
|     workarounds.add_option( | ||||
|         '--sleep-interval', metavar='SECONDS', | ||||
|         '--sleep-interval', '--min-sleep-interval', metavar='SECONDS', | ||||
|         dest='sleep_interval', type=float, | ||||
|         help='Number of seconds to sleep before each download.') | ||||
|         help='Minimum number of seconds to sleep before each download. Sleep will be for a random interval if ' | ||||
|              '--max-sleep-interval is also passed.' | ||||
|     ) | ||||
|     workarounds.add_option( | ||||
|         '--max-sleep-interval', metavar='SECONDS', | ||||
|         dest='max_sleep_interval', type=float, | ||||
|         help='Max number of seconds to sleep before each download. Sleep will be for a random interval if passed' | ||||
|              ' along with --min-sleep-interval or --sleep-interval, otherwise ignored.' | ||||
|     ) | ||||
|  | ||||
|     verbosity = optparse.OptionGroup(parser, 'Verbosity / Simulation Options') | ||||
|     verbosity.add_option( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user