From: Sergey M. Date: Thu, 30 Apr 2015 14:57:02 +0000 (+0500) Subject: Merge pull request #5556 from jaimeMF/best-format-nodash X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=commitdiff_plain;h=4d72df403115458fee2fe29217000580fac029d7;hp=f7f1df1d82d556c0726898b9de2f7f3824c1be5a;p=youtube-dl Merge pull request #5556 from jaimeMF/best-format-nodash Make 'best' format only match non-DASH formats (closes #5554) --- diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index bb4a65ee1..82b827536 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -237,7 +237,7 @@ class TestFormatSelection(unittest.TestCase): f2['url'] = 'url:' + f2id info_dict = _make_result([f1, f2], extractor='youtube') - ydl = YDL() + ydl = YDL({'format': 'best/bestvideo'}) yie = YoutubeIE(ydl) yie._sort_formats(info_dict['formats']) ydl.process_ie_result(info_dict) @@ -245,7 +245,7 @@ class TestFormatSelection(unittest.TestCase): self.assertEqual(downloaded['format_id'], f1id) info_dict = _make_result([f2, f1], extractor='youtube') - ydl = YDL() + ydl = YDL({'format': 'best/bestvideo'}) yie = YoutubeIE(ydl) yie._sort_formats(info_dict['formats']) ydl.process_ie_result(info_dict) diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 827c88e0d..eee9c0154 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -915,7 +915,14 @@ class YoutubeDL(object): return 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': audiovideo_formats = [ f for f in available_formats