Browse Source

YoutubeDL: format spec: don't accept a bare '/' (#6124)

Jaime Marquínez Ferrándiz 10 years ago
parent
commit
d96d604e53
2 changed files with 3 additions and 0 deletions
  1. 1 0
      test/test_YoutubeDL.py
  2. 2 0
      youtube_dl/YoutubeDL.py

+ 1 - 0
test/test_YoutubeDL.py

@@ -311,6 +311,7 @@ class TestFormatSelection(unittest.TestCase):
         assert_syntax_error('bestvideo,,best')
         assert_syntax_error('bestvideo,,best')
         assert_syntax_error('+bestaudio')
         assert_syntax_error('+bestaudio')
         assert_syntax_error('bestvideo+')
         assert_syntax_error('bestvideo+')
+        assert_syntax_error('/')
 
 
     def test_format_filtering(self):
     def test_format_filtering(self):
         formats = [
         formats = [

+ 2 - 0
youtube_dl/YoutubeDL.py

@@ -960,6 +960,8 @@ class YoutubeDL(object):
                         selectors.append(current_selector)
                         selectors.append(current_selector)
                         current_selector = None
                         current_selector = None
                     elif string == '/':
                     elif string == '/':
+                        if not current_selector:
+                            raise syntax_error('"/" must follow a format selector', start)
                         first_choice = current_selector
                         first_choice = current_selector
                         second_choice = _parse_format_selection(tokens, inside_choice=True)
                         second_choice = _parse_format_selection(tokens, inside_choice=True)
                         current_selector = FormatSelector(PICKFIRST, (first_choice, second_choice), [])
                         current_selector = FormatSelector(PICKFIRST, (first_choice, second_choice), [])