diff options
| author | Sergey M. <dstftw@gmail.com> | 2015-04-30 19:57:02 +0500 | 
|---|---|---|
| committer | Sergey M. <dstftw@gmail.com> | 2015-04-30 19:57:02 +0500 | 
| commit | 4d72df403115458fee2fe29217000580fac029d7 (patch) | |
| tree | 077fcf444807b3d7d866694596e982edd8970b7e | |
| parent | f7f1df1d82d556c0726898b9de2f7f3824c1be5a (diff) | |
| parent | 8dd5418803a25de89d08cdb9d32f80f71c5d6c47 (diff) | |
Merge pull request #5556 from jaimeMF/best-format-nodash
Make 'best' format only match non-DASH formats (closes #5554)
| -rw-r--r-- | test/test_YoutubeDL.py | 4 | ||||
| -rwxr-xr-x | youtube_dl/YoutubeDL.py | 9 | 
2 files changed, 10 insertions, 3 deletions
| 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 | 
