diff options
| author | Sergey M․ <dstftw@gmail.com> | 2020-09-19 07:52:42 +0700 | 
|---|---|---|
| committer | Sergey M․ <dstftw@gmail.com> | 2020-09-19 07:56:00 +0700 | 
| commit | 82ef02e936a0e2ca698048c8cd79273a22e79867 (patch) | |
| tree | 4baee11f6b770668c3c2ebf1f6c5e1cfea328a04 | |
| parent | b856b3997ce2978f7a8c386b4ce4840fd221c45a (diff) | |
[telequebec] Fix issues (closes #26368)
| -rw-r--r-- | youtube_dl/extractor/telequebec.py | 53 | 
1 files changed, 37 insertions, 16 deletions
| diff --git a/youtube_dl/extractor/telequebec.py b/youtube_dl/extractor/telequebec.py index 3adea7bc5..b4c485b9b 100644 --- a/youtube_dl/extractor/telequebec.py +++ b/youtube_dl/extractor/telequebec.py @@ -12,23 +12,24 @@ from ..utils import (  class TeleQuebecBaseIE(InfoExtractor): -    BRIGHTCOVE_URL_TEMPLATE = 'http://players.brightcove.net/6150020952001/default_default/index.html?videoId=%s' -      @staticmethod -    def _limelight_result(media_id): +    def _result(url, ie_key):          return {              '_type': 'url_transparent', -            'url': smuggle_url( -                'limelight:media:' + media_id, {'geo_countries': ['CA']}), -            'ie_key': 'LimelightMedia', +            'url': smuggle_url(url, {'geo_countries': ['CA']}), +            'ie_key': ie_key,          } -    def _brightcove_result(self, brightcove_id): -        return self.url_result( -            smuggle_url( -                self.BRIGHTCOVE_URL_TEMPLATE % brightcove_id, -                {'geo_countries': ['CA']}), -            'BrightcoveNew', brightcove_id) +    @staticmethod +    def _limelight_result(media_id): +        return TeleQuebecBaseIE._result( +            'limelight:media:' + media_id, 'LimelightMedia') + +    @staticmethod +    def _brightcove_result(brightcove_id): +        return TeleQuebecBaseIE._result( +            'http://players.brightcove.net/6150020952001/default_default/index.html?videoId=%s' +            % brightcove_id, 'BrightcoveNew')  class TeleQuebecIE(TeleQuebecBaseIE): @@ -52,6 +53,22 @@ class TeleQuebecIE(TeleQuebecBaseIE):              'skip_download': True,          },      }, { +        'url': 'https://zonevideo.telequebec.tv/media/55267/le-soleil/passe-partout', +        'info_dict': { +            'id': '6167180337001', +            'ext': 'mp4', +            'title': 'Le soleil', +            'description': 'md5:64289c922a8de2abbe99c354daffde02', +            'uploader_id': '6150020952001', +            'upload_date': '20200625', +            'timestamp': 1593090307, +        }, +        'params': { +            'format': 'bestvideo', +            'skip_download': True, +        }, +        'add_ie': ['BrightcoveNew'], +    }, {          # no description          'url': 'http://zonevideo.telequebec.tv/media/30261',          'only_matching': True, @@ -67,10 +84,14 @@ class TeleQuebecIE(TeleQuebecBaseIE):              'https://mnmedias.api.telequebec.tv/api/v2/media/' + media_id,              media_id)['media'] -        if media_data['streamInfo']['source'] == 'Brightcove': -            info = self._brightcove_result(media_data['streamInfo']['sourceId']) -        elif media_data['streamInfo']['source'] == 'Limelight': -            info = self._limelight_result(media_data['streamInfo']['sourceId']) +        source_id = media_data['streamInfo']['sourceId'] +        source = (try_get( +            media_data, lambda x: x['streamInfo']['source'], +            compat_str) or 'limelight').lower() +        if source == 'brightcove': +            info = self._brightcove_result(source_id) +        else: +            info = self._limelight_result(source_id)          info.update({              'title': media_data.get('title'),              'description': try_get( | 
