mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[YoutubeDL] Make sure all formats have unique format_id
This commit is contained in:
		| @@ -1047,6 +1047,8 @@ class YoutubeDL(object): | |||||||
|         if not formats: |         if not formats: | ||||||
|             raise ExtractorError('No video formats found!') |             raise ExtractorError('No video formats found!') | ||||||
|  |  | ||||||
|  |         formats_dict = {} | ||||||
|  |  | ||||||
|         # We check that all the formats have the format and format_id fields |         # We check that all the formats have the format and format_id fields | ||||||
|         for i, format in enumerate(formats): |         for i, format in enumerate(formats): | ||||||
|             if 'url' not in format: |             if 'url' not in format: | ||||||
| @@ -1054,6 +1056,18 @@ class YoutubeDL(object): | |||||||
|  |  | ||||||
|             if format.get('format_id') is None: |             if format.get('format_id') is None: | ||||||
|                 format['format_id'] = compat_str(i) |                 format['format_id'] = compat_str(i) | ||||||
|  |             format_id = format['format_id'] | ||||||
|  |             if format_id not in formats_dict: | ||||||
|  |                 formats_dict[format_id] = [] | ||||||
|  |             formats_dict[format_id].append(format) | ||||||
|  |  | ||||||
|  |         # Make sure all formats have unique format_id | ||||||
|  |         for format_id, ambiguous_formats in formats_dict.items(): | ||||||
|  |             if len(ambiguous_formats) > 1: | ||||||
|  |                 for i, format in enumerate(ambiguous_formats): | ||||||
|  |                     format['format_id'] = '%s-%d' % (format_id, i) | ||||||
|  |  | ||||||
|  |         for i, format in enumerate(formats): | ||||||
|             if format.get('format') is None: |             if format.get('format') is None: | ||||||
|                 format['format'] = '{id} - {res}{note}'.format( |                 format['format'] = '{id} - {res}{note}'.format( | ||||||
|                     id=format['format_id'], |                     id=format['format_id'], | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․