mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[niconico] Check login errors (#12486)
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Yen Chi Hsuan
					Yen Chi Hsuan