about summary refs log tree commit diff
path: root/youtube_dl/extractor/lynda.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2019-07-14 01:43:31 +0700
committerSergey M․ <dstftw@gmail.com>2019-07-14 01:45:28 +0700
commitd89a0a8026e0010a96a1309d70f8fcc2164dd5a6 (patch)
tree6c17426fa89a645a0002442dcfb759e3d1fa61d3 /youtube_dl/extractor/lynda.py
parentba036333bf4ebcba70deb51e77e81dca723fb54d (diff)
downloadyoutube-dl-d89a0a8026e0010a96a1309d70f8fcc2164dd5a6.tar.gz
youtube-dl-d89a0a8026e0010a96a1309d70f8fcc2164dd5a6.tar.xz
youtube-dl-d89a0a8026e0010a96a1309d70f8fcc2164dd5a6.zip
[lynda] Handle missing subtitles (closes #20490, closes #20513)
Diffstat (limited to 'youtube_dl/extractor/lynda.py')
-rw-r--r--youtube_dl/extractor/lynda.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/youtube_dl/extractor/lynda.py b/youtube_dl/extractor/lynda.py
index 3084c6dff..b3d8653d0 100644
--- a/youtube_dl/extractor/lynda.py
+++ b/youtube_dl/extractor/lynda.py
@@ -117,6 +117,10 @@ class LyndaIE(LyndaBaseIE):
     }, {
         'url': 'https://www.lynda.com/de/Graphic-Design-tutorials/Willkommen-Grundlagen-guten-Gestaltung/393570/393572-4.html',
         'only_matching': True,
+    }, {
+        # Status="NotFound", Message="Transcript not found"
+        'url': 'https://www.lynda.com/ASP-NET-tutorials/What-you-should-know/5034180/2811512-4.html',
+        'only_matching': True,
     }]
 
     def _raise_unavailable(self, video_id):
@@ -247,12 +251,17 @@ class LyndaIE(LyndaBaseIE):
 
     def _get_subtitles(self, video_id):
         url = 'https://www.lynda.com/ajax/player?videoId=%s&type=transcript' % video_id
-        subs = self._download_json(url, None, False)
+        subs = self._download_webpage(
+            url, video_id, 'Downloading subtitles JSON', fatal=False)
+        if not subs or 'Status="NotFound"' in subs:
+            return {}
+        subs = self._parse_json(subs, video_id, fatal=False)
+        if not subs:
+            return {}
         fixed_subs = self._fix_subtitles(subs)
         if fixed_subs:
             return {'en': [{'ext': 'srt', 'data': fixed_subs}]}
-        else:
-            return {}
+        return {}
 
 
 class LyndaCourseIE(LyndaBaseIE):