diff options
Diffstat (limited to 'youtube_dl/extractor/safari.py')
| -rw-r--r-- | youtube_dl/extractor/safari.py | 21 | 
1 files changed, 8 insertions, 13 deletions
| diff --git a/youtube_dl/extractor/safari.py b/youtube_dl/extractor/safari.py index f3c80708c..7de7b7273 100644 --- a/youtube_dl/extractor/safari.py +++ b/youtube_dl/extractor/safari.py @@ -4,23 +4,20 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from .brightcove import BrightcoveIE +from .brightcove import BrightcoveLegacyIE -from ..compat import ( -    compat_urllib_parse, -    compat_urllib_request, -)  from ..utils import (      ExtractorError, +    sanitized_Request,      smuggle_url,      std_headers, +    urlencode_postdata,  )  class SafariBaseIE(InfoExtractor):      _LOGIN_URL = 'https://www.safaribooksonline.com/accounts/login/'      _SUCCESSFUL_LOGIN_REGEX = r'<a href="/accounts/logout/"[^>]*>Sign Out</a>' -    _ACCOUNT_CREDENTIALS_HINT = 'Use --username and --password options to supply credentials for safaribooksonline.com'      _NETRC_MACHINE = 'safari'      _API_BASE = 'https://www.safaribooksonline.com/api/v1/book' @@ -37,9 +34,7 @@ class SafariBaseIE(InfoExtractor):      def _login(self):          (username, password) = self._get_login_info()          if username is None: -            raise ExtractorError( -                self._ACCOUNT_CREDENTIALS_HINT, -                expected=True) +            self.raise_login_required('safaribooksonline.com account is required')          headers = std_headers          if 'Referer' not in headers: @@ -61,8 +56,8 @@ class SafariBaseIE(InfoExtractor):              'next': '',          } -        request = compat_urllib_request.Request( -            self._LOGIN_URL, compat_urllib_parse.urlencode(login_form), headers=headers) +        request = sanitized_Request( +            self._LOGIN_URL, urlencode_postdata(login_form), headers=headers)          login_page = self._download_webpage(              request, None, 'Logging in as %s' % username) @@ -115,11 +110,11 @@ class SafariIE(SafariBaseIE):              '%s/%s/chapter-content/%s.html' % (self._API_BASE, course_id, part),              part) -        bc_url = BrightcoveIE._extract_brightcove_url(webpage) +        bc_url = BrightcoveLegacyIE._extract_brightcove_url(webpage)          if not bc_url:              raise ExtractorError('Could not extract Brightcove URL from %s' % url, expected=True) -        return self.url_result(smuggle_url(bc_url, {'Referer': url}), 'Brightcove') +        return self.url_result(smuggle_url(bc_url, {'Referer': url}), 'BrightcoveLegacy')  class SafariCourseIE(SafariBaseIE): | 
