projects
/
youtube-dl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[vlive] Add test for #11203
[youtube-dl]
/
youtube_dl
/
downloader
/
common.py
diff --git
a/youtube_dl/downloader/common.py
b/youtube_dl/downloader/common.py
index f39db58f6c13f623a00b37ef0565dad70f18a305..3dc144b4e19f208d4075d6423ce3278b3a614330 100644
(file)
--- a/
youtube_dl/downloader/common.py
+++ b/
youtube_dl/downloader/common.py
@@
-4,6
+4,7
@@
import os
import re
import sys
import time
import re
import sys
import time
+import random
from ..compat import compat_os_name
from ..utils import (
from ..compat import compat_os_name
from ..utils import (
@@
-115,6
+116,10
@@
class FileDownloader(object):
return '%10s' % '---b/s'
return '%10s' % ('%s/s' % format_bytes(speed))
return '%10s' % '---b/s'
return '%10s' % ('%s/s' % format_bytes(speed))
+ @staticmethod
+ def format_retries(retries):
+ return 'inf' if retries == float('inf') else '%.0f' % retries
+
@staticmethod
def best_block_size(elapsed_time, bytes):
new_min = max(bytes / 2.0, 1.0)
@staticmethod
def best_block_size(elapsed_time, bytes):
new_min = max(bytes / 2.0, 1.0)
@@
-297,7
+302,9
@@
class FileDownloader(object):
def report_retry(self, count, retries):
"""Report retry in case of HTTP error 5xx"""
def report_retry(self, count, retries):
"""Report retry in case of HTTP error 5xx"""
- self.to_screen('[download] Got server HTTP error. Retrying (attempt %d of %.0f)...' % (count, retries))
+ self.to_screen(
+ '[download] Got server HTTP error. Retrying (attempt %d of %s)...'
+ % (count, self.format_retries(retries)))
def report_file_already_downloaded(self, file_name):
"""Report file has already been fully downloaded."""
def report_file_already_downloaded(self, file_name):
"""Report file has already been fully downloaded."""
@@
-336,8
+343,10
@@
class FileDownloader(object):
})
return True
})
return True
- sleep_interval = self.params.get('sleep_interval')
- if sleep_interval:
+ min_sleep_interval = self.params.get('sleep_interval')
+ if min_sleep_interval:
+ max_sleep_interval = self.params.get('max_sleep_interval', min_sleep_interval)
+ sleep_interval = random.uniform(min_sleep_interval, max_sleep_interval)
self.to_screen('[download] Sleeping %s seconds...' % sleep_interval)
time.sleep(sleep_interval)
self.to_screen('[download] Sleeping %s seconds...' % sleep_interval)
time.sleep(sleep_interval)