mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[ie/wrestleuniverse] Avoid partial stream formats (#9800)
Authored by: bashonly
This commit is contained in:
		| @@ -12,6 +12,7 @@ from ..utils import ( | ||||
|     jwt_decode_hs256, | ||||
|     traverse_obj, | ||||
|     try_call, | ||||
|     url_basename, | ||||
|     url_or_none, | ||||
|     urlencode_postdata, | ||||
|     variadic, | ||||
| @@ -194,8 +195,7 @@ class WrestleUniverseVODIE(WrestleUniverseBaseIE): | ||||
| 
 | ||||
|         return { | ||||
|             'id': video_id, | ||||
|             'formats': self._get_formats(video_data, ( | ||||
|                 (('protocolHls', 'url'), ('chromecastUrls', ...)), {url_or_none}), video_id), | ||||
|             'formats': self._get_formats(video_data, ('protocolHls', 'url', {url_or_none}), video_id), | ||||
|             **traverse_obj(metadata, { | ||||
|                 'title': ('displayName', {str}), | ||||
|                 'description': ('description', {str}), | ||||
| @@ -259,6 +259,10 @@ class WrestleUniversePPVIE(WrestleUniverseBaseIE): | ||||
|         'params': { | ||||
|             'skip_download': 'm3u8', | ||||
|         }, | ||||
|     }, { | ||||
|         'note': 'manifest provides live-a (partial) and live-b (full) streams', | ||||
|         'url': 'https://www.wrestle-universe.com/en/lives/umc99R9XsexXrxr9VjTo9g', | ||||
|         'only_matching': True, | ||||
|     }] | ||||
| 
 | ||||
|     _API_PATH = 'events' | ||||
| @@ -285,12 +289,16 @@ class WrestleUniversePPVIE(WrestleUniverseBaseIE): | ||||
| 
 | ||||
|         video_data, decrypt = self._call_encrypted_api( | ||||
|             video_id, ':watchArchive', 'watch archive', data={'method': 1}) | ||||
|         info['formats'] = self._get_formats(video_data, ( | ||||
|             ('hls', None), ('urls', 'chromecastUrls'), ..., {url_or_none}), video_id) | ||||
|         # 'chromecastUrls' can be only partial videos, avoid | ||||
|         info['formats'] = self._get_formats(video_data, ('hls', (('urls', ...), 'url'), {url_or_none}), video_id) | ||||
|         for f in info['formats']: | ||||
|             # bitrates are exaggerated in PPV playlists, so avoid wrong/huge filesize_approx values | ||||
|             if f.get('tbr'): | ||||
|                 f['tbr'] = int(f['tbr'] / 2.5) | ||||
|             # prefer variants with the same basename as the master playlist to avoid partial streams | ||||
|             f['format_id'] = url_basename(f['url']).partition('.')[0] | ||||
|             if not f['format_id'].startswith(url_basename(f['manifest_url']).partition('.')[0]): | ||||
|                 f['preference'] = -10 | ||||
| 
 | ||||
|         hls_aes_key = traverse_obj(video_data, ('hls', 'key', {decrypt})) | ||||
|         if hls_aes_key: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 bashonly
					bashonly