mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2024-11-10 01:02:13 +01:00
[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:
parent
9ba5705ac0
commit
54f37eeabd
20 changed files with 29 additions and 23 deletions
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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={})
|
||||
|
||||
|
|
|
@ -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 []):
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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'发布时间 ([^<>]+) ', page, 'publish time', default=None),
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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', []):
|
||||
|
|
|
@ -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'))
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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'):
|
||||
|
|
|
@ -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={})
|
||||
|
||||
|
|
|
@ -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'))
|
||||
|
||||
|
|
|
@ -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 []):
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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']
|
||||
|
|
|
@ -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):
|
||||
|
|
Loading…
Reference in a new issue