commit: b0472057a3977c6d23cb39ae645fcec17ea0f39b
parent c081b35c27b8e2f1735c62933709448c1a675f72
Author: Philipp Hagemeister <phihag@phihag.de>
Date: Wed, 23 Jul 2014 02:24:50 +0200
[YoutubeDL] Make sure we really, really get out the encoding string
Fixes #3326
Apparently, on some platforms, even outputting this fails already.
Diffstat:
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py
@@ -1234,14 +1234,21 @@ class YoutubeDL(object):
if not self.params.get('verbose'):
return
- write_string(
+ encoding_str = (
'[debug] Encodings: locale %s, fs %s, out %s, pref %s\n' % (
locale.getpreferredencoding(),
sys.getfilesystemencoding(),
sys.stdout.encoding,
- self.get_encoding()),
- encoding=None
- )
+ self.get_encoding()))
+ try:
+ write_string(encoding_str, encoding=None)
+ except:
+ errmsg = 'Failed to write encoding string %r' % encoding_str
+ try:
+ sys.stdout.write(errmsg)
+ except:
+ pass
+ raise IOError(errmsg)
self._write_string('[debug] youtube-dl version ' + __version__ + '\n')
try: