diff options
-rw-r--r-- | setup.cfg | 2 | ||||
-rwxr-xr-x | youtube_dl/YoutubeDL.py | 3 | ||||
-rw-r--r-- | youtube_dl/extractor/screencastomatic.py | 1 | ||||
-rw-r--r-- | youtube_dl/extractor/theplatform.py | 19 |
4 files changed, 19 insertions, 6 deletions
@@ -2,5 +2,5 @@ universal = True [flake8] -exclude = youtube_dl/extractor/__init__.py,devscripts/buildserver.py,setup.py +exclude = youtube_dl/extractor/__init__.py,devscripts/buildserver.py,setup.py,build ignore = E501 diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 8a6bcd51c..14ee30e55 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -1149,8 +1149,7 @@ class YoutubeDL(object): except (PostProcessingError) as err: self.report_error('postprocessing: %s' % str(err)) return - - self.record_download_archive(info_dict) + self.record_download_archive(info_dict) def download(self, url_list): """Download a given list of URLs.""" diff --git a/youtube_dl/extractor/screencastomatic.py b/youtube_dl/extractor/screencastomatic.py index 1dafc4c31..05337421c 100644 --- a/youtube_dl/extractor/screencastomatic.py +++ b/youtube_dl/extractor/screencastomatic.py @@ -31,7 +31,6 @@ class ScreencastOMaticIE(InfoExtractor): r"(?s)jwplayer\('mp4Player'\).setup\((\{.*?\})\);", webpage, 'setup code') data = self._parse_json(setup_js, video_id, transform_source=js_to_json) - modes = data['modes'] try: video_data = next( m for m in data['modes'] if m.get('type') == 'html5') diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py index af6ef0033..110ed976d 100644 --- a/youtube_dl/extractor/theplatform.py +++ b/youtube_dl/extractor/theplatform.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import re import json -from .common import InfoExtractor +from .subtitles import SubtitlesInfoExtractor from ..compat import ( compat_str, ) @@ -16,7 +16,7 @@ from ..utils import ( _x = lambda p: xpath_with_ns(p, {'smil': 'http://www.w3.org/2005/SMIL21/Language'}) -class ThePlatformIE(InfoExtractor): +class ThePlatformIE(SubtitlesInfoExtractor): _VALID_URL = r'''(?x) (?:https?://(?:link|player)\.theplatform\.com/[sp]/[^/]+/ (?P<config>(?:[^/\?]+/(?:swf|config)|onsite)/select/)? @@ -66,6 +66,20 @@ class ThePlatformIE(InfoExtractor): info_json = self._download_webpage(info_url, video_id) info = json.loads(info_json) + subtitles = {} + captions = info.get('captions') + if isinstance(captions, list): + for caption in captions: + lang, src = caption.get('lang'), caption.get('src') + if lang and src: + subtitles[lang] = src + + if self._downloader.params.get('listsubtitles', False): + self._list_available_subtitles(video_id, subtitles) + return + + subtitles = self.extract_subtitles(video_id, subtitles) + head = meta.find(_x('smil:head')) body = meta.find(_x('smil:body')) @@ -117,6 +131,7 @@ class ThePlatformIE(InfoExtractor): return { 'id': video_id, 'title': info['title'], + 'subtitles': subtitles, 'formats': formats, 'description': info['description'], 'thumbnail': info['defaultThumbnailUrl'], |