[mtv] Convert to new subtitles system
This commit is contained in:
		| @@ -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() | ||||
|   | ||||
| @@ -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 | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user