Merge pull request #10818 from TRox1972/criterion_match_id
[youtube-dl] / youtube_dl / downloader / __init__.py
index 0b65aa3e2ffa261e7bedd082661c21f1aedc0c07..817591d97e88606b966b7055026f691faab840dc 100644 (file)
@@ -32,8 +32,8 @@ def get_suitable_downloader(info_dict, params={}):
     protocol = determine_protocol(info_dict)
     info_dict['protocol'] = protocol
 
-    if (info_dict.get('start_time') or info_dict.get('end_time')) and FFmpegFD.can_download(info_dict):
-        return FFmpegFD
+    # 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
 
     external_downloader = params.get('external_downloader')
     if external_downloader is not None:
@@ -41,9 +41,12 @@ def get_suitable_downloader(info_dict, params={}):
         if ed.can_download(info_dict):
             return ed
 
-    if protocol == 'm3u8' and params.get('hls_prefer_native'):
+    if protocol == 'm3u8' and params.get('hls_prefer_native') is True:
         return HlsFD
 
+    if protocol == 'm3u8_native' and params.get('hls_prefer_native') is False:
+        return FFmpegFD
+
     return PROTOCOL_MAP.get(protocol, HttpFD)