Merge remote-tracking branch 'petrkutalek/dvtv'
authorPhilipp Hagemeister <phihag@phihag.de>
Wed, 17 Dec 2014 22:12:38 +0000 (23:12 +0100)
committerPhilipp Hagemeister <phihag@phihag.de>
Wed, 17 Dec 2014 22:12:38 +0000 (23:12 +0100)
setup.cfg
youtube_dl/YoutubeDL.py
youtube_dl/extractor/screencastomatic.py
youtube_dl/extractor/theplatform.py

index 898defb9db76c63f8a273081652831e5fd59be79..13dcd8af636bd32dcbc7a94c1305c8f0cd7ae46a 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -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
index 8a6bcd51cac4ec5ea8415a08eeeb4ff9cc38ff64..14ee30e550e7ef2c56050c41056620007f615ffe 100755 (executable)
@@ -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."""
index 1dafc4c3190c37f029a5b1798b91c0b98d8f3224..05337421ca4210af5a9a797f22c112bb663a0960 100644 (file)
@@ -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')
index af6ef0033af061713d81785734381a6beffc2c6d..110ed976de3d1a3a31c8c9a88cd976482f7d78ca 100644 (file)
@@ -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'],