mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[downloader] Add --hls-prefer-native to use the native HLS downloader (#4966)
This commit is contained in:
		| @@ -225,7 +225,6 @@ class YoutubeDL(object): | |||||||
|     call_home:         Boolean, true iff we are allowed to contact the |     call_home:         Boolean, true iff we are allowed to contact the | ||||||
|                        youtube-dl servers for debugging. |                        youtube-dl servers for debugging. | ||||||
|     sleep_interval:    Number of seconds to sleep before each download. |     sleep_interval:    Number of seconds to sleep before each download. | ||||||
|     external_downloader:  Executable of the external downloader to call. |  | ||||||
|     listformats:       Print an overview of available video formats and exit. |     listformats:       Print an overview of available video formats and exit. | ||||||
|     list_thumbnails:   Print a table of all thumbnails and exit. |     list_thumbnails:   Print a table of all thumbnails and exit. | ||||||
|     match_filter:      A function that gets called with the info_dict of |     match_filter:      A function that gets called with the info_dict of | ||||||
| @@ -235,6 +234,10 @@ class YoutubeDL(object): | |||||||
|                        match_filter_func in utils.py is one example for this. |                        match_filter_func in utils.py is one example for this. | ||||||
|     no_color:          Do not emit color codes in output. |     no_color:          Do not emit color codes in output. | ||||||
|  |  | ||||||
|  |     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. | ||||||
|  |  | ||||||
|     The following parameters are not used by YoutubeDL itself, they are used by |     The following parameters are not used by YoutubeDL itself, they are used by | ||||||
|     the FileDownloader: |     the FileDownloader: | ||||||
|   | |||||||
| @@ -351,6 +351,7 @@ def _real_main(argv=None): | |||||||
|         'match_filter': match_filter, |         'match_filter': match_filter, | ||||||
|         'no_color': opts.no_color, |         'no_color': opts.no_color, | ||||||
|         'ffmpeg_location': opts.ffmpeg_location, |         'ffmpeg_location': opts.ffmpeg_location, | ||||||
|  |         'hls_prefer_native': opts.hls_prefer_native, | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     with YoutubeDL(ydl_opts) as ydl: |     with YoutubeDL(ydl_opts) as ydl: | ||||||
|   | |||||||
| @@ -34,6 +34,9 @@ def get_suitable_downloader(info_dict, params={}): | |||||||
|         if ed.supports(info_dict): |         if ed.supports(info_dict): | ||||||
|             return ed |             return ed | ||||||
|  |  | ||||||
|  |     if protocol == 'm3u8' and params.get('hls_prefer_native'): | ||||||
|  |         return NativeHlsFD | ||||||
|  |  | ||||||
|     return PROTOCOL_MAP.get(protocol, HttpFD) |     return PROTOCOL_MAP.get(protocol, HttpFD) | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -424,6 +424,10 @@ def parseOpts(overrideArguments=None): | |||||||
|         '--xattr-set-filesize', |         '--xattr-set-filesize', | ||||||
|         dest='xattr_set_filesize', action='store_true', |         dest='xattr_set_filesize', action='store_true', | ||||||
|         help='(experimental) set file xattribute ytdl.filesize with expected filesize') |         help='(experimental) set file xattribute ytdl.filesize with expected filesize') | ||||||
|  |     downloader.add_option( | ||||||
|  |         '--hls-prefer-native', | ||||||
|  |         dest='hls_prefer_native', action='store_true', | ||||||
|  |         help='(experimental) Use the native HLS downloader instead of ffmpeg.') | ||||||
|     downloader.add_option( |     downloader.add_option( | ||||||
|         '--external-downloader', |         '--external-downloader', | ||||||
|         dest='external_downloader', metavar='COMMAND', |         dest='external_downloader', metavar='COMMAND', | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister