From: Philipp Hagemeister Date: Wed, 23 Jul 2014 00:24:50 +0000 (+0200) Subject: [YoutubeDL] Make sure we really, really get out the encoding string X-Git-Tag: 2014.07.23.2~1 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=b0472057a3977c6d23cb39ae645fcec17ea0f39b;p=youtube-dl.git [YoutubeDL] Make sure we really, really get out the encoding string Fixes #3326 Apparently, on some platforms, even outputting this fails already. --- diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 686988fe5b..f5ca33d453 100755 --- 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: