From: Sergey M․ Date: Wed, 13 Jan 2021 17:37:51 +0000 (+0700) Subject: [YoutubeDL] Raise syntax error for format selection expressions with multiple + opera... X-Git-Url: http://git.oshgnacknak.de/?a=commitdiff_plain;h=d81a213cfb66f6e3175980d763318bd81e31be02;p=youtube-dl [YoutubeDL] Raise syntax error for format selection expressions with multiple + operators (closes #27803) --- diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index 62f916d11..4d62ba145 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -464,6 +464,7 @@ class TestFormatSelection(unittest.TestCase): assert_syntax_error('+bestaudio') assert_syntax_error('bestvideo+') assert_syntax_error('/') + assert_syntax_error('bestvideo+bestvideo+bestaudio') def test_format_filtering(self): formats = [ diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index aaac149e9..3f1f03379 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1226,6 +1226,8 @@ class YoutubeDL(object): group = _parse_format_selection(tokens, inside_group=True) current_selector = FormatSelector(GROUP, group, []) elif string == '+': + if inside_merge: + raise syntax_error('Unexpected "+"', start) video_selector = current_selector audio_selector = _parse_format_selection(tokens, inside_merge=True) if not video_selector or not audio_selector: