diff options
| -rw-r--r-- | youtube_dl/extractor/ctv.py | 22 | 
1 files changed, 19 insertions, 3 deletions
| diff --git a/youtube_dl/extractor/ctv.py b/youtube_dl/extractor/ctv.py index 5807fbac9..a1fe86316 100644 --- a/youtube_dl/extractor/ctv.py +++ b/youtube_dl/extractor/ctv.py @@ -1,11 +1,13 @@  # coding: utf-8  from __future__ import unicode_literals +import re +  from .common import InfoExtractor  class CTVIE(InfoExtractor): -    _VALID_URL = r'https?://(?:www\.)?ctv\.ca/video/player\?vid=(?P<id>[0-9.]+)' +    _VALID_URL = r'https?://(?:www\.)?(?P<domain>ctv|tsn|bnn|thecomedynetwork)\.ca/.*?(?:\bvid=|-vid|~|%7E)(?P<id>[0-9.]+)'      _TESTS = [{          'url': 'http://www.ctv.ca/video/player?vid=706966',          'md5': 'ff2ebbeae0aa2dcc32a830c3fd69b7b0', @@ -18,13 +20,27 @@ class CTVIE(InfoExtractor):              'timestamp': 1442624700,          },          'expected_warnings': ['HTTP Error 404'], +    }, { +        'url': 'http://www.thecomedynetwork.ca/video/player?vid=923582', +        'only_matching': True, +    }, { +        'url': 'http://www.tsn.ca/video/expectations-high-for-milos-raonic-at-us-open~939549', +        'only_matching': True, +    }, { +        'url': 'http://www.bnn.ca/video/berman-s-call-part-two-viewer-questions~939654', +        'only_matching': True, +    }, { +        'url': 'http://www.ctv.ca/YourMorning/Video/S1E6-Monday-August-29-2016-vid938009', +        'only_matching': True,      }]      def _real_extract(self, url): -        video_id = self._match_id(url) +        domain, video_id = re.match(self._VALID_URL, url).groups() +        if domain == 'thecomedynetwork': +            domain = 'comedy'          return {              '_type': 'url_transparent',              'id': video_id, -            'url': '9c9media:ctv_web:%s' % video_id, +            'url': '9c9media:%s_web:%s' % (domain, video_id),              'ie_key': 'NineCNineMedia',          } | 
