| 
									
										
										
										
											2014-01-27 05:47:30 +01:00
										 |  |  | from __future__ import unicode_literals | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-23 17:59:27 +02:00
										 |  |  | from .common import FileDownloader | 
					
						
							|  |  |  | from .hls import HlsFD | 
					
						
							|  |  |  | from .http import HttpFD | 
					
						
							|  |  |  | from .mplayer import MplayerFD | 
					
						
							|  |  |  | from .rtmp import RtmpFD | 
					
						
							| 
									
										
										
										
											2013-12-23 16:39:49 +01:00
										 |  |  | from .f4m import F4mFD | 
					
						
							| 
									
										
										
										
											2013-09-23 17:59:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | from ..utils import ( | 
					
						
							|  |  |  |     determine_ext, | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-25 12:02:43 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-09-23 17:59:27 +02:00
										 |  |  | def get_suitable_downloader(info_dict): | 
					
						
							|  |  |  |     """Get the downloader class that can handle the info dict.""" | 
					
						
							|  |  |  |     url = info_dict['url'] | 
					
						
							| 
									
										
										
										
											2014-01-27 05:47:30 +01:00
										 |  |  |     protocol = info_dict.get('protocol') | 
					
						
							| 
									
										
										
										
											2013-09-23 17:59:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if url.startswith('rtmp'): | 
					
						
							|  |  |  |         return RtmpFD | 
					
						
							| 
									
										
										
										
											2014-01-27 05:47:30 +01:00
										 |  |  |     if (protocol == 'm3u8') or (protocol is None and determine_ext(url) == 'm3u8'): | 
					
						
							| 
									
										
										
										
											2013-09-23 17:59:27 +02:00
										 |  |  |         return HlsFD | 
					
						
							|  |  |  |     if url.startswith('mms') or url.startswith('rtsp'): | 
					
						
							|  |  |  |         return MplayerFD | 
					
						
							| 
									
										
										
										
											2013-12-23 16:39:49 +01:00
										 |  |  |     if determine_ext(url) == 'f4m': | 
					
						
							|  |  |  |         return F4mFD | 
					
						
							| 
									
										
										
										
											2013-09-23 17:59:27 +02:00
										 |  |  |     else: | 
					
						
							|  |  |  |         return HttpFD |