aboutsummaryrefslogtreecommitdiffstats
path: root/youtube_dl/extractor/teachable.py
diff options
context:
space:
mode:
Diffstat (limited to 'youtube_dl/extractor/teachable.py')
-rw-r--r--youtube_dl/extractor/teachable.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/youtube_dl/extractor/teachable.py b/youtube_dl/extractor/teachable.py
index 7d2e34b3b..4316a6962 100644
--- a/youtube_dl/extractor/teachable.py
+++ b/youtube_dl/extractor/teachable.py
@@ -4,7 +4,6 @@ import re
from .common import InfoExtractor
from .wistia import WistiaIE
-from ..compat import compat_str
from ..utils import (
clean_html,
ExtractorError,
@@ -58,7 +57,7 @@ class TeachableBaseIE(InfoExtractor):
self._logged_in = True
return
- login_url = compat_str(urlh.geturl())
+ login_url = urlh.geturl()
login_form = self._hidden_inputs(login_page)
@@ -160,22 +159,28 @@ class TeachableIE(TeachableBaseIE):
webpage = self._download_webpage(url, video_id)
- wistia_url = WistiaIE._extract_url(webpage)
- if not wistia_url:
+ wistia_urls = WistiaIE._extract_urls(webpage)
+ if not wistia_urls:
if any(re.search(p, webpage) for p in (
r'class=["\']lecture-contents-locked',
r'>\s*Lecture contents locked',
- r'id=["\']lecture-locked')):
+ r'id=["\']lecture-locked',
+ # https://academy.tailoredtutors.co.uk/courses/108779/lectures/1955313
+ r'class=["\'](?:inner-)?lesson-locked',
+ r'>LESSON LOCKED<')):
self.raise_login_required('Lecture contents locked')
+ raise ExtractorError('Unable to find video URL')
title = self._og_search_title(webpage, default=None)
- return {
+ entries = [{
'_type': 'url_transparent',
'url': wistia_url,
'ie_key': WistiaIE.ie_key(),
'title': title,
- }
+ } for wistia_url in wistia_urls]
+
+ return self.playlist_result(entries, video_id, title)
class TeachableCourseIE(TeachableBaseIE):