1
0
Fork 0
mirror of https://gitlab.com/dstftw/youtube-dl.git synced 2020-11-16 09:42:26 +00:00

[pluralsight] Modernize and make more robust

This commit is contained in:
Sergey M․ 2016-08-24 08:52:12 +07:00
parent 8c3e35dd44
commit 30317f4887
No known key found for this signature in database
GPG key ID: 2C393E0F18A9236D

View file

@ -17,7 +17,6 @@ from ..utils import (
int_or_none, int_or_none,
parse_duration, parse_duration,
qualities, qualities,
sanitized_Request,
srt_subtitles_timecode, srt_subtitles_timecode,
urlencode_postdata, urlencode_postdata,
) )
@ -78,12 +77,10 @@ class PluralsightIE(PluralsightBaseIE):
if not post_url.startswith('http'): if not post_url.startswith('http'):
post_url = compat_urlparse.urljoin(self._LOGIN_URL, post_url) post_url = compat_urlparse.urljoin(self._LOGIN_URL, post_url)
request = sanitized_Request(
post_url, urlencode_postdata(login_form))
request.add_header('Content-Type', 'application/x-www-form-urlencoded')
response = self._download_webpage( response = self._download_webpage(
request, None, 'Logging in as %s' % username) post_url, None, 'Logging in as %s' % username,
data=urlencode_postdata(login_form),
headers={'Content-Type': 'application/x-www-form-urlencoded'})
error = self._search_regex( error = self._search_regex(
r'<span[^>]+class="field-validation-error"[^>]*>([^<]+)</span>', r'<span[^>]+class="field-validation-error"[^>]*>([^<]+)</span>',
@ -128,6 +125,8 @@ class PluralsightIE(PluralsightBaseIE):
continue continue
end = duration if num == len(subs) - 1 else float_or_none( end = duration if num == len(subs) - 1 else float_or_none(
subs[num + 1].get('DisplayTimeOffset')) subs[num + 1].get('DisplayTimeOffset'))
if end is None:
continue
srt += os.linesep.join( srt += os.linesep.join(
( (
'%d' % num, '%d' % num,
@ -246,13 +245,12 @@ class PluralsightIE(PluralsightBaseIE):
'mt': ext, 'mt': ext,
'q': '%dx%d' % (f['width'], f['height']), 'q': '%dx%d' % (f['width'], f['height']),
} }
request = sanitized_Request(
'%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) format_id = '%s-%s' % (ext, quality)
clip_url = self._download_webpage( clip_url = self._download_webpage(
request, display_id, 'Downloading %s URL' % format_id, fatal=False) '%s/training/Player/ViewClip' % self._API_BASE, display_id,
'Downloading %s URL' % format_id, fatal=False,
data=json.dumps(clip_post).encode('utf-8'),
headers={'Content-Type': 'application/json;charset=utf-8'})
# Pluralsight tracks multiple sequential calls to ViewClip API and start # Pluralsight tracks multiple sequential calls to ViewClip API and start
# to return 429 HTTP errors after some time (see # to return 429 HTTP errors after some time (see