Merge pull request #5556 from jaimeMF/best-format-nodash

Make 'best' format only match non-DASH formats (closes #5554)
pull/5575/head
Sergey M. 10 years ago
commit 4d72df4031

@ -237,7 +237,7 @@ class TestFormatSelection(unittest.TestCase):
f2['url'] = 'url:' + f2id f2['url'] = 'url:' + f2id
info_dict = _make_result([f1, f2], extractor='youtube') info_dict = _make_result([f1, f2], extractor='youtube')
ydl = YDL() ydl = YDL({'format': 'best/bestvideo'})
yie = YoutubeIE(ydl) yie = YoutubeIE(ydl)
yie._sort_formats(info_dict['formats']) yie._sort_formats(info_dict['formats'])
ydl.process_ie_result(info_dict) ydl.process_ie_result(info_dict)
@ -245,7 +245,7 @@ class TestFormatSelection(unittest.TestCase):
self.assertEqual(downloaded['format_id'], f1id) self.assertEqual(downloaded['format_id'], f1id)
info_dict = _make_result([f2, f1], extractor='youtube') info_dict = _make_result([f2, f1], extractor='youtube')
ydl = YDL() ydl = YDL({'format': 'best/bestvideo'})
yie = YoutubeIE(ydl) yie = YoutubeIE(ydl)
yie._sort_formats(info_dict['formats']) yie._sort_formats(info_dict['formats'])
ydl.process_ie_result(info_dict) ydl.process_ie_result(info_dict)

@ -915,7 +915,14 @@ class YoutubeDL(object):
return None return None
if format_spec == 'best' or format_spec is None: if format_spec == 'best' or format_spec is None:
return available_formats[-1] audiovideo_formats = [
f for f in available_formats
if f.get('vcodec') != 'none' and f.get('acodec') != 'none']
if audiovideo_formats:
return audiovideo_formats[-1]
# for audio only urls, 'best' selects the best audio format
elif all(f.get('acodec') != 'none' for f in available_formats):
return available_formats[-1]
elif format_spec == 'worst': elif format_spec == 'worst':
audiovideo_formats = [ audiovideo_formats = [
f for f in available_formats f for f in available_formats

Loading…
Cancel
Save