mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[escapist] Add support for advertisements
This commit is contained in:
		| @@ -52,6 +52,7 @@ class EscapistIE(InfoExtractor): | ||||
|             webpage, 'config URL')) | ||||
|  | ||||
|         formats = [] | ||||
|         ad_formats = [] | ||||
|  | ||||
|         def _add_format(name, cfgurl, quality): | ||||
|             config = self._download_json( | ||||
| @@ -61,14 +62,19 @@ class EscapistIE(InfoExtractor): | ||||
|                 transform_source=js_to_json) | ||||
|  | ||||
|             playlist = config['playlist'] | ||||
|             video_url = next( | ||||
|                 p['url'] for p in playlist | ||||
|                 if p.get('eventCategory') == 'Video') | ||||
|             formats.append({ | ||||
|                 'url': video_url, | ||||
|                 'format_id': name, | ||||
|                 'quality': quality, | ||||
|             }) | ||||
|             for p in playlist: | ||||
|                 if p.get('eventCategory') == 'Video': | ||||
|                     ar = formats | ||||
|                 elif p.get('eventCategory') == 'Video Postroll': | ||||
|                     ar = ad_formats | ||||
|                 else: | ||||
|                     continue | ||||
|  | ||||
|                 ar.append({ | ||||
|                     'url': p['url'], | ||||
|                     'format_id': name, | ||||
|                     'quality': quality, | ||||
|                 }) | ||||
|  | ||||
|         _add_format('normal', config_url, quality=0) | ||||
|         hq_url = (config_url + | ||||
| @@ -77,10 +83,9 @@ class EscapistIE(InfoExtractor): | ||||
|             _add_format('hq', hq_url, quality=1) | ||||
|         except ExtractorError: | ||||
|             pass  # That's fine, we'll just use normal quality | ||||
|  | ||||
|         self._sort_formats(formats) | ||||
|  | ||||
|         return { | ||||
|         res = { | ||||
|             'id': video_id, | ||||
|             'formats': formats, | ||||
|             'uploader': uploader, | ||||
| @@ -89,3 +94,19 @@ class EscapistIE(InfoExtractor): | ||||
|             'thumbnail': self._og_search_thumbnail(webpage), | ||||
|             'description': description, | ||||
|         } | ||||
|  | ||||
|         if self._downloader.params.get('include_ads') and ad_formats: | ||||
|             self._sort_formats(ad_formats) | ||||
|             ad_res = { | ||||
|                 'id': '%s-ad' % video_id, | ||||
|                 'title': '%s (Postroll)' % title, | ||||
|                 'formats': ad_formats, | ||||
|             } | ||||
|             return { | ||||
|                 '_type': 'playlist', | ||||
|                 'entries': [res, ad_res], | ||||
|                 'title': title, | ||||
|                 'id': video_id, | ||||
|             } | ||||
|  | ||||
|         return res | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister