diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 839da17d0..2ecd5fb1d 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -197,7 +197,18 @@ def sanitize_filename(s): if char in u' .\\/|?*<>:"' or ord(char) < 32: return '_' return char - return u''.join(map(replace_insane, s)).strip('_') + + if sys.platform == 'win32': + s = s.replace(ur'/', u'%') + s = re.sub(ur' *[:\|] *', u' - ', s) + s = re.sub(ur'[/<>"\?\*]', u'', s) + + s = u''.join(map(replace_insane, s)).strip('_') + + if sys.platform == 'win32': + s = s.replace(u'_', u' '); + + return s def orderedSet(iterable): """ Remove all duplicates from the input iterable """