Browse Source

[YoutubeDL] Temporary fix for subprocess encoding issues on python2 @ Windows (Closes #4787)

For now filenames will be encoded with preferrefencoding before written to disk
Sergey M․ 10 years ago
parent
commit
3a0d2f520a
1 changed files with 5 additions and 0 deletions
  1. 5 0
      youtube_dl/YoutubeDL.py

+ 5 - 0
youtube_dl/YoutubeDL.py

@@ -543,6 +543,11 @@ class YoutubeDL(object):
             outtmpl = self.params.get('outtmpl', DEFAULT_OUTTMPL)
             tmpl = compat_expanduser(outtmpl)
             filename = tmpl % template_dict
+            # Temporary fix for #4787
+            # 'Treat' all problem characters by passing filename through preferredencoding
+            # to workaround encoding issues with subprocess on python2 @ Windows
+            if sys.version_info < (3, 0) and sys.platform == 'win32':
+                filename = encodeFilename(filename, True).decode(preferredencoding())
             return filename
         except ValueError as err:
             self.report_error('Error in output template: ' + str(err) + ' (encoding: ' + repr(preferredencoding()) + ')')