diff options
author | Sergey M․ <dstftw@gmail.com> | 2021-01-14 00:37:51 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2021-01-14 00:38:31 +0700 |
commit | d81a213cfb66f6e3175980d763318bd81e31be02 (patch) | |
tree | 742470bab66edb711c98e53874c90243baf65049 | |
parent | 7c2d18a13f7eaa4008923ad73ed8e938229db848 (diff) |
[YoutubeDL] Raise syntax error for format selection expressions with multiple + operators (closes #27803)
-rw-r--r-- | test/test_YoutubeDL.py | 1 | ||||
-rwxr-xr-x | youtube_dl/YoutubeDL.py | 2 |
2 files changed, 3 insertions, 0 deletions
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: |