Create extract_info method
This commit is contained in:
		
							parent
							
								
									691db5ba02
								
							
						
					
					
						commit
						df8db1aa21
					
				| @ -378,6 +378,44 @@ class FileDownloader(object): | |||||||
|                 return u'"' + title + '" title matched reject pattern "' + rejecttitle + '"' |                 return u'"' + title + '" title matched reject pattern "' + rejecttitle + '"' | ||||||
|         return None |         return None | ||||||
|          |          | ||||||
|  |     def extract_info(self, url): | ||||||
|  |         ''' | ||||||
|  |         Returns a list with a dictionary for each video we find. | ||||||
|  |          ''' | ||||||
|  |         suitable_found = False | ||||||
|  |         for ie in self._ies: | ||||||
|  |             # Go to next InfoExtractor if not suitable | ||||||
|  |             if not ie.suitable(url): | ||||||
|  |                 continue | ||||||
|  | 
 | ||||||
|  |             # Warn if the _WORKING attribute is False | ||||||
|  |             if not ie.working(): | ||||||
|  |                 self.to_stderr(u'WARNING: the program functionality for this site has been marked as broken, ' | ||||||
|  |                                u'and will probably not work. If you want to go on, use the -i option.') | ||||||
|  | 
 | ||||||
|  |             # Suitable InfoExtractor found | ||||||
|  |             suitable_found = True | ||||||
|  | 
 | ||||||
|  |             # Extract information from URL and process it | ||||||
|  |             try: | ||||||
|  |                 videos = ie.extract(url) | ||||||
|  |                 for video in videos or []: | ||||||
|  |                     if not 'extractor' in video: | ||||||
|  |                         #The extractor has already been set somewher else | ||||||
|  |                         video['extractor'] = ie.IE_NAME | ||||||
|  |                 return videos | ||||||
|  |             except ExtractorError as de: # An error we somewhat expected | ||||||
|  |                 self.trouble(u'ERROR: ' + compat_str(de), de.format_traceback()) | ||||||
|  |                 break | ||||||
|  |             except Exception as e: | ||||||
|  |                 if self.params.get('ignoreerrors', False): | ||||||
|  |                     self.trouble(u'ERROR: ' + compat_str(e), tb=compat_str(traceback.format_exc())) | ||||||
|  |                     break | ||||||
|  |                 else: | ||||||
|  |                     raise | ||||||
|  |         if not suitable_found: | ||||||
|  |                 self.trouble(u'ERROR: no suitable InfoExtractor: %s' % url) | ||||||
|  | 
 | ||||||
|     def process_info(self, info_dict): |     def process_info(self, info_dict): | ||||||
|         """Process a single dictionary returned by an InfoExtractor.""" |         """Process a single dictionary returned by an InfoExtractor.""" | ||||||
| 
 | 
 | ||||||
| @ -488,49 +526,14 @@ class FileDownloader(object): | |||||||
|             raise SameFileError(self.params['outtmpl']) |             raise SameFileError(self.params['outtmpl']) | ||||||
| 
 | 
 | ||||||
|         for url in url_list: |         for url in url_list: | ||||||
|             suitable_found = False |             videos = self.extract_info(url) | ||||||
|             for ie in self._ies: |  | ||||||
|                 # Go to next InfoExtractor if not suitable |  | ||||||
|                 if not ie.suitable(url): |  | ||||||
|                     continue |  | ||||||
| 
 | 
 | ||||||
|                 # Warn if the _WORKING attribute is False |             for video in videos or []: | ||||||
|                 if not ie.working(): |  | ||||||
|                     self.to_stderr(u'WARNING: the program functionality for this site has been marked as broken, ' |  | ||||||
|                                    u'and will probably not work. If you want to go on, use the -i option.') |  | ||||||
| 
 |  | ||||||
|                 # Suitable InfoExtractor found |  | ||||||
|                 suitable_found = True |  | ||||||
| 
 |  | ||||||
|                 # Extract information from URL and process it |  | ||||||
|                 try: |                 try: | ||||||
|                     videos = ie.extract(url) |                     self.increment_downloads() | ||||||
|                 except ExtractorError as de: # An error we somewhat expected |                     self.process_info(video) | ||||||
|                     self.trouble(u'ERROR: ' + compat_str(de), de.format_traceback()) |                 except UnavailableVideoError: | ||||||
|                     break |                     self.trouble(u'\nERROR: unable to download video') | ||||||
|                 except Exception as e: |  | ||||||
|                     if self.params.get('ignoreerrors', False): |  | ||||||
|                         self.trouble(u'ERROR: ' + compat_str(e), tb=compat_str(traceback.format_exc())) |  | ||||||
|                         break |  | ||||||
|                     else: |  | ||||||
|                         raise |  | ||||||
| 
 |  | ||||||
|                 if len(videos or []) > 1 and self.fixed_template(): |  | ||||||
|                     raise SameFileError(self.params['outtmpl']) |  | ||||||
| 
 |  | ||||||
|                 for video in videos or []: |  | ||||||
|                     video['extractor'] = ie.IE_NAME |  | ||||||
|                     try: |  | ||||||
|                         self.increment_downloads() |  | ||||||
|                         self.process_info(video) |  | ||||||
|                     except UnavailableVideoError: |  | ||||||
|                         self.trouble(u'\nERROR: unable to download video') |  | ||||||
| 
 |  | ||||||
|                 # Suitable InfoExtractor had been found; go to next URL |  | ||||||
|                 break |  | ||||||
| 
 |  | ||||||
|             if not suitable_found: |  | ||||||
|                 self.trouble(u'ERROR: no suitable InfoExtractor: %s' % url) |  | ||||||
| 
 | 
 | ||||||
|         return self._download_retcode |         return self._download_retcode | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user