Added --sleep-interval option
[youtube-dl] / youtube_dl / utils.py
index 3ecd798d74217011920135199ee59c76d58852c0..d199d26d26f6e1c4077021c05e8e19f7f7d9feb3 100644 (file)
@@ -6,6 +6,7 @@ import codecs
 import contextlib
 import ctypes
 import datetime
+import time
 import email.utils
 import errno
 import getpass
@@ -242,8 +243,8 @@ else:
 if sys.version_info >= (2,7):
     def find_xpath_attr(node, xpath, key, val):
         """ Find the xpath xpath[@key=val] """
-        assert re.match(r'^[a-zA-Z]+$', key)
-        assert re.match(r'^[a-zA-Z0-9@\s:._]*$', val)
+        assert re.match(r'^[a-zA-Z-]+$', key)
+        assert re.match(r'^[a-zA-Z0-9@\s:._-]*$', val)
         expr = xpath + u"[@%s='%s']" % (key, val)
         return node.find(expr)
 else:
@@ -747,6 +748,8 @@ class YoutubeDLHandler(compat_urllib_request.HTTPHandler):
                 del req.headers['User-agent']
             req.headers['User-agent'] = req.headers['Youtubedl-user-agent']
             del req.headers['Youtubedl-user-agent']
+        #print("sleeping\n")
+        #time.sleep(1)
         return req
 
     def http_response(self, req, resp):
@@ -852,6 +855,8 @@ def unified_strdate(date_str):
     return upload_date
 
 def determine_ext(url, default_ext=u'unknown_video'):
+    if url is None:
+        return default_ext
     guess = url.partition(u'?')[0].rpartition(u'.')[2]
     if re.match(r'^[A-Za-z0-9]+$', guess):
         return guess