diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-02-18 18:27:45 +0100 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-02-18 18:27:45 +0100 | 
| commit | 0af25f784bc5bff7cbce2d4af725b4bf2d2262c5 (patch) | |
| tree | ba0031f6324f479c544c71d1f3629107800ea937 | |
| parent | b9b42f2ea0c564f3e75a8f052bfe0dfe21cf320f (diff) | |
[mtv] Convert to new subtitles system
| -rw-r--r-- | test/test_subtitles.py | 16 | ||||
| -rw-r--r-- | youtube_dl/extractor/mtv.py | 26 | 
2 files changed, 23 insertions, 19 deletions
diff --git a/test/test_subtitles.py b/test/test_subtitles.py index b2195cac4..c018d9b49 100644 --- a/test/test_subtitles.py +++ b/test/test_subtitles.py @@ -20,6 +20,7 @@ from youtube_dl.extractor import (      CeskaTelevizeIE,      LyndaIE,      NPOIE, +    ComedyCentralIE,  ) @@ -330,5 +331,20 @@ class TestNPOSubtitles(BaseTestSubtitles):          self.assertEqual(md5(subtitles['nl']), 'fc6435027572b63fb4ab143abd5ad3f4') +class TestMTVSubtitles(BaseTestSubtitles): +    url = 'http://www.cc.com/video-clips/kllhuv/stand-up-greg-fitzsimmons--uncensored---too-good-of-a-mother' +    IE = ComedyCentralIE + +    def getInfoDict(self): +        return super(TestMTVSubtitles, self).getInfoDict()['entries'][0] + +    def test_allsubtitles(self): +        self.DL.params['writesubtitles'] = True +        self.DL.params['allsubtitles'] = True +        subtitles = self.getSubtitles() +        self.assertEqual(set(subtitles.keys()), set(['en'])) +        self.assertEqual(md5(subtitles['en']), 'b9f6ca22a6acf597ec76f61749765e65') + +  if __name__ == '__main__':      unittest.main() diff --git a/youtube_dl/extractor/mtv.py b/youtube_dl/extractor/mtv.py index bc7f49ebb..c11de1cb6 100644 --- a/youtube_dl/extractor/mtv.py +++ b/youtube_dl/extractor/mtv.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals  import re -from .subtitles import SubtitlesInfoExtractor +from .common import InfoExtractor  from ..compat import (      compat_urllib_parse,      compat_urllib_request, @@ -23,7 +23,7 @@ def _media_xml_tag(tag):      return '{http://search.yahoo.com/mrss/}%s' % tag -class MTVServicesInfoExtractor(SubtitlesInfoExtractor): +class MTVServicesInfoExtractor(InfoExtractor):      _MOBILE_TEMPLATE = None      @staticmethod @@ -95,25 +95,15 @@ class MTVServicesInfoExtractor(SubtitlesInfoExtractor):      def _extract_subtitles(self, mdoc, mtvn_id):          subtitles = {} -        FORMATS = { -            'scc': 'cea-608', -            'eia-608': 'cea-608', -            'xml': 'ttml', -        } -        subtitles_format = FORMATS.get( -            self._downloader.params.get('subtitlesformat'), 'ttml')          for transcript in mdoc.findall('.//transcript'):              if transcript.get('kind') != 'captions':                  continue              lang = transcript.get('srclang') -            for typographic in transcript.findall('./typographic'): -                captions_format = typographic.get('format') -                if captions_format == subtitles_format: -                    subtitles[lang] = compat_str(typographic.get('src')) -                    break -        if self._downloader.params.get('listsubtitles', False): -            self._list_available_subtitles(mtvn_id, subtitles) -        return self.extract_subtitles(mtvn_id, subtitles) +            subtitles[lang] = [{ +                'url': compat_str(typographic.get('src')), +                'ext': typographic.get('format') +            } for typographic in transcript.findall('./typographic')] +        return subtitles      def _get_video_info(self, itemdoc):          uri = itemdoc.find('guid').text @@ -196,8 +186,6 @@ class MTVServicesInfoExtractor(SubtitlesInfoExtractor):                  webpage, 'mgid')          videos_info = self._get_videos_info(mgid) -        if self._downloader.params.get('listsubtitles', False): -            return          return videos_info  | 
