mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	Reworked Vimeo file selection logic (quality, codec) - closes #530
This commit is contained in:
		| @@ -1100,21 +1100,32 @@ class VimeoIE(InfoExtractor): | ||||
| 		timestamp = config['request']['timestamp'] | ||||
|  | ||||
| 		# Vimeo specific: extract video codec and quality information | ||||
| 		# First consider quality, then codecs, then take everything | ||||
| 		# TODO bind to format param | ||||
| 		codecs = [('h264', 'mp4'), ('vp8', 'flv'), ('vp6', 'flv')] | ||||
| 		for codec in codecs: | ||||
| 			if codec[0] in config["video"]["files"]: | ||||
| 				video_codec = codec[0] | ||||
| 				video_extension = codec[1] | ||||
| 				if 'hd' in config["video"]["files"][codec[0]]: quality = 'hd' | ||||
| 				else: quality = 'sd' | ||||
| 		files = { 'hd': [], 'sd': [], 'other': []} | ||||
| 		for codec_name, codec_extension in codecs: | ||||
| 			if codec_name in config["video"]["files"]: | ||||
| 				if 'hd' in config["video"]["files"][codec_name]: | ||||
| 					files['hd'].append((codec_name, codec_extension, 'hd')) | ||||
| 				elif 'sd' in config["video"]["files"][codec_name]: | ||||
| 					files['sd'].append((codec_name, codec_extension, 'sd')) | ||||
| 				else: | ||||
| 					files['other'].append((codec_name, codec_extension, config["video"]["files"][codec_name][0])) | ||||
|  | ||||
| 		for quality in ('hd', 'sd', 'other'): | ||||
| 			if len(files[quality]) > 0: | ||||
| 				video_quality = files[quality][0][2] | ||||
| 				video_codec = files[quality][0][0] | ||||
| 				video_extension = files[quality][0][1] | ||||
| 				self._downloader.to_screen(u'[vimeo] %s: Downloading %s file at %s quality' % (video_id, video_codec.upper(), video_quality)) | ||||
| 				break | ||||
| 		else: | ||||
| 			self._downloader.trouble(u'ERROR: no known codec found') | ||||
| 			return | ||||
|  | ||||
| 		video_url = "http://player.vimeo.com/play_redirect?clip_id=%s&sig=%s&time=%s&quality=%s&codecs=%s&type=moogaloop_local&embed_location=" \ | ||||
| 					%(video_id, sig, timestamp, quality, video_codec.upper()) | ||||
| 					%(video_id, sig, timestamp, video_quality, video_codec.upper()) | ||||
|  | ||||
| 		return [{ | ||||
| 			'id':		video_id, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Filippo Valsorda
					Filippo Valsorda