diff options
| -rw-r--r-- | youtube_dl/__init__.py | 4 | ||||
| -rw-r--r-- | youtube_dl/utils.py | 10 | 
2 files changed, 12 insertions, 2 deletions
| diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py index 0e9504c14..07c9074fe 100644 --- a/youtube_dl/__init__.py +++ b/youtube_dl/__init__.py @@ -56,7 +56,6 @@ __authors__  = (  __license__ = 'Public Domain'  import codecs -import getpass  import io  import locale  import optparse @@ -68,6 +67,7 @@ import sys  from .utils import ( +    compat_getpass,      compat_print,      DateRange,      decodeOption, @@ -611,7 +611,7 @@ def _real_main(argv=None):      if opts.usetitle and opts.useid:          parser.error(u'using title conflicts with using video ID')      if opts.username is not None and opts.password is None: -        opts.password = getpass.getpass(u'Type account password and press return:') +        opts.password = compat_getpass(u'Type account password and press [Return]: ')      if opts.ratelimit is not None:          numeric_limit = FileDownloader.parse_bytes(opts.ratelimit)          if numeric_limit is None: diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index 3cf29e63a..7e7d1e8b6 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -6,6 +6,7 @@ import ctypes  import datetime  import email.utils  import errno +import getpass  import gzip  import itertools  import io @@ -1279,3 +1280,12 @@ def parse_xml(s):      parser = xml.etree.ElementTree.XMLParser(target=TreeBuilder())      kwargs = {'parser': parser} if sys.version_info >= (2, 7) else {}      return xml.etree.ElementTree.XML(s.encode('utf-8'), **kwargs) + + +if sys.version_info < (3, 0) and sys.platform == 'win32': +    def compat_getpass(prompt, *args, **kwargs): +        if isinstance(prompt, compat_str): +            prompt = prompt.encode(getpreferredencoding()) +        return getpass.getpass(prompt, *args, **kwargs) +else: +    compat_getpass = getpass.getpass | 
