|
@ -627,15 +627,14 @@ class YoutubeDL(object): |
|
|
info_dict.setdefault(key, value) |
|
|
info_dict.setdefault(key, value) |
|
|
|
|
|
|
|
|
def extract_info(self, url, download=True, ie_key=None, extra_info={}, |
|
|
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. |
|
|
Returns a list with a dictionary for each video we find. |
|
|
If 'download', also downloads the videos. |
|
|
If 'download', also downloads the videos. |
|
|
extra_info is a dict containing the extra values to add to each result |
|
|
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' |
|
|
ie_key = 'Generic' |
|
|
|
|
|
|
|
|
if ie_key: |
|
|
if ie_key: |
|
@ -663,7 +662,7 @@ class YoutubeDL(object): |
|
|
} |
|
|
} |
|
|
self.add_default_extra_info(ie_result, ie, url) |
|
|
self.add_default_extra_info(ie_result, ie, url) |
|
|
if process: |
|
|
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: |
|
|
else: |
|
|
return ie_result |
|
|
return ie_result |
|
|
except ExtractorError as de: # An error we somewhat expected |
|
|
except ExtractorError as de: # An error we somewhat expected |
|
@ -688,7 +687,7 @@ class YoutubeDL(object): |
|
|
'extractor_key': ie.ie_key(), |
|
|
'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 |
|
|
Take the result of the ie(may be modified) and resolve all unresolved |
|
|
references (URLs, playlist items). |
|
|
references (URLs, playlist items). |
|
@ -716,7 +715,8 @@ class YoutubeDL(object): |
|
|
return self.extract_info(ie_result['url'], |
|
|
return self.extract_info(ie_result['url'], |
|
|
download, |
|
|
download, |
|
|
ie_key=ie_result.get('ie_key'), |
|
|
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': |
|
|
elif result_type == 'url_transparent': |
|
|
# Use the information from the embedding page |
|
|
# Use the information from the embedding page |
|
|
info = self.extract_info( |
|
|
info = self.extract_info( |
|
@ -1503,9 +1503,9 @@ class YoutubeDL(object): |
|
|
|
|
|
|
|
|
for url in url_list: |
|
|
for url in url_list: |
|
|
try: |
|
|
try: |
|
|
self._force_generic_extractor_required = self.params.get('force_generic_extractor', False) |
|
|
|
|
|
# It also downloads the videos |
|
|
# 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: |
|
|
except UnavailableVideoError: |
|
|
self.report_error('unable to download video') |
|
|
self.report_error('unable to download video') |
|
|
except MaxDownloadsReached: |
|
|
except MaxDownloadsReached: |
|
|