diff options
| -rw-r--r-- | youtube_dl/extractor/common.py | 30 | 
1 files changed, 20 insertions, 10 deletions
diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index e47770c1d..9427ff449 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -662,6 +662,24 @@ class InfoExtractor(object):          else:              return res +    def _get_netrc_login_info(self, netrc_machine=None): +        username = None +        password = None +        netrc_machine = netrc_machine or self._NETRC_MACHINE + +        if self._downloader.params.get('usenetrc', False): +            try: +                info = netrc.netrc().authenticators(netrc_machine) +                if info is not None: +                    username = info[0] +                    password = info[2] +                else: +                    raise netrc.NetrcParseError('No authenticators for %s' % netrc_machine) +            except (IOError, netrc.NetrcParseError) as err: +                self._downloader.report_warning('parsing .netrc: %s' % error_to_compat_str(err)) + +        return (username, password) +      def _get_login_info(self):          """          Get the login info as (username, password) @@ -679,16 +697,8 @@ class InfoExtractor(object):          if downloader_params.get('username') is not None:              username = downloader_params['username']              password = downloader_params['password'] -        elif downloader_params.get('usenetrc', False): -            try: -                info = netrc.netrc().authenticators(self._NETRC_MACHINE) -                if info is not None: -                    username = info[0] -                    password = info[2] -                else: -                    raise netrc.NetrcParseError('No authenticators for %s' % self._NETRC_MACHINE) -            except (IOError, netrc.NetrcParseError) as err: -                self._downloader.report_warning('parsing .netrc: %s' % error_to_compat_str(err)) +        else: +            username, password = self._get_netrc_login_info()          return (username, password)  | 
