mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[YoutubeDL] Remove global state for force_generic_extractor flag in favor of passing argument
This commit is contained in:
		| @@ -627,15 +627,14 @@ class YoutubeDL(object): | ||||
|             info_dict.setdefault(key, value) | ||||
|  | ||||
|     def extract_info(self, url, download=True, ie_key=None, extra_info={}, | ||||
|                      process=True): | ||||
|                      process=True, force_generic_extractor=False): | ||||
|         ''' | ||||
|         Returns a list with a dictionary for each video we find. | ||||
|         If 'download', also downloads the videos. | ||||
|         extra_info is a dict containing the extra values to add to each result | ||||
|         ''' | ||||
|  | ||||
|         if not ie_key and self._force_generic_extractor_required: | ||||
|             self._force_generic_extractor_required = False | ||||
|         if not ie_key and force_generic_extractor: | ||||
|             ie_key = 'Generic' | ||||
|  | ||||
|         if ie_key: | ||||
| @@ -663,7 +662,7 @@ class YoutubeDL(object): | ||||
|                     } | ||||
|                 self.add_default_extra_info(ie_result, ie, url) | ||||
|                 if process: | ||||
|                     return self.process_ie_result(ie_result, download, extra_info) | ||||
|                     return self.process_ie_result(ie_result, download, extra_info, force_generic_extractor=False) | ||||
|                 else: | ||||
|                     return ie_result | ||||
|             except ExtractorError as de:  # An error we somewhat expected | ||||
| @@ -688,7 +687,7 @@ class YoutubeDL(object): | ||||
|             'extractor_key': ie.ie_key(), | ||||
|         }) | ||||
|  | ||||
|     def process_ie_result(self, ie_result, download=True, extra_info={}): | ||||
|     def process_ie_result(self, ie_result, download=True, extra_info={}, force_generic_extractor=False): | ||||
|         """ | ||||
|         Take the result of the ie(may be modified) and resolve all unresolved | ||||
|         references (URLs, playlist items). | ||||
| @@ -716,7 +715,8 @@ class YoutubeDL(object): | ||||
|             return self.extract_info(ie_result['url'], | ||||
|                                      download, | ||||
|                                      ie_key=ie_result.get('ie_key'), | ||||
|                                      extra_info=extra_info) | ||||
|                                      extra_info=extra_info, | ||||
|                                      force_generic_extractor=force_generic_extractor) | ||||
|         elif result_type == 'url_transparent': | ||||
|             # Use the information from the embedding page | ||||
|             info = self.extract_info( | ||||
| @@ -1503,9 +1503,9 @@ class YoutubeDL(object): | ||||
|  | ||||
|         for url in url_list: | ||||
|             try: | ||||
|                 self._force_generic_extractor_required = self.params.get('force_generic_extractor', False) | ||||
|                 # It also downloads the videos | ||||
|                 res = self.extract_info(url) | ||||
|                 res = self.extract_info( | ||||
|                     url, force_generic_extractor=self.params.get('force_generic_extractor', False)) | ||||
|             except UnavailableVideoError: | ||||
|                 self.report_error('unable to download video') | ||||
|             except MaxDownloadsReached: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․