Warn if no locale is set (#1474)
authorPhilipp Hagemeister <phihag@phihag.de>
Sat, 21 Sep 2013 09:48:07 +0000 (11:48 +0200)
committerPhilipp Hagemeister <phihag@phihag.de>
Sat, 21 Sep 2013 09:48:07 +0000 (11:48 +0200)
youtube_dl/YoutubeDL.py

index d999099fee72674dc91147d95a9b7526a4bb2e2e..fa24ebe0dc7abedf09765cfe2f7527db8464f693 100644 (file)
@@ -104,6 +104,17 @@ class YoutubeDL(object):
         self._download_retcode = 0
         self._num_downloads = 0
         self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]
+
+        if (sys.version_info >= (3,) and sys.platform != 'win32' and
+                sys.getfilesystemencoding() in ['ascii', 'ANSI_X3.4-1968']
+                and not params['restrictfilenames']):
+            # On Python 3, the Unicode filesystem API will throw errors (#1474)
+            self.report_warning(
+                u'Assuming --restrict-filenames isnce file system encoding '
+                u'cannot encode all charactes. '
+                u'Set the LC_ALL environment variable to fix this.')
+            params['restrictfilenames'] = True
+
         self.params = params
         self.fd = FileDownloader(self, self.params)