[niconico] Allow login via cookies
Some codes are borrowed from #7968, which is by @jlhg Closes #7968
This commit is contained in:
		@@ -87,8 +87,6 @@ class NiconicoIE(InfoExtractor):
 | 
			
		||||
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.|secure\.)?nicovideo\.jp/watch/(?P<id>(?:[a-z]{2})?[0-9]+)'
 | 
			
		||||
    _NETRC_MACHINE = 'niconico'
 | 
			
		||||
    # Determine whether the downloader used authentication to download video
 | 
			
		||||
    _AUTHENTICATED = False
 | 
			
		||||
 | 
			
		||||
    def _real_initialize(self):
 | 
			
		||||
        self._login()
 | 
			
		||||
@@ -112,8 +110,6 @@ 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):
 | 
			
		||||
@@ -131,19 +127,19 @@ class NiconicoIE(InfoExtractor):
 | 
			
		||||
            'http://ext.nicovideo.jp/api/getthumbinfo/' + video_id, video_id,
 | 
			
		||||
            note='Downloading video info page')
 | 
			
		||||
 | 
			
		||||
        if self._AUTHENTICATED:
 | 
			
		||||
            # Get flv info
 | 
			
		||||
            flv_info_webpage = self._download_webpage(
 | 
			
		||||
                'http://flapi.nicovideo.jp/api/getflv/' + video_id + '?as3=1',
 | 
			
		||||
                video_id, 'Downloading flv info')
 | 
			
		||||
        else:
 | 
			
		||||
            raise ExtractorError('Niconico videos now require logging in', expected=True)
 | 
			
		||||
        # Get flv info
 | 
			
		||||
        flv_info_webpage = self._download_webpage(
 | 
			
		||||
            'http://flapi.nicovideo.jp/api/getflv/' + video_id + '?as3=1',
 | 
			
		||||
            video_id, 'Downloading flv info')
 | 
			
		||||
 | 
			
		||||
        flv_info = compat_urlparse.parse_qs(flv_info_webpage)
 | 
			
		||||
        if 'url' not in flv_info:
 | 
			
		||||
            if 'deleted' in flv_info:
 | 
			
		||||
                raise ExtractorError('The video has been deleted.',
 | 
			
		||||
                                     expected=True)
 | 
			
		||||
            elif 'closed' in flv_info:
 | 
			
		||||
                raise ExtractorError('Niconico videos now require logging in',
 | 
			
		||||
                                     expected=True)
 | 
			
		||||
            else:
 | 
			
		||||
                raise ExtractorError('Unable to find video URL')
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user