diff options
| -rw-r--r-- | README.md | 3 | ||||
| -rwxr-xr-x | youtube-dl | bin | 40554 -> 40754 bytes | |||
| -rwxr-xr-x | youtube-dl.exe | bin | 3989631 -> 3989797 bytes | |||
| -rw-r--r-- | youtube_dl/FileDownloader.py | 7 | ||||
| -rw-r--r-- | youtube_dl/__init__.py | 12 | 
5 files changed, 20 insertions, 2 deletions
| @@ -17,6 +17,9 @@ which means you can modify it, redistribute it or use it however you like.      -i, --ignore-errors      continue on download errors      -r, --rate-limit LIMIT   download rate limit (e.g. 50k or 44.6m)      -R, --retries RETRIES    number of retries (default is 10) +    -b, --buffer-size SIZE   size of download buffer (e.g. 1024 or 16k) (default +                             is 1024) +    --no-resize-buffer       do not automatically adjust the buffer size      --dump-user-agent        display the current browser identification      --list-extractors        List all supported extractors and the URLs they                               would handle diff --git a/youtube-dl b/youtube-dlBinary files differ index b3e0cd422..6e6932b52 100755 --- a/youtube-dl +++ b/youtube-dl diff --git a/youtube-dl.exe b/youtube-dl.exeBinary files differ index c55f5fa8d..4ff820dc8 100755 --- a/youtube-dl.exe +++ b/youtube-dl.exe diff --git a/youtube_dl/FileDownloader.py b/youtube_dl/FileDownloader.py index 14e872a98..724de17c7 100644 --- a/youtube_dl/FileDownloader.py +++ b/youtube_dl/FileDownloader.py @@ -61,6 +61,8 @@ class FileDownloader(object):  	ratelimit:        Download speed limit, in bytes/sec.  	nooverwrites:     Prevent overwriting files.  	retries:          Number of times to retry for HTTP error 5xx +	buffersize:       Size of download buffer in bytes. +	noresizebuffer:   Do not automatically resize the download buffer.  	continuedl:       Try to continue downloads if possible.  	noprogress:       Do not print the progress bar.  	playliststart:    Playlist item to start at. @@ -633,7 +635,7 @@ class FileDownloader(object):  			data_len = long(data_len) + resume_len  		data_len_str = self.format_bytes(data_len)  		byte_counter = 0 + resume_len -		block_size = 1024 +		block_size = self.params.get('buffersize', 1024)  		start = time.time()  		while True:  			# Download and write @@ -659,7 +661,8 @@ class FileDownloader(object):  			except (IOError, OSError), err:  				self.trouble(u'\nERROR: unable to write data: %s' % str(err))  				return False -			block_size = self.best_block_size(after - before, len(data_block)) +			if not self.params.get('noresizebuffer', False): +				block_size = self.best_block_size(after - before, len(data_block))  			# Progress message  			speed_str = self.calc_speed(start, time.time(), byte_counter - resume_len) diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index f10822db1..7983b24eb 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -187,6 +187,11 @@ def parseOpts():  			dest='ratelimit', metavar='LIMIT', help='download rate limit (e.g. 50k or 44.6m)')  	general.add_option('-R', '--retries',  			dest='retries', metavar='RETRIES', help='number of retries (default is 10)', default=10) +	general.add_option('-b', '--buffer-size', +			dest='buffersize', metavar='SIZE', help='size of download buffer (e.g. 1024 or 16k) (default is 1024)', default="1024") +	general.add_option('--no-resize-buffer', +			action='store_true', dest='noresizebuffer', +			help='do not automatically adjust the buffer size', default=False)  	general.add_option('--dump-user-agent',  			action='store_true', dest='dump_user_agent',  			help='display the current browser identification', default=False) @@ -428,6 +433,11 @@ def _real_main():  			opts.retries = long(opts.retries)  		except (TypeError, ValueError), err:  			parser.error(u'invalid retry count specified') +	if opts.buffersize is not None: +		numeric_buffersize = FileDownloader.parse_bytes(opts.buffersize) +		if numeric_buffersize is None: +			parser.error(u'invalid buffer size specified') +		opts.buffersize = numeric_buffersize  	try:  		opts.playliststart = int(opts.playliststart)  		if opts.playliststart <= 0: @@ -475,6 +485,8 @@ def _real_main():  		'ratelimit': opts.ratelimit,  		'nooverwrites': opts.nooverwrites,  		'retries': opts.retries, +		'buffersize': opts.buffersize, +		'noresizebuffer': opts.noresizebuffer,  		'continuedl': opts.continue_dl,  		'noprogress': opts.noprogress,  		'playliststart': opts.playliststart, | 
