|  | @@ -1,23 +1,22 @@
 | 
	
		
			
				|  |  |  # coding: utf-8
 | 
	
		
			
				|  |  |  from __future__ import unicode_literals
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import re
 | 
	
		
			
				|  |  |  import json
 | 
	
		
			
				|  |  |  import datetime
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  from .common import InfoExtractor
 | 
	
		
			
				|  |  |  from ..compat import (
 | 
	
		
			
				|  |  | +    compat_parse_qs,
 | 
	
		
			
				|  |  |      compat_urlparse,
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  |  from ..utils import (
 | 
	
		
			
				|  |  | +    determine_ext,
 | 
	
		
			
				|  |  |      ExtractorError,
 | 
	
		
			
				|  |  |      int_or_none,
 | 
	
		
			
				|  |  |      parse_duration,
 | 
	
		
			
				|  |  |      parse_iso8601,
 | 
	
		
			
				|  |  | -    sanitized_Request,
 | 
	
		
			
				|  |  | -    xpath_text,
 | 
	
		
			
				|  |  | -    determine_ext,
 | 
	
		
			
				|  |  |      urlencode_postdata,
 | 
	
		
			
				|  |  | +    xpath_text,
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -101,19 +100,24 @@ class NiconicoIE(InfoExtractor):
 | 
	
		
			
				|  |  |              return True
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          # Log in
 | 
	
		
			
				|  |  | +        login_ok = True
 | 
	
		
			
				|  |  |          login_form_strs = {
 | 
	
		
			
				|  |  | -            'mail': username,
 | 
	
		
			
				|  |  | +            'mail_tel': username,
 | 
	
		
			
				|  |  |              'password': password,
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        login_data = urlencode_postdata(login_form_strs)
 | 
	
		
			
				|  |  | -        request = sanitized_Request(
 | 
	
		
			
				|  |  | -            'https://secure.nicovideo.jp/secure/login', login_data)
 | 
	
		
			
				|  |  | -        login_results = self._download_webpage(
 | 
	
		
			
				|  |  | -            request, None, note='Logging in', errnote='Unable to log in')
 | 
	
		
			
				|  |  | -        if re.search(r'(?i)<h1 class="mb8p4">Log in error</h1>', login_results) is not None:
 | 
	
		
			
				|  |  | +        urlh = self._request_webpage(
 | 
	
		
			
				|  |  | +            'https://account.nicovideo.jp/api/v1/login', None,
 | 
	
		
			
				|  |  | +            note='Logging in', errnote='Unable to log in',
 | 
	
		
			
				|  |  | +            data=urlencode_postdata(login_form_strs))
 | 
	
		
			
				|  |  | +        if urlh is False:
 | 
	
		
			
				|  |  | +            login_ok = False
 | 
	
		
			
				|  |  | +        else:
 | 
	
		
			
				|  |  | +            parts = compat_urlparse.urlparse(urlh.geturl())
 | 
	
		
			
				|  |  | +            if compat_parse_qs(parts.query).get('message', [None])[0] == 'cant_login':
 | 
	
		
			
				|  |  | +                login_ok = False
 | 
	
		
			
				|  |  | +        if not login_ok:
 | 
	
		
			
				|  |  |              self._downloader.report_warning('unable to log in: bad username or password')
 | 
	
		
			
				|  |  | -            return False
 | 
	
		
			
				|  |  | -        return True
 | 
	
		
			
				|  |  | +        return login_ok
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      def _real_extract(self, url):
 | 
	
		
			
				|  |  |          video_id = self._match_id(url)
 |