[adultswim] Prefer stream (Closes #7015)
This commit is contained in:
		
							parent
							
								
									c254f75bbb
								
							
						
					
					
						commit
						8a64969404
					
				
					 1 changed files with 26 additions and 11 deletions
				
			
		|  | @ -5,6 +5,7 @@ import re | |||
| 
 | ||||
| from .common import InfoExtractor | ||||
| from ..utils import ( | ||||
|     determine_ext, | ||||
|     ExtractorError, | ||||
|     float_or_none, | ||||
|     xpath_text, | ||||
|  | @ -123,7 +124,6 @@ class AdultSwimIE(InfoExtractor): | |||
|         else: | ||||
|             collections = bootstrapped_data['show']['collections'] | ||||
|             collection, video_info = self.find_collection_containing_video(collections, episode_path) | ||||
| 
 | ||||
|             # Video wasn't found in the collections, let's try `slugged_video`. | ||||
|             if video_info is None: | ||||
|                 if bootstrapped_data.get('slugged_video', {}).get('slug') == episode_path: | ||||
|  | @ -133,7 +133,9 @@ class AdultSwimIE(InfoExtractor): | |||
| 
 | ||||
|             show = bootstrapped_data['show'] | ||||
|             show_title = show['title'] | ||||
|             segment_ids = [clip['videoPlaybackID'] for clip in video_info['clips']] | ||||
|             stream = video_info.get('stream') | ||||
|             clips = [stream] if stream else video_info['clips'] | ||||
|             segment_ids = [clip['videoPlaybackID'] for clip in clips] | ||||
| 
 | ||||
|         episode_id = video_info['id'] | ||||
|         episode_title = video_info['title'] | ||||
|  | @ -142,7 +144,7 @@ class AdultSwimIE(InfoExtractor): | |||
| 
 | ||||
|         entries = [] | ||||
|         for part_num, segment_id in enumerate(segment_ids): | ||||
|             segment_url = 'http://www.adultswim.com/videos/api/v0/assets?id=%s&platform=mobile' % segment_id | ||||
|             segment_url = 'http://www.adultswim.com/videos/api/v0/assets?id=%s&platform=desktop' % segment_id | ||||
| 
 | ||||
|             segment_title = '%s - %s' % (show_title, episode_title) | ||||
|             if len(segment_ids) > 1: | ||||
|  | @ -158,17 +160,30 @@ class AdultSwimIE(InfoExtractor): | |||
|             formats = [] | ||||
|             file_els = idoc.findall('.//files/file') or idoc.findall('./files/file') | ||||
| 
 | ||||
|             unique_urls = [] | ||||
|             unique_file_els = [] | ||||
|             for file_el in file_els: | ||||
|                 media_url = file_el.text | ||||
|                 if not media_url or determine_ext(media_url) == 'f4m': | ||||
|                     continue | ||||
|                 if file_el.text not in unique_urls: | ||||
|                     unique_urls.append(file_el.text) | ||||
|                     unique_file_els.append(file_el) | ||||
| 
 | ||||
|             for file_el in unique_file_els: | ||||
|                 bitrate = file_el.attrib.get('bitrate') | ||||
|                 ftype = file_el.attrib.get('type') | ||||
| 
 | ||||
|                 formats.append({ | ||||
|                     'format_id': '%s_%s' % (bitrate, ftype), | ||||
|                     'url': file_el.text.strip(), | ||||
|                     # The bitrate may not be a number (for example: 'iphone') | ||||
|                     'tbr': int(bitrate) if bitrate.isdigit() else None, | ||||
|                     'quality': 1 if ftype == 'hd' else -1 | ||||
|                 }) | ||||
|                 media_url = file_el.text | ||||
|                 if determine_ext(media_url) == 'm3u8': | ||||
|                     formats.extend(self._extract_m3u8_formats( | ||||
|                         media_url, segment_title, 'mp4', 'm3u8_native', preference=0, m3u8_id='hls')) | ||||
|                 else: | ||||
|                     formats.append({ | ||||
|                         'format_id': '%s_%s' % (bitrate, ftype), | ||||
|                         'url': file_el.text.strip(), | ||||
|                         # The bitrate may not be a number (for example: 'iphone') | ||||
|                         'tbr': int(bitrate) if bitrate.isdigit() else None, | ||||
|                     }) | ||||
| 
 | ||||
|             self._sort_formats(formats) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Sergey M․
						Sergey M․