|
|
@ -20,6 +20,7 @@ class PluralsightIE(InfoExtractor): |
|
|
|
IE_NAME = 'pluralsight' |
|
|
|
_VALID_URL = r'https?://(?:(?:www|app)\.)?pluralsight\.com/training/player\?' |
|
|
|
_LOGIN_URL = 'https://app.pluralsight.com/id/' |
|
|
|
_API_BASE = 'http://app.pluralsight.com' |
|
|
|
_NETRC_MACHINE = 'pluralsight' |
|
|
|
|
|
|
|
_TESTS = [{ |
|
|
@ -142,7 +143,7 @@ class PluralsightIE(InfoExtractor): |
|
|
|
'q': '%dx%d' % (f['width'], f['height']), |
|
|
|
} |
|
|
|
request = compat_urllib_request.Request( |
|
|
|
'http://app.pluralsight.com/training/Player/ViewClip', |
|
|
|
'%s/training/Player/ViewClip' % self._API_BASE, |
|
|
|
json.dumps(clip_post).encode('utf-8')) |
|
|
|
request.add_header('Content-Type', 'application/json;charset=utf-8') |
|
|
|
format_id = '%s-%s' % (ext, quality) |
|
|
@ -201,14 +202,14 @@ class PluralsightCourseIE(InfoExtractor): |
|
|
|
# TODO: PSM cookie |
|
|
|
|
|
|
|
course = self._download_json( |
|
|
|
'http://www.pluralsight.com/data/course/%s' % course_id, |
|
|
|
'%s/data/course/%s' % (self._API_BASE, course_id), |
|
|
|
course_id, 'Downloading course JSON') |
|
|
|
|
|
|
|
title = course['title'] |
|
|
|
description = course.get('description') or course.get('shortDescription') |
|
|
|
|
|
|
|
course_data = self._download_json( |
|
|
|
'http://www.pluralsight.com/data/course/content/%s' % course_id, |
|
|
|
'%s/data/course/content/%s' % (self._API_BASE, course_id), |
|
|
|
course_id, 'Downloading course data JSON') |
|
|
|
|
|
|
|
entries = [] |
|
|
@ -218,7 +219,7 @@ class PluralsightCourseIE(InfoExtractor): |
|
|
|
if not player_parameters: |
|
|
|
continue |
|
|
|
entries.append(self.url_result( |
|
|
|
'http://www.pluralsight.com/training/player?%s' % player_parameters, |
|
|
|
'%s/training/player?%s' % (self._API_BASE, player_parameters), |
|
|
|
'Pluralsight')) |
|
|
|
|
|
|
|
return self.playlist_result(entries, course_id, title, description) |