mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	[downloader/ffmpeg] Improve simultaneous download and merge
This commit is contained in:
		| @@ -10,10 +10,15 @@ from ..utils import ( | ||||
| def get_suitable_downloader(info_dict, params={}, default=NO_DEFAULT, protocol=None, to_stdout=False): | ||||
|     info_dict['protocol'] = determine_protocol(info_dict) | ||||
|     info_copy = info_dict.copy() | ||||
|     if protocol: | ||||
|         info_copy['protocol'] = protocol | ||||
|     info_copy['to_stdout'] = to_stdout | ||||
|     return _get_suitable_downloader(info_copy, params, default) | ||||
|  | ||||
|     downloaders = [_get_suitable_downloader(info_copy, proto, params, default) | ||||
|                    for proto in (protocol or info_copy['protocol']).split('+')] | ||||
|     if set(downloaders) == {FFmpegFD} and FFmpegFD.can_merge_formats(info_copy, params): | ||||
|         return FFmpegFD | ||||
|     elif len(downloaders) == 1: | ||||
|         return downloaders[0] | ||||
|     return None | ||||
|  | ||||
|  | ||||
| # Some of these require get_suitable_downloader | ||||
| @@ -72,7 +77,7 @@ def shorten_protocol_name(proto, simplify=False): | ||||
|     return short_protocol_names.get(proto, proto) | ||||
|  | ||||
|  | ||||
| def _get_suitable_downloader(info_dict, params, default): | ||||
| def _get_suitable_downloader(info_dict, protocol, params, default): | ||||
|     """Get the downloader class that can handle the info dict.""" | ||||
|     if default is NO_DEFAULT: | ||||
|         default = HttpFD | ||||
| @@ -80,7 +85,7 @@ def _get_suitable_downloader(info_dict, params, default): | ||||
|     # if (info_dict.get('start_time') or info_dict.get('end_time')) and not info_dict.get('requested_formats') and FFmpegFD.can_download(info_dict): | ||||
|     #     return FFmpegFD | ||||
|  | ||||
|     protocol = info_dict['protocol'] | ||||
|     info_dict['protocol'] = protocol | ||||
|     downloaders = params.get('external_downloader') | ||||
|     external_downloader = ( | ||||
|         downloaders if isinstance(downloaders, compat_str) or downloaders is None | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 pukkandan
					pukkandan