diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-02-18 20:14:42 +0100 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-02-18 20:14:42 +0100 | 
| commit | afbdd3acc36130d1a717b3cacab69c0dfc716622 (patch) | |
| tree | af694086d837ed6190434d9fdc2f8d51e79605f7 | |
| parent | 01561da142485a581e67ce98ef009ebe0ed7b4c1 (diff) | |
[rai] Convert to new subtitles system
| -rw-r--r-- | test/test_subtitles.py | 13 | ||||
| -rw-r--r-- | youtube_dl/extractor/rai.py | 22 | 
2 files changed, 22 insertions, 13 deletions
diff --git a/test/test_subtitles.py b/test/test_subtitles.py index 1e2324232..4dbb50515 100644 --- a/test/test_subtitles.py +++ b/test/test_subtitles.py @@ -22,6 +22,7 @@ from youtube_dl.extractor import (      NPOIE,      ComedyCentralIE,      NRKTVIE, +    RaiIE,  ) @@ -359,5 +360,17 @@ class TestNRKSubtitles(BaseTestSubtitles):          self.assertEqual(md5(subtitles['no']), '1d221e6458c95c5494dcd38e6a1f129a') +class TestRaiSubtitles(BaseTestSubtitles): +    url = 'http://www.rai.tv/dl/RaiTV/programmi/media/ContentItem-cb27157f-9dd0-4aee-b788-b1f67643a391.html' +    IE = RaiIE + +    def test_allsubtitles(self): +        self.DL.params['writesubtitles'] = True +        self.DL.params['allsubtitles'] = True +        subtitles = self.getSubtitles() +        self.assertEqual(set(subtitles.keys()), set(['it'])) +        self.assertEqual(md5(subtitles['it']), 'b1d90a98755126b61e667567a1f6680a') + +  if __name__ == '__main__':      unittest.main() diff --git a/youtube_dl/extractor/rai.py b/youtube_dl/extractor/rai.py index aa26b7e0b..144e33982 100644 --- a/youtube_dl/extractor/rai.py +++ b/youtube_dl/extractor/rai.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,  ) @@ -12,7 +12,7 @@ from ..utils import (  ) -class RaiIE(SubtitlesInfoExtractor): +class RaiIE(InfoExtractor):      _VALID_URL = r'(?P<url>http://(?:.+?\.)?(?:rai\.it|rai\.tv|rainews\.it)/dl/.+?-(?P<id>[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})(?:-.+?)?\.html)'      _TESTS = [          { @@ -89,15 +89,7 @@ class RaiIE(SubtitlesInfoExtractor):                  'ext': 'mp4',              }) -        if self._downloader.params.get('listsubtitles', False): -            page = self._download_webpage(url, video_id) -            self._list_available_subtitles(video_id, page) -            return - -        subtitles = {} -        if self._have_to_download_any_subtitles: -            page = self._download_webpage(url, video_id) -            subtitles = self.extract_subtitles(video_id, page) +        subtitles = self.extract_subtitles(video_id, url)          return {              'id': video_id, @@ -111,7 +103,8 @@ class RaiIE(SubtitlesInfoExtractor):              'subtitles': subtitles,          } -    def _get_available_subtitles(self, video_id, webpage): +    def _get_subtitles(self, video_id, url): +        webpage = self._download_webpage(url, video_id)          subtitles = {}          m = re.search(r'<meta name="closedcaption" content="(?P<captions>[^"]+)"', webpage)          if m: @@ -120,5 +113,8 @@ class RaiIE(SubtitlesInfoExtractor):              SRT_EXT = '.srt'              if captions.endswith(STL_EXT):                  captions = captions[:-len(STL_EXT)] + SRT_EXT -            subtitles['it'] = 'http://www.rai.tv%s' % compat_urllib_parse.quote(captions) +            subtitles['it'] = [{ +                'ext': 'srt', +                'url': 'http://www.rai.tv%s' % compat_urllib_parse.quote(captions), +            }]          return subtitles  | 
