Add login support to Crunchyroll extractor
This commit is contained in:
		@@ -17,6 +17,7 @@ from ..utils import (
 | 
			
		||||
    intlist_to_bytes,
 | 
			
		||||
    unified_strdate,
 | 
			
		||||
    clean_html,
 | 
			
		||||
    urlencode_postdata,
 | 
			
		||||
)
 | 
			
		||||
from ..aes import (
 | 
			
		||||
    aes_cbc_decrypt,
 | 
			
		||||
@@ -51,6 +52,24 @@ class CrunchyrollIE(InfoExtractor):
 | 
			
		||||
        '1080': ('80', '108'),
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    def _login(self):
 | 
			
		||||
        (username, password) = self._get_login_info()
 | 
			
		||||
        if username is None:
 | 
			
		||||
            return
 | 
			
		||||
        self.report_login()
 | 
			
		||||
        login_url = 'https://www.crunchyroll.com/?a=formhandler'
 | 
			
		||||
        data = urlencode_postdata({
 | 
			
		||||
            'formname': 'RpcApiUser_Login',
 | 
			
		||||
            'name': username,
 | 
			
		||||
            'password': password,
 | 
			
		||||
        })
 | 
			
		||||
        login_request = compat_urllib_request.Request(login_url, data)
 | 
			
		||||
        login_request.add_header('Content-Type', 'application/x-www-form-urlencoded')
 | 
			
		||||
        self._download_webpage(login_request, None, False, 'Wrong login info')
 | 
			
		||||
 | 
			
		||||
    def _real_initialize(self):
 | 
			
		||||
        self._login()
 | 
			
		||||
 | 
			
		||||
    def _decrypt_subtitles(self, data, iv, id):
 | 
			
		||||
        data = bytes_to_intlist(data)
 | 
			
		||||
        iv = bytes_to_intlist(iv)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user