--max-downloads option (Closes #230)
This commit is contained in:
		
							parent
							
								
									a95567af99
								
							
						
					
					
						commit
						b88a52504e
					
				
					 3 changed files with 20 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -28,6 +28,7 @@ which means you can modify it, redistribute it or use it however you like.
 | 
			
		|||
                             sub-string)
 | 
			
		||||
    --reject-title REGEX     skip download for matching titles (regex or
 | 
			
		||||
                             caseless sub-string)
 | 
			
		||||
    --max-downloads NUMBER   Abort after downloading NUMBER files
 | 
			
		||||
 | 
			
		||||
### Filesystem Options:
 | 
			
		||||
    -t, --title              use title in file name
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -701,6 +701,13 @@ class FileDownloader(object):
 | 
			
		|||
 | 
			
		||||
	def process_info(self, info_dict):
 | 
			
		||||
		"""Process a single dictionary returned by an InfoExtractor."""
 | 
			
		||||
 | 
			
		||||
		max_downloads = int(self.params.get('max_downloads'))
 | 
			
		||||
		if max_downloads is not None:
 | 
			
		||||
			if self._num_downloads > max_downloads:
 | 
			
		||||
				self.to_screen(u'[download] Maximum number of downloads reached. Skipping ' + info_dict['title'])
 | 
			
		||||
				return
 | 
			
		||||
		
 | 
			
		||||
		filename = self.prepare_filename(info_dict)
 | 
			
		||||
		
 | 
			
		||||
		# Forced printings
 | 
			
		||||
| 
						 | 
				
			
			@ -3997,6 +4004,7 @@ def parseOpts():
 | 
			
		|||
			dest='playlistend', metavar='NUMBER', help='playlist video to end at (default is last)', default=-1)
 | 
			
		||||
	selection.add_option('--match-title', dest='matchtitle', metavar='REGEX',help='download only matching titles (regex or caseless sub-string)')
 | 
			
		||||
	selection.add_option('--reject-title', dest='rejecttitle', metavar='REGEX',help='skip download for matching titles (regex or caseless sub-string)')
 | 
			
		||||
	selection.add_option('--max-downloads', metavar='NUMBER', dest='max_downloads', help='Abort after downloading NUMBER files', default=None)
 | 
			
		||||
 | 
			
		||||
	authentication.add_option('-u', '--username',
 | 
			
		||||
			dest='username', metavar='USERNAME', help='account username')
 | 
			
		||||
| 
						 | 
				
			
			@ -4266,6 +4274,7 @@ def _real_main():
 | 
			
		|||
		'writeinfojson': opts.writeinfojson,
 | 
			
		||||
		'matchtitle': opts.matchtitle,
 | 
			
		||||
		'rejecttitle': opts.rejecttitle,
 | 
			
		||||
		'max_downloads': int(opts.max_downloads),
 | 
			
		||||
		})
 | 
			
		||||
	for extractor in extractors:
 | 
			
		||||
		fd.add_info_extractor(extractor)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,6 +14,7 @@ __author__  = (
 | 
			
		|||
	'Sören Schulze',
 | 
			
		||||
	'Kevin Ngo',
 | 
			
		||||
	'Ori Avtalion',
 | 
			
		||||
	'shizeeg',
 | 
			
		||||
	)
 | 
			
		||||
 | 
			
		||||
__license__ = 'Public Domain'
 | 
			
		||||
| 
						 | 
				
			
			@ -700,6 +701,13 @@ class FileDownloader(object):
 | 
			
		|||
 | 
			
		||||
	def process_info(self, info_dict):
 | 
			
		||||
		"""Process a single dictionary returned by an InfoExtractor."""
 | 
			
		||||
 | 
			
		||||
		max_downloads = int(self.params.get('max_downloads'))
 | 
			
		||||
		if max_downloads is not None:
 | 
			
		||||
			if self._num_downloads > max_downloads:
 | 
			
		||||
				self.to_screen(u'[download] Maximum number of downloads reached. Skipping ' + info_dict['title'])
 | 
			
		||||
				return
 | 
			
		||||
		
 | 
			
		||||
		filename = self.prepare_filename(info_dict)
 | 
			
		||||
		
 | 
			
		||||
		# Forced printings
 | 
			
		||||
| 
						 | 
				
			
			@ -3996,6 +4004,7 @@ def parseOpts():
 | 
			
		|||
			dest='playlistend', metavar='NUMBER', help='playlist video to end at (default is last)', default=-1)
 | 
			
		||||
	selection.add_option('--match-title', dest='matchtitle', metavar='REGEX',help='download only matching titles (regex or caseless sub-string)')
 | 
			
		||||
	selection.add_option('--reject-title', dest='rejecttitle', metavar='REGEX',help='skip download for matching titles (regex or caseless sub-string)')
 | 
			
		||||
	selection.add_option('--max-downloads', metavar='NUMBER', dest='max_downloads', help='Abort after downloading NUMBER files', default=None)
 | 
			
		||||
 | 
			
		||||
	authentication.add_option('-u', '--username',
 | 
			
		||||
			dest='username', metavar='USERNAME', help='account username')
 | 
			
		||||
| 
						 | 
				
			
			@ -4265,6 +4274,7 @@ def _real_main():
 | 
			
		|||
		'writeinfojson': opts.writeinfojson,
 | 
			
		||||
		'matchtitle': opts.matchtitle,
 | 
			
		||||
		'rejecttitle': opts.rejecttitle,
 | 
			
		||||
		'max_downloads': int(opts.max_downloads),
 | 
			
		||||
		})
 | 
			
		||||
	for extractor in extractors:
 | 
			
		||||
		fd.add_info_extractor(extractor)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue