mirror of
				https://github.com/ytdl-org/youtube-dl.git
				synced 2025-10-29 09:26:20 -07:00 
			
		
		
		
	[YoutubeDL] format spec: fix handling of '/' with ','
When using 'bestvideo/best,bestaudio', 'bestvideo/best' must be set as the current_selector (instead of appending it to the selectors), otherwise when it gets the ',' it would append 'None' to the selectors.
This commit is contained in:
		| @@ -253,6 +253,14 @@ class TestFormatSelection(unittest.TestCase): | ||||
|         downloaded = ydl.downloaded_info_dicts[0] | ||||
|         self.assertEqual(downloaded['format_id'], '38') | ||||
|  | ||||
|         info_dict = _make_result(list(formats_order), extractor='youtube') | ||||
|         ydl = YDL({'format': 'bestvideo/best,bestaudio'}) | ||||
|         yie = YoutubeIE(ydl) | ||||
|         yie._sort_formats(info_dict['formats']) | ||||
|         ydl.process_ie_result(info_dict) | ||||
|         downloaded_ids = [info['format_id'] for info in ydl.downloaded_info_dicts] | ||||
|         self.assertEqual(downloaded_ids, ['137', '141']) | ||||
|  | ||||
|         info_dict = _make_result(list(formats_order), extractor='youtube') | ||||
|         ydl = YDL({'format': '(bestvideo[ext=mp4],bestvideo[ext=webm])+bestaudio'}) | ||||
|         yie = YoutubeIE(ydl) | ||||
|   | ||||
| @@ -958,8 +958,7 @@ class YoutubeDL(object): | ||||
|                     elif string == '/': | ||||
|                         first_choice = current_selector | ||||
|                         second_choice = _parse_format_selection(tokens, inside_choice=True) | ||||
|                         current_selector = None | ||||
|                         selectors.append(FormatSelector(PICKFIRST, (first_choice, second_choice), [])) | ||||
|                         current_selector = FormatSelector(PICKFIRST, (first_choice, second_choice), []) | ||||
|                     elif string == '[': | ||||
|                         if not current_selector: | ||||
|                             current_selector = FormatSelector(SINGLE, 'best', []) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user