[formatsort] Remove unnecessary field_preference from extractors

These were written with the old format sorting in mind and is no longer needed
This commit is contained in:
pukkandan 2021-02-18 23:52:28 +05:30
parent 9ba5705ac0
commit 54f37eeabd
20 changed files with 29 additions and 23 deletions

View file

@ -67,7 +67,7 @@ def _real_extract(self, url):
f['height'] = int('720' if m.group('res') == 'hd' else '480')
formats.extend(video_format)
self._sort_formats(formats, field_preference=('height', 'width', 'tbr', 'format_id'))
self._sort_formats(formats)
return {
'id': video_id,

View file

@ -125,7 +125,7 @@ def _real_extract(self, url):
'height': int_or_none(qs.get('h', [None])[0]),
})
formats.append(f)
self._sort_formats(formats, ('width', 'height', 'tbr', 'format_id'))
self._sort_formats(formats)
return {
'id': video_id,

View file

@ -72,8 +72,7 @@ def _real_extract(self, url):
r'(\d+)[pP]', label or '', 'height',
default=None)),
})
self._sort_formats(
formats, field_preference=('height', 'width', 'tbr', 'format_id'))
self._sort_formats(formats)
info = self._search_json_ld(webpage, video_id, default={})

View file

@ -152,8 +152,7 @@ def _real_extract(self, url):
'url': s_url,
'preference': -1,
})
self._sort_formats(
formats, ('preference', 'width', 'height', 'vbr', 'filesize', 'tbr', 'ext', 'format_id'))
self._sort_formats(formats)
subtitles = {}
for subtitle in (try_get(video, lambda x: x['subtitles']['urls'], list) or []):

View file

@ -571,7 +571,7 @@ def _real_extract(self, url):
'ext': 'flv',
})
formats.append(format_info)
self._sort_formats(formats, ('preference', 'language_preference', 'height', 'width', 'tbr', 'fps'))
self._sort_formats(formats)
metadata = self._call_rpc_api(
'VideoPlayer_GetMediaMetadata', video_id,

View file

@ -185,7 +185,7 @@ def get_flash_urls(media_url, format_id):
f['height'] = int_or_none(format_id[:-1])
formats.append(f)
self._sort_formats(formats, ('height', 'quality', 'format_id'))
self._sort_formats(formats, ('res', 'quality'))
publish_time = parse_iso8601(self._html_search_regex(
r'发布时间&nbsp;([^<>]+) ', page, 'publish time', default=None),

View file

@ -124,7 +124,10 @@ def _real_extract(self, url):
streaming_url, video_slug, 'mp4',
'm3u8_native', m3u8_id='hls', fatal=False))
self._sort_formats(formats, ('width', 'height', 'source_preference', 'tbr', 'abr'))
# It seems like this would be correctly handled by default
# However, unless someone can confirm this, the old
# behaviour is being kept as-is
self._sort_formats(formats, ('res', 'source_preference'))
return {
'id': self._get_video_id(video_data, course_slug, video_slug),

View file

@ -67,7 +67,7 @@ def _real_extract(self, url):
'vcodec': 'none' if format_id.startswith('Audio') else None,
})
self._sort_formats(formats, ('width', 'height', 'filesize', 'tbr'))
self._sort_formats(formats)
return {
'id': episode,

View file

@ -72,7 +72,7 @@ def get_file_size(file_size):
'tbr': int_or_none(video.get('bitrate'), 1000) or None,
'ext': ext,
})
self._sort_formats(formats, ('height', 'width', 'filesize', 'tbr', 'fps', 'format_id'))
self._sort_formats(formats)
thumbnails = []
for image in video_data.get('images', []):

View file

@ -54,8 +54,7 @@ def _extract_video(self, data, extract_formats=True):
'height': int_or_none(format_dict.get('height')),
'duration': duration,
})
self._sort_formats(
formats, field_preference=('height', 'width', 'tbr', 'format_id'))
self._sort_formats(formats)
description = data.get('description') or data.get('description_html') or data.get('seo_description')
timestamp = unified_timestamp(data.get('created_at'))

