From fe3d8a80afaef650e74a5dfe5095a7bfb17c26fc Mon Sep 17 00:00:00 2001 From: xantares Date: Sun, 8 Sep 2013 14:43:01 +0200 Subject: [PATCH] Ignore non-ascii characters in py3k filename and stdout/stderr output --- youtube_dl/YoutubeDL.py | 4 ++++ youtube_dl/utils.py | 1 + 2 files changed, 5 insertions(+) diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index b289bd9e2..1bc5cebb6 100644 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -147,6 +147,8 @@ class YoutubeDL(object): output = message + terminator if 'b' in getattr(self._screen_file, 'mode', '') or sys.version_info[0] < 3: # Python 2 lies about the mode of sys.stdout/sys.stderr output = output.encode(preferredencoding(), 'ignore') + if sys.version_info >= (3, 0): + output = output.encode('ascii','ignore').decode() self._screen_file.write(output) self._screen_file.flush() @@ -156,6 +158,8 @@ class YoutubeDL(object): output = message + u'\n' if 'b' in getattr(self._screen_file, 'mode', '') or sys.version_info[0] < 3: # Python 2 lies about the mode of sys.stdout/sys.stderr output = output.encode(preferredencoding()) + if sys.version_info >= (3, 0): + output = output.encode('ascii','ignore').decode() sys.stderr.write(output) def fixed_template(self): diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 201802cee..3ebebd6bd 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -449,6 +449,7 @@ def encodeFilename(s): # Python 3 has a Unicode API if sys.version_info >= (3, 0): + s = s.encode('ascii','ignore').decode() return s if sys.platform == 'win32' and sys.getwindowsversion()[0] >= 5: