diff options
| author | Philipp Hagemeister <phihag@phihag.de> | 2012-11-27 16:42:50 +0100 | 
|---|---|---|
| committer | Philipp Hagemeister <phihag@phihag.de> | 2012-11-27 16:42:50 +0100 | 
| commit | cc872b68a895bae05bd266cc59d53f6e3c638f6c (patch) | |
| tree | 0518ba7f811722a76b89837b5e71a97d6feb87f7 | |
| parent | 17cb14a33677cd37cd481f8ed7cff37fdab80f9d (diff) | |
Actually merge #379
| -rw-r--r-- | README.md | 5 | ||||
| -rw-r--r-- | youtube-dl.1 | 5 | ||||
| -rw-r--r-- | youtube-dl.bash-completion | 2 | ||||
| -rw-r--r-- | youtube_dl/FileDownloader.py | 7 | ||||
| -rw-r--r-- | youtube_dl/__init__.py | 12 | 
5 files changed, 28 insertions, 3 deletions
| @@ -20,6 +20,11 @@ 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) +    --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. By +                             default, the buffer size is automatically resized +                             from an initial value of SIZE.      --dump-user-agent        display the current browser identification      --user-agent UA          specify a custom user agent      --list-extractors        List all supported extractors and the URLs they diff --git a/youtube-dl.1 b/youtube-dl.1 index 2f7f25f31..17455136f 100644 --- a/youtube-dl.1 +++ b/youtube-dl.1 @@ -24,6 +24,11 @@ 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) +--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.\ By +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ default,\ the\ buffer\ size\ is\ automatically\ resized +\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ from\ an\ initial\ value\ of\ SIZE.  --dump-user-agent\ \ \ \ \ \ \ \ display\ the\ current\ browser\ identification  --user-agent\ UA\ \ \ \ \ \ \ \ \ \ specify\ a\ custom\ user\ agent  --list-extractors\ \ \ \ \ \ \ \ List\ all\ supported\ extractors\ and\ the\ URLs\ they diff --git a/youtube-dl.bash-completion b/youtube-dl.bash-completion index dee191cd4..3a2f62efb 100644 --- a/youtube-dl.bash-completion +++ b/youtube-dl.bash-completion @@ -3,7 +3,7 @@ __youtube-dl()      local cur prev opts      COMPREPLY=()      cur="${COMP_WORDS[COMP_CWORD]}" -    opts="--all-formats --audio-format --audio-quality --auto-number --batch-file --console-title --continue --cookies --dump-user-agent --extract-audio --format --get-description --get-filename --get-format --get-thumbnail --get-title --get-url --help --id --ignore-errors --keep-video --list-extractors --list-formats --literal --match-title --max-downloads --max-quality --netrc --no-continue --no-mtime --no-overwrites --no-part --no-progress --output --password --playlist-end --playlist-start --prefer-free-formats --quiet --rate-limit --reject-title --restrict-filenames --retries --simulate --skip-download --srt-lang --title --update --user-agent --username --verbose --version --write-description --write-info-json --write-srt" +    opts="--all-formats --audio-format --audio-quality --auto-number --batch-file --buffer-size --console-title --continue --cookies --dump-user-agent --extract-audio --format --get-description --get-filename --get-format --get-thumbnail --get-title --get-url --help --id --ignore-errors --keep-video --list-extractors --list-formats --literal --match-title --max-downloads --max-quality --netrc --no-continue --no-mtime --no-overwrites --no-part --no-progress --no-resize-buffer --output --password --playlist-end --playlist-start --prefer-free-formats --quiet --rate-limit --reject-title --restrict-filenames --retries --simulate --skip-download --srt-lang --title --update --user-agent --username --verbose --version --write-description --write-info-json --write-srt"      if [[ ${cur} == * ]] ; then          COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) diff --git a/youtube_dl/FileDownloader.py b/youtube_dl/FileDownloader.py index b6aebe4ac..bd0f75773 100644 --- a/youtube_dl/FileDownloader.py +++ b/youtube_dl/FileDownloader.py @@ -62,6 +62,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. @@ -644,7 +646,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 @@ -670,7 +672,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 5fc39184a..92478aa6b 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 %default)', default=10) +	general.add_option('--buffer-size', +			dest='buffersize', metavar='SIZE', help='size of download buffer (e.g. 1024 or 16k) (default is %default)', default="1024") +	general.add_option('--no-resize-buffer', +			action='store_true', dest='noresizebuffer', +			help='do not automatically adjust the buffer size. By default, the buffer size is automatically resized from an initial value of SIZE.', default=False)  	general.add_option('--dump-user-agent',  			action='store_true', dest='dump_user_agent',  			help='display the current browser identification', default=False) @@ -443,6 +448,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: @@ -493,6 +503,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, | 
