aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/utils.py
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2015-01-23 23:50:31 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2015-01-23 23:50:31 +0100
commita055469fafe088b6aa0e569d989cbf7f70535951 (patch)
tree3975f7661ca6ece379a845dee1f38cc6b1d1c5b4 /youtube_dl/utils.py
parentfdaaaaa878c42975936bf7f6ecf39a97436fefe2 (diff)
downloadyoutube-dl-a055469fafe088b6aa0e569d989cbf7f70535951.tar.xz
[downloader] Improve downloader selection
Diffstat (limited to 'youtube_dl/utils.py')
-rw-r--r--youtube_dl/utils.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 463cc20ff..2970d02a1 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -1642,3 +1642,25 @@ def is_html(first_bytes):
s = first_bytes.decode('utf-8', 'replace')
return re.match(r'^\s*<', s)
+
+
+def determine_protocol(info_dict):
+ protocol = info_dict.get('protocol')
+ if protocol is not None:
+ return protocol
+
+ url = info_dict['url']
+ if url.startswith('rtmp'):
+ return 'rtmp'
+ elif url.startswith('mms'):
+ return 'mms'
+ elif url.startswith('rtsp'):
+ return 'rtsp'
+
+ ext = determine_ext(url)
+ if ext == 'm3u8':
+ return 'm3u8'
+ elif ext == 'f4m':
+ return 'f4m'
+
+ return compat_urllib_parse_urlparse(url).scheme