|
|
|
@ -39,18 +39,17 @@ class NiconicoIE(InfoExtractor):
|
|
|
|
|
|
|
|
|
|
_VALID_URL = r'https?://(?:www\.|secure\.)?nicovideo\.jp/watch/((?:[a-z]{2})?[0-9]+)'
|
|
|
|
|
_NETRC_MACHINE = 'niconico'
|
|
|
|
|
# Determine whether the downloader uses authentication to download video
|
|
|
|
|
_AUTHENTICATE = False
|
|
|
|
|
# Determine whether the downloader used authentication to download video
|
|
|
|
|
_AUTHENTICATED = False
|
|
|
|
|
|
|
|
|
|
def _real_initialize(self):
|
|
|
|
|
if self._downloader.params.get('username', None) is not None:
|
|
|
|
|
self._AUTHENTICATE = True
|
|
|
|
|
|
|
|
|
|
if self._AUTHENTICATE:
|
|
|
|
|
self._login()
|
|
|
|
|
self._login()
|
|
|
|
|
|
|
|
|
|
def _login(self):
|
|
|
|
|
(username, password) = self._get_login_info()
|
|
|
|
|
# No authentication to be performed
|
|
|
|
|
if not username:
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
# Log in
|
|
|
|
|
login_form_strs = {
|
|
|
|
@ -68,6 +67,8 @@ class NiconicoIE(InfoExtractor):
|
|
|
|
|
if re.search(r'(?i)<h1 class="mb8p4">Log in error</h1>', login_results) is not None:
|
|
|
|
|
self._downloader.report_warning('unable to log in: bad username or password')
|
|
|
|
|
return False
|
|
|
|
|
# Successful login
|
|
|
|
|
self._AUTHENTICATED = True
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def _real_extract(self, url):
|
|
|
|
@ -82,7 +83,7 @@ class NiconicoIE(InfoExtractor):
|
|
|
|
|
'http://ext.nicovideo.jp/api/getthumbinfo/' + video_id, video_id,
|
|
|
|
|
note='Downloading video info page')
|
|
|
|
|
|
|
|
|
|
if self._AUTHENTICATE:
|
|
|
|
|
if self._AUTHENTICATED:
|
|
|
|
|
# Get flv info
|
|
|
|
|
flv_info_webpage = self._download_webpage(
|
|
|
|
|
'http://flapi.nicovideo.jp/api/getflv?v=' + video_id,
|
|
|
|
|