Add --hls-prefer-ffmpeg
authorSergey M․ <dstftw@gmail.com>
Thu, 21 Apr 2016 17:02:17 +0000 (23:02 +0600)
committerSergey M․ <dstftw@gmail.com>
Thu, 21 Apr 2016 17:02:17 +0000 (23:02 +0600)
youtube_dl/YoutubeDL.py
youtube_dl/downloader/__init__.py
youtube_dl/options.py

index a89a71a250e3c02cb1157bfc0970e308474e4e89..0554333629b829a2a6cb807546a643713cbd0ad5 100755 (executable)
@@ -260,7 +260,9 @@ class YoutubeDL(object):
     The following options determine which downloader is picked:
     external_downloader: Executable of the external downloader to call.
                        None or unset for standard (built-in) downloader.
-    hls_prefer_native: Use the native HLS downloader instead of ffmpeg/avconv.
+    hls_prefer_native: Use the native HLS downloader instead of ffmpeg/avconv
+                       if True, otherwise use ffmpeg/avconv if False, otherwise
+                       use downloader suggested by extractor if None.
 
     The following parameters are not used by YoutubeDL itself, they are used by
     the downloader (see youtube_dl/downloader/common.py):
index 73b34fdae96262000b290df8031a4a1f6eb5e721..817591d97e88606b966b7055026f691faab840dc 100644 (file)
@@ -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)
 
 
index b60a723c5c5941e712480828bcda10ae9399212a..d1f8d1331cf153a58a42b4220ebe37b441f3df4b 100644 (file)
@@ -425,8 +425,12 @@ def parseOpts(overrideArguments=None):
         help='Set file xattribute ytdl.filesize with expected filesize (experimental)')
     downloader.add_option(
         '--hls-prefer-native',
-        dest='hls_prefer_native', action='store_true',
+        dest='hls_prefer_native', action='store_true', default=None,
         help='Use the native HLS downloader instead of ffmpeg')
+    downloader.add_option(
+        '--hls-prefer-ffmpeg',
+        dest='hls_prefer_native', action='store_false', default=None,
+        help='Use ffmpeg instead of the native HLS downloader')
     downloader.add_option(
         '--hls-use-mpegts',
         dest='hls_use_mpegts', action='store_true',