diff options
| author | Francois du Toit <bluegray@purpleray> | 2011-09-28 01:28:37 +0200 | 
|---|---|---|
| committer | Francois du Toit <bluegray@purpleray> | 2011-09-28 01:28:37 +0200 | 
| commit | 3de2a1e63595741f7b7ea19b7ead7b212bf4d42f (patch) | |
| tree | 64daa014c7285454c1777efb465e65a82891f164 | |
| parent | 1eff9ac0c58196b9da4909b63e590304a1d55801 (diff) | |
Added option -L to list available formats
| -rwxr-xr-x | youtube-dl | 26 | 
1 files changed, 26 insertions, 0 deletions
diff --git a/youtube-dl b/youtube-dl index 6cb58f1a8..09f8ddd98 100755 --- a/youtube-dl +++ b/youtube-dl @@ -1103,6 +1103,21 @@ class YoutubeIE(InfoExtractor):  		'44': 'webm',  		'45': 'webm',  	} +	_video_dimensions = { +		'5': '240x400', +		'6': '???', +		'13': '???', +		'17': '144x176', +		'18': '360x640', +		'22': '720x1280', +		'34': '360x640', +		'35': '480x854', +		'37': '1080x1920', +		'38': '3072x4096', +		'43': '360x640', +		'44': '480x854', +		'45': '720x1280', +	}	  	IE_NAME = u'youtube'  	def report_lang(self): @@ -1137,6 +1152,11 @@ class YoutubeIE(InfoExtractor):  		"""Indicate the download will use the RTMP protocol."""  		self._downloader.to_screen(u'[youtube] RTMP download detected') +	def _print_formats(self, formats): +		print 'Available formats:' +		for x in formats: +			print '%s\t:\t%s\t[%s]' %(x, self._video_extensions.get(x, 'flv'), self._video_dimensions.get(x, '???')) +  	def _real_initialize(self):  		if self._downloader is None:  			return @@ -1330,6 +1350,9 @@ class YoutubeIE(InfoExtractor):  			if len(existing_formats) == 0:  				self._downloader.trouble(u'ERROR: no known formats available for video')  				return +			if self._downloader.params.get('listformats', None): +				self._print_formats(existing_formats) +				sys.exit(0)  			if req_format is None or req_format == 'best':  				video_url_list = [(existing_formats[0], url_map[existing_formats[0]])] # Best quality  			elif req_format == 'worst': @@ -3564,6 +3587,8 @@ def parseOpts():  			action='store_const', dest='format', help='download all available video formats', const='all')  	video_format.add_option('--max-quality',  			action='store', dest='format_limit', metavar='FORMAT', help='highest quality format to download') +	video_format.add_option('-L', '--list-formats', +			action='store_true', dest='listformats', help='list all available formats')  	verbosity.add_option('-q', '--quiet', @@ -3784,6 +3809,7 @@ def main():  		'skip_download': (opts.skip_download or opts.simulate or opts.geturl or opts.gettitle or opts.getthumbnail or opts.getdescription or opts.getfilename or opts.getformat),  		'format': opts.format,  		'format_limit': opts.format_limit, +		'listformats': opts.listformats,  		'outtmpl': ((opts.outtmpl is not None and opts.outtmpl.decode(preferredencoding()))  			or (opts.format == '-1' and opts.usetitle and u'%(stitle)s-%(id)s-%(format)s.%(ext)s')  			or (opts.format == '-1' and opts.useliteral and u'%(title)s-%(id)s-%(format)s.%(ext)s')  | 