View file

@ -40,7 +40,7 @@ def _real_extract(self, url):
'https://v.redd.it/%s/DASHPlaylist.mpd' % video_id, video_id,
mpd_id='dash', fatal=False))
self._sort_formats(formats, ('height', 'width'))
self._sort_formats(formats)
return {
'id': video_id,

View file

@ -80,7 +80,9 @@ def _real_extract(self, url):
'format_id': '%s-%d' % (determine_protocol(f), tbr),
'tbr': tbr,
})
self._sort_formats(info_dict['formats'], ('tbr', 'height', 'width', 'format_id'))
# 'tbr' was explicitly set to be prefered over 'height' originally,
# So this is being kept unless someone can confirm this is unnecessary
self._sort_formats(info_dict['formats'], ('tbr', 'res'))
thumbnails = []
if video.get('thumbnailUrl'):

View file

@ -129,7 +129,7 @@ def extract_format(format_id, format_url):
format_url = format_url[0]
extract_format(format_id, format_url)
self._sort_formats(formats, field_preference=('preference', 'height', 'width', 'fps', 'tbr', 'format_id'))
self._sort_formats(formats)
info = self._search_json_ld(webpage, video_id, default={})

View file

@ -108,7 +108,7 @@ def _real_extract(self, url):
formats.extend(self._extract_m3u8_formats(
m3u8_url, video_id, 'mp4', entry_protocol='m3u8_native',
m3u8_id='hls', fatal=False))
self._sort_formats(formats, ('height', 'tbr', 'width', 'format_id'))
self._sort_formats(formats)
view_count = str_to_int(video.get('viewed'))

View file

@ -138,7 +138,10 @@ def _real_extract(self, url):
f['preference'] = -40
elif f.get('vcodec') == 'none':
f['preference'] = -50
self._sort_formats(formats, ('preference', 'width', 'height', 'source_preference', 'tbr', 'vbr', 'abr', 'ext', 'format_id'))
# It seems like this would be correctly handled by default
# However, unless someone can confirm this, the old
# behaviour is being kept as-is
self._sort_formats(formats, ('res', 'source_preference'))
subtitles = {}
for subtitle in (config.get('subtitles') or []):

View file

@ -405,7 +405,7 @@ def extract_subtitles(track_list):
if f.get('url'):
formats.append(f)
self._sort_formats(formats, field_preference=('height', 'width', 'tbr', 'format_id'))
self._sort_formats(formats)
return {
'id': video_id,

View file

@ -91,7 +91,7 @@ def add_m3u8_format(format_id):
if not formats:
for format_id in (867, 836, 940):
add_m3u8_format(format_id)
self._sort_formats(formats, ('width', 'height', 'filesize', 'tbr'))
self._sort_formats(formats)
return {
'id': video_id,

View file

@ -134,7 +134,7 @@ def _real_extract(self, url):
if hls_url:
formats.extend(self._extract_m3u8_formats(
hls_url, film_id, 'mp4', 'm3u8_native', m3u8_id='hls', fatal=False))
self._sort_formats(formats, ('height', 'tbr', 'format_id'))
self._sort_formats(formats)
info = {
'id': film_id,

View file

@ -116,7 +116,8 @@ def _set_vimeo_cookie(self, name, value):
def _vimeo_sort_formats(self, formats):
# Bitrates are completely broken. Single m3u8 may contain entries in kbps and bps
# at the same time without actual units specified. This lead to wrong sorting.
self._sort_formats(formats, field_preference=('preference', 'height', 'width', 'fps', 'tbr', 'format_id'))
# But since yt-dlp prefers 'res,fps' anyway, 'field_preference' is not needed
self._sort_formats(formats)
def _parse_config(self, config, video_id):
video_data = config['video']

View file

@ -231,7 +231,7 @@ def get_height(s):
'Referer': standard_url,
},
})
self._sort_formats(formats, field_preference=('height', 'width', 'tbr', 'format_id'))
self._sort_formats(formats)
categories_list = video.get('categories')
if isinstance(categories_list, list):