|
|
@ -16,7 +16,7 @@ class UdemyIE(InfoExtractor):
|
|
|
|
_LOGIN_URL = 'https://www.udemy.com/join/login-submit/'
|
|
|
|
_LOGIN_URL = 'https://www.udemy.com/join/login-submit/'
|
|
|
|
_NETRC_MACHINE = 'udemy'
|
|
|
|
_NETRC_MACHINE = 'udemy'
|
|
|
|
|
|
|
|
|
|
|
|
_TEST = {
|
|
|
|
_TESTS = [{
|
|
|
|
'url': 'https://www.udemy.com/java-tutorial/#/lecture/172757',
|
|
|
|
'url': 'https://www.udemy.com/java-tutorial/#/lecture/172757',
|
|
|
|
'md5': '98eda5b657e752cf945d8445e261b5c5',
|
|
|
|
'md5': '98eda5b657e752cf945d8445e261b5c5',
|
|
|
|
'info_dict': {
|
|
|
|
'info_dict': {
|
|
|
@ -27,7 +27,7 @@ class UdemyIE(InfoExtractor):
|
|
|
|
'duration': 579.29,
|
|
|
|
'duration': 579.29,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
'skip': 'Requires udemy account credentials',
|
|
|
|
'skip': 'Requires udemy account credentials',
|
|
|
|
}
|
|
|
|
}]
|
|
|
|
|
|
|
|
|
|
|
|
def _handle_error(self, response):
|
|
|
|
def _handle_error(self, response):
|
|
|
|
if not isinstance(response, dict):
|
|
|
|
if not isinstance(response, dict):
|
|
|
@ -129,6 +129,7 @@ class UdemyCourseIE(UdemyIE):
|
|
|
|
_VALID_URL = r'https?://www\.udemy\.com/(?P<coursepath>[\da-z-]+)'
|
|
|
|
_VALID_URL = r'https?://www\.udemy\.com/(?P<coursepath>[\da-z-]+)'
|
|
|
|
_SUCCESSFULLY_ENROLLED = '>You have enrolled in this course!<'
|
|
|
|
_SUCCESSFULLY_ENROLLED = '>You have enrolled in this course!<'
|
|
|
|
_ALREADY_ENROLLED = '>You are already taking this course.<'
|
|
|
|
_ALREADY_ENROLLED = '>You are already taking this course.<'
|
|
|
|
|
|
|
|
_TESTS = []
|
|
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
@classmethod
|
|
|
|
def suitable(cls, url):
|
|
|
|
def suitable(cls, url):
|
|
|
|