[googledrive] Fix formats' sorting (closes #13443)
This commit is contained in:
		| @@ -69,19 +69,32 @@ class GoogleDriveIE(InfoExtractor): | ||||
|             r'"fmt_stream_map"\s*,\s*"([^"]+)', webpage, 'fmt stream map').split(',') | ||||
|         fmt_list = self._search_regex(r'"fmt_list"\s*,\s*"([^"]+)', webpage, 'fmt_list').split(',') | ||||
|  | ||||
|         resolutions = {} | ||||
|         for fmt in fmt_list: | ||||
|             mobj = re.search( | ||||
|                 r'^(?P<format_id>\d+)/(?P<width>\d+)[xX](?P<height>\d+)', fmt) | ||||
|             if mobj: | ||||
|                 resolutions[mobj.group('format_id')] = ( | ||||
|                     int(mobj.group('width')), int(mobj.group('height'))) | ||||
|  | ||||
|         formats = [] | ||||
|         for fmt, fmt_stream in zip(fmt_list, fmt_stream_map): | ||||
|             fmt_id, fmt_url = fmt_stream.split('|') | ||||
|             resolution = fmt.split('/')[1] | ||||
|             width, height = resolution.split('x') | ||||
|             formats.append({ | ||||
|                 'url': lowercase_escape(fmt_url), | ||||
|                 'format_id': fmt_id, | ||||
|                 'resolution': resolution, | ||||
|                 'width': int_or_none(width), | ||||
|                 'height': int_or_none(height), | ||||
|                 'ext': self._FORMATS_EXT[fmt_id], | ||||
|             }) | ||||
|         for fmt_stream in fmt_stream_map: | ||||
|             fmt_stream_split = fmt_stream.split('|') | ||||
|             if len(fmt_stream_split) < 2: | ||||
|                 continue | ||||
|             format_id, format_url = fmt_stream_split[:2] | ||||
|             f = { | ||||
|                 'url': lowercase_escape(format_url), | ||||
|                 'format_id': format_id, | ||||
|                 'ext': self._FORMATS_EXT[format_id], | ||||
|             } | ||||
|             resolution = resolutions.get(format_id) | ||||
|             if resolution: | ||||
|                 f.update({ | ||||
|                     'width': resolution[0], | ||||
|                     'height': resolution[0], | ||||
|                 }) | ||||
|             formats.append(f) | ||||
|         self._sort_formats(formats) | ||||
|  | ||||
|         return { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user