Added --sleep-interval option
authorrupertbaxter2 <rupertbaxter2@yahoo.com>
Sun, 3 Aug 2014 14:34:04 +0000 (07:34 -0700)
committerrupertbaxter2 <rupertbaxter2@yahoo.com>
Sun, 3 Aug 2014 14:34:04 +0000 (07:34 -0700)
youtube_dl/__init__.py
youtube_dl/downloader/common.py
youtube_dl/utils.py

index 429630ce5c61289140b6b0188bba32cbf7a153a0..2bd5ec33b92fbb7e8bc9d8d368a9cbfe763ab92a 100644 (file)
@@ -351,6 +351,8 @@ def parseOpts(overrideArguments=None):
 
     downloader.add_option('-r', '--rate-limit',
             dest='ratelimit', metavar='LIMIT', help='maximum download rate in bytes per second (e.g. 50K or 4.2M)')
+    downloader.add_option('--sleep-interval',
+            dest='sleepinterval', metavar='SLEEPINTERVAL', help='number of seconds to sleep between downloads (default is %default)', default="0")
     downloader.add_option('-R', '--retries',
             dest='retries', metavar='RETRIES', help='number of retries (default is %default)', default=10)
     downloader.add_option('--buffer-size',
@@ -671,6 +673,11 @@ def _real_main(argv=None):
         if numeric_limit is None:
             parser.error(u'invalid rate limit specified')
         opts.ratelimit = numeric_limit
+    if opts.sleepinterval is not None:
+        try:
+            opts.sleepinterval = abs(int(opts.sleepinterval))
+        except ValueError:
+            parser.error(u'invalid sleep interval specified')
     if opts.min_filesize is not None:
         numeric_limit = FileDownloader.parse_bytes(opts.min_filesize)
         if numeric_limit is None:
@@ -767,6 +774,7 @@ def _real_main(argv=None):
         'restrictfilenames': opts.restrictfilenames,
         'ignoreerrors': opts.ignoreerrors,
         'ratelimit': opts.ratelimit,
+        'sleepinterval': opts.sleepinterval,
         'nooverwrites': opts.nooverwrites,
         'retries': opts.retries,
         'buffersize': opts.buffersize,
index 917f3450e63c62b95551081109c5d3f55f49aeba..8e0e386bf185803e07b89bea3ee46c5ffb62e527 100644 (file)
@@ -278,6 +278,9 @@ class FileDownloader(object):
         """Download to a filename using the info from info_dict
         Return True on success and False otherwise
         """
+        sleep_interval = self.params.get('sleepinterval', 0)
+        self.to_screen(u'[download] Sleeping %d seconds...' %sleep_interval)
+        time.sleep(sleep_interval)
         # Check file already present
         if self.params.get('continuedl', False) and os.path.isfile(encodeFilename(filename)) and not self.params.get('nopart', False):
             self.report_file_already_downloaded(filename)
index e40b367c255719046bf2d5dd2fd63bc6bb2e4d8a..d199d26d26f6e1c4077021c05e8e19f7f7d9feb3 100644 (file)
@@ -6,6 +6,7 @@ import codecs
 import contextlib
 import ctypes
 import datetime
+import time
 import email.utils
 import errno
 import getpass
@@ -747,6 +748,8 @@ class YoutubeDLHandler(compat_urllib_request.HTTPHandler):
                 del req.headers['User-agent']
             req.headers['User-agent'] = req.headers['Youtubedl-user-agent']
             del req.headers['Youtubedl-user-agent']
+        #print("sleeping\n")
+        #time.sleep(1)
         return req
 
     def http_response(self, req, resp):