X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fdownloader%2F__init__.py;h=31e28df58e828f8c5434390ff18a63358215924a;hb=3d5f7a3947a8d304bc7ad46217f171996e95c475;hp=f19b490f186a73f50bdc385661ebecd9b72aec4e;hpb=3bc2ddccc8622379ec11e802dff30a635285a9c8;p=youtube-dl diff --git a/youtube_dl/downloader/__init__.py b/youtube_dl/downloader/__init__.py index f19b490f1..31e28df58 100644 --- a/youtube_dl/downloader/__init__.py +++ b/youtube_dl/downloader/__init__.py @@ -1,23 +1,37 @@ +from __future__ import unicode_literals + from .common import FileDownloader from .hls import HlsFD +from .hls import NativeHlsFD from .http import HttpFD from .mplayer import MplayerFD from .rtmp import RtmpFD +from .f4m import F4mFD from ..utils import ( determine_ext, ) + def get_suitable_downloader(info_dict): """Get the downloader class that can handle the info dict.""" url = info_dict['url'] + protocol = info_dict.get('protocol') if url.startswith('rtmp'): return RtmpFD - if determine_ext(url) == u'm3u8': + if protocol == 'm3u8_native': + return NativeHlsFD + if (protocol == 'm3u8') or (protocol is None and determine_ext(url) == 'm3u8'): return HlsFD if url.startswith('mms') or url.startswith('rtsp'): return MplayerFD + if determine_ext(url) == 'f4m': + return F4mFD else: return HttpFD +__all__ = [ + 'get_suitable_downloader', + 'FileDownloader', +]