diff options
| -rw-r--r-- | test/test_subtitles.py | 2 | ||||
| -rw-r--r-- | youtube_dl/extractor/bliptv.py | 34 | 
2 files changed, 18 insertions, 18 deletions
| diff --git a/test/test_subtitles.py b/test/test_subtitles.py index 91cebce28..0ca510310 100644 --- a/test/test_subtitles.py +++ b/test/test_subtitles.py @@ -200,13 +200,11 @@ class TestBlipTVSubtitles(BaseTestSubtitles):      IE = BlipTVIE      def test_list_subtitles(self): -        self.DL.expect_warning('Automatic Captions not supported by this server')          self.DL.params['listsubtitles'] = True          info_dict = self.getInfoDict()          self.assertEqual(info_dict, None)      def test_allsubtitles(self): -        self.DL.expect_warning('Automatic Captions not supported by this server')          self.DL.params['writesubtitles'] = True          self.DL.params['allsubtitles'] = True          subtitles = self.getSubtitles() diff --git a/youtube_dl/extractor/bliptv.py b/youtube_dl/extractor/bliptv.py index 436cc5155..8c7ba4b91 100644 --- a/youtube_dl/extractor/bliptv.py +++ b/youtube_dl/extractor/bliptv.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals  import re  from .common import InfoExtractor -from .subtitles import SubtitlesInfoExtractor  from ..compat import (      compat_str, @@ -18,7 +17,7 @@ from ..utils import (  ) -class BlipTVIE(SubtitlesInfoExtractor): +class BlipTVIE(InfoExtractor):      _VALID_URL = r'https?://(?:\w+\.)?blip\.tv/(?:(?:.+-|rss/flash/)(?P<id>\d+)|((?:play/|api\.swf#)(?P<lookup_id>[\da-zA-Z+_]+)))'      _TESTS = [ @@ -143,7 +142,7 @@ class BlipTVIE(SubtitlesInfoExtractor):          categories = [category.text for category in item.findall('category')]          formats = [] -        subtitles = {} +        subtitles_urls = {}          media_group = item.find(media('group'))          for media_content in media_group.findall(media('content')): @@ -161,7 +160,7 @@ class BlipTVIE(SubtitlesInfoExtractor):                  }                  lang = role.rpartition('-')[-1].strip().lower()                  langcode = LANGS.get(lang, lang) -                subtitles[langcode] = url +                subtitles_urls[langcode] = url              elif media_type.startswith('video/'):                  formats.append({                      'url': real_url, @@ -175,11 +174,7 @@ class BlipTVIE(SubtitlesInfoExtractor):                  })          self._sort_formats(formats) -        # subtitles -        video_subtitles = self.extract_subtitles(video_id, subtitles) -        if self._downloader.params.get('listsubtitles', False): -            self._list_available_subtitles(video_id, subtitles) -            return +        subtitles = self.extract_subtitles(video_id, subtitles_urls)          return {              'id': video_id, @@ -192,15 +187,22 @@ class BlipTVIE(SubtitlesInfoExtractor):              'thumbnail': thumbnail,              'categories': categories,              'formats': formats, -            'subtitles': video_subtitles, +            'subtitles': subtitles,          } -    def _download_subtitle_url(self, sub_lang, url): -        # For some weird reason, blip.tv serves a video instead of subtitles -        # when we request with a common UA -        req = compat_urllib_request.Request(url) -        req.add_header('User-Agent', 'youtube-dl') -        return self._download_webpage(req, None, note=False) +    def _get_subtitles(self, video_id, subtitles_urls): +        subtitles = {} +        for lang, url in subtitles_urls.items(): +            # For some weird reason, blip.tv serves a video instead of subtitles +            # when we request with a common UA +            req = compat_urllib_request.Request(url) +            req.add_header('User-Agent', 'youtube-dl') +            subtitles[lang] = [{ +                # The extension is 'srt' but it's actually an 'ass' file +                'ext': 'ass', +                'data': self._download_webpage(req, None, note=False), +            }] +        return subtitles  class BlipTVUserIE(InfoExtractor): | 
