[youtube] Fix sorting of 3gp format

This commit is contained in:
pukkandan 2021-07-08 21:41:08 +05:30
parent 4bb6b02f93
commit 60bdb7bd9e
No known key found for this signature in database
GPG key ID: 0F00D95A001F4698

View file

@ -2404,6 +2404,8 @@ def feed_entry(name):
formats, itags, stream_ids = [], [], [] formats, itags, stream_ids = [], [], []
itag_qualities = {} itag_qualities = {}
q = qualities([ q = qualities([
# "tiny" is the smallest video-only format. But some audio-only formats
# was also labeled "tiny". It is not clear if such formats still exist
'tiny', 'audio_quality_low', 'audio_quality_medium', 'audio_quality_high', # Audio only formats 'tiny', 'audio_quality_low', 'audio_quality_medium', 'audio_quality_high', # Audio only formats
'small', 'medium', 'large', 'hd720', 'hd1080', 'hd1440', 'hd2160', 'hd2880', 'highres' 'small', 'medium', 'large', 'hd720', 'hd1080', 'hd1440', 'hd2160', 'hd2880', 'highres'
]) ])
@ -2467,13 +2469,15 @@ def feed_entry(name):
'width': fmt.get('width'), 'width': fmt.get('width'),
'language': audio_track.get('id', '').split('.')[0], 'language': audio_track.get('id', '').split('.')[0],
} }
mimetype = fmt.get('mimeType') mime_mobj = re.match(
if mimetype: r'((?:[^/]+)/(?:[^;]+))(?:;\s*codecs="([^"]+)")?', fmt.get('mimeType') or '')
mobj = re.match( if mime_mobj:
r'((?:[^/]+)/(?:[^;]+))(?:;\s*codecs="([^"]+)")?', mimetype) dct['ext'] = mimetype2ext(mime_mobj.group(1))
if mobj: dct.update(parse_codecs(mime_mobj.group(2)))
dct['ext'] = mimetype2ext(mobj.group(1)) # The 3gp format in android client has a quality of "small",
dct.update(parse_codecs(mobj.group(2))) # but is actually worse than all other formats
if dct['ext'] == '3gp':
dct['quality'] = q('tiny')
no_audio = dct.get('acodec') == 'none' no_audio = dct.get('acodec') == 'none'
no_video = dct.get('vcodec') == 'none' no_video = dct.get('vcodec') == 'none'
if no_audio: if no_audio: