commit: d81a213cfb66f6e3175980d763318bd81e31be02
parent 7c2d18a13f7eaa4008923ad73ed8e938229db848
Author: Sergey M․ <dstftw@gmail.com>
Date: Thu, 14 Jan 2021 00:37:51 +0700
[YoutubeDL] Raise syntax error for format selection expressions with multiple + operators (closes #27803)
Diffstat:
2 files changed, 3 insertions(+), 0 deletions(-)
diff --git 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
@@ -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: