summary refs log tree commit diff
diff options
context:
space:
mode:
authorPhilipp Hagemeister <phihag@phihag.de>2015-01-11 17:40:45 +0100
committerPhilipp Hagemeister <phihag@phihag.de>2015-01-11 17:40:45 +0100
commit2aeb06d6dc8c615cf98b7d21ad152bb393726b8a (patch)
tree8fe88b4b0bc706ca1ef065c0519093431883e17f
parent4340decad25e264863e27538847e17918b4c1ae2 (diff)
downloadyoutube-dl-2aeb06d6dc8c615cf98b7d21ad152bb393726b8a.tar.gz
youtube-dl-2aeb06d6dc8c615cf98b7d21ad152bb393726b8a.tar.xz
youtube-dl-2aeb06d6dc8c615cf98b7d21ad152bb393726b8a.zip
[utils] Improve colon handling (Fixes #4683)
-rw-r--r--test/test_utils.py4
-rw-r--r--youtube_dl/utils.py2
2 files changed, 6 insertions, 0 deletions
diff --git a/test/test_utils.py b/test/test_utils.py
index 16e1a1ddf..5e16f30a2 100644
--- a/test/test_utils.py
+++ b/test/test_utils.py
@@ -79,6 +79,10 @@ class TestUtil(unittest.TestCase):
         tests = '\u043a\u0438\u0440\u0438\u043b\u043b\u0438\u0446\u0430'
         self.assertEqual(sanitize_filename(tests), tests)
 
+        self.assertEqual(
+            sanitize_filename('New World record at 0:12:34'),
+            'New World record at 0_12_34')
+
         forbidden = '"\0\\/'
         for fc in forbidden:
             for fbc in forbidden:
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 42f0b07ce..deaf71803 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -287,6 +287,8 @@ def sanitize_filename(s, restricted=False, is_id=False):
             return '_'
         return char
 
+    # Handle timestamps
+    s = re.sub(r'[0-9]+(?::[0-9]+)+', lambda m: m.group(0).replace(':', '_'), s)
     result = ''.join(map(replace_insane, s))
     if not is_id:
         while '__' in result: