From 61aa5ba36eea3b7cf8c3570ab33604dd2c13b855 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergey=20M=E2=80=A4?= Date: Sat, 13 Jun 2015 02:05:21 +0600 Subject: [PATCH] [YoutubeDL] Remove global state for force_generic_extractor flag in favor of passing argument --- youtube_dl/YoutubeDL.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 8dbad7cf86..dd2d8cb3cf 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -627,15 +627,14 @@ def add_extra_info(info_dict, extra_info): 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 @@ def extract_info(self, url, download=True, ie_key=None, extra_info={}, } 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 @@ def add_default_extra_info(self, ie_result, ie, url): '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 @@ def process_ie_result(self, ie_result, download=True, extra_info={}): 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 @@ def download(self, url_list): 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: