mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-11-01 09:26:45 -07:00 
			
		
		
		
	Actually merge #379
This commit is contained in:
		@@ -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
 | 
					    -i, --ignore-errors      continue on download errors
 | 
				
			||||||
    -r, --rate-limit LIMIT   download rate limit (e.g. 50k or 44.6m)
 | 
					    -r, --rate-limit LIMIT   download rate limit (e.g. 50k or 44.6m)
 | 
				
			||||||
    -R, --retries RETRIES    number of retries (default is 10)
 | 
					    -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
 | 
					    --dump-user-agent        display the current browser identification
 | 
				
			||||||
    --user-agent UA          specify a custom user agent
 | 
					    --user-agent UA          specify a custom user agent
 | 
				
			||||||
    --list-extractors        List all supported extractors and the URLs they
 | 
					    --list-extractors        List all supported extractors and the URLs they
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,11 @@ redistribute it or use it however you like.
 | 
				
			|||||||
-i,\ --ignore-errors\ \ \ \ \ \ continue\ on\ download\ errors
 | 
					-i,\ --ignore-errors\ \ \ \ \ \ continue\ on\ download\ errors
 | 
				
			||||||
-r,\ --rate-limit\ LIMIT\ \ \ download\ rate\ limit\ (e.g.\ 50k\ or\ 44.6m)
 | 
					-r,\ --rate-limit\ LIMIT\ \ \ download\ rate\ limit\ (e.g.\ 50k\ or\ 44.6m)
 | 
				
			||||||
-R,\ --retries\ RETRIES\ \ \ \ number\ of\ retries\ (default\ is\ 10)
 | 
					-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
 | 
					--dump-user-agent\ \ \ \ \ \ \ \ display\ the\ current\ browser\ identification
 | 
				
			||||||
--user-agent\ UA\ \ \ \ \ \ \ \ \ \ specify\ a\ custom\ user\ agent
 | 
					--user-agent\ UA\ \ \ \ \ \ \ \ \ \ specify\ a\ custom\ user\ agent
 | 
				
			||||||
--list-extractors\ \ \ \ \ \ \ \ List\ all\ supported\ extractors\ and\ the\ URLs\ they
 | 
					--list-extractors\ \ \ \ \ \ \ \ List\ all\ supported\ extractors\ and\ the\ URLs\ they
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,7 @@ __youtube-dl()
 | 
				
			|||||||
    local cur prev opts
 | 
					    local cur prev opts
 | 
				
			||||||
    COMPREPLY=()
 | 
					    COMPREPLY=()
 | 
				
			||||||
    cur="${COMP_WORDS[COMP_CWORD]}"
 | 
					    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
 | 
					    if [[ ${cur} == * ]] ; then
 | 
				
			||||||
        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
 | 
					        COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,6 +62,8 @@ class FileDownloader(object):
 | 
				
			|||||||
	ratelimit:         Download speed limit, in bytes/sec.
 | 
						ratelimit:         Download speed limit, in bytes/sec.
 | 
				
			||||||
	nooverwrites:      Prevent overwriting files.
 | 
						nooverwrites:      Prevent overwriting files.
 | 
				
			||||||
	retries:           Number of times to retry for HTTP error 5xx
 | 
						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.
 | 
						continuedl:        Try to continue downloads if possible.
 | 
				
			||||||
	noprogress:        Do not print the progress bar.
 | 
						noprogress:        Do not print the progress bar.
 | 
				
			||||||
	playliststart:     Playlist item to start at.
 | 
						playliststart:     Playlist item to start at.
 | 
				
			||||||
@@ -644,7 +646,7 @@ class FileDownloader(object):
 | 
				
			|||||||
			data_len = long(data_len) + resume_len
 | 
								data_len = long(data_len) + resume_len
 | 
				
			||||||
		data_len_str = self.format_bytes(data_len)
 | 
							data_len_str = self.format_bytes(data_len)
 | 
				
			||||||
		byte_counter = 0 + resume_len
 | 
							byte_counter = 0 + resume_len
 | 
				
			||||||
		block_size = 1024
 | 
							block_size = self.params.get('buffersize', 1024)
 | 
				
			||||||
		start = time.time()
 | 
							start = time.time()
 | 
				
			||||||
		while True:
 | 
							while True:
 | 
				
			||||||
			# Download and write
 | 
								# Download and write
 | 
				
			||||||
@@ -670,6 +672,7 @@ class FileDownloader(object):
 | 
				
			|||||||
			except (IOError, OSError), err:
 | 
								except (IOError, OSError), err:
 | 
				
			||||||
				self.trouble(u'\nERROR: unable to write data: %s' % str(err))
 | 
									self.trouble(u'\nERROR: unable to write data: %s' % str(err))
 | 
				
			||||||
				return False
 | 
									return False
 | 
				
			||||||
 | 
								if not self.params.get('noresizebuffer', False):
 | 
				
			||||||
				block_size = self.best_block_size(after - before, len(data_block))
 | 
									block_size = self.best_block_size(after - before, len(data_block))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			# Progress message
 | 
								# Progress message
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -187,6 +187,11 @@ def parseOpts():
 | 
				
			|||||||
			dest='ratelimit', metavar='LIMIT', help='download rate limit (e.g. 50k or 44.6m)')
 | 
								dest='ratelimit', metavar='LIMIT', help='download rate limit (e.g. 50k or 44.6m)')
 | 
				
			||||||
	general.add_option('-R', '--retries',
 | 
						general.add_option('-R', '--retries',
 | 
				
			||||||
			dest='retries', metavar='RETRIES', help='number of retries (default is %default)', default=10)
 | 
								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',
 | 
						general.add_option('--dump-user-agent',
 | 
				
			||||||
			action='store_true', dest='dump_user_agent',
 | 
								action='store_true', dest='dump_user_agent',
 | 
				
			||||||
			help='display the current browser identification', default=False)
 | 
								help='display the current browser identification', default=False)
 | 
				
			||||||
@@ -443,6 +448,11 @@ def _real_main():
 | 
				
			|||||||
			opts.retries = long(opts.retries)
 | 
								opts.retries = long(opts.retries)
 | 
				
			||||||
		except (TypeError, ValueError), err:
 | 
							except (TypeError, ValueError), err:
 | 
				
			||||||
			parser.error(u'invalid retry count specified')
 | 
								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:
 | 
						try:
 | 
				
			||||||
		opts.playliststart = int(opts.playliststart)
 | 
							opts.playliststart = int(opts.playliststart)
 | 
				
			||||||
		if opts.playliststart <= 0:
 | 
							if opts.playliststart <= 0:
 | 
				
			||||||
@@ -493,6 +503,8 @@ def _real_main():
 | 
				
			|||||||
		'ratelimit': opts.ratelimit,
 | 
							'ratelimit': opts.ratelimit,
 | 
				
			||||||
		'nooverwrites': opts.nooverwrites,
 | 
							'nooverwrites': opts.nooverwrites,
 | 
				
			||||||
		'retries': opts.retries,
 | 
							'retries': opts.retries,
 | 
				
			||||||
 | 
							'buffersize': opts.buffersize,
 | 
				
			||||||
 | 
							'noresizebuffer': opts.noresizebuffer,
 | 
				
			||||||
		'continuedl': opts.continue_dl,
 | 
							'continuedl': opts.continue_dl,
 | 
				
			||||||
		'noprogress': opts.noprogress,
 | 
							'noprogress': opts.noprogress,
 | 
				
			||||||
		'playliststart': opts.playliststart,
 | 
							'playliststart': opts.playliststart,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user