| 1234567891011121314151617181920212223242526272829303132 | from __future__ import unicode_literalsfrom .common import FileDownloaderfrom .hls import HlsFDfrom .hls import NativeHlsFDfrom .http import HttpFDfrom .mplayer import MplayerFDfrom .rtmp import RtmpFDfrom .f4m import F4mFDfrom ..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 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
 |