diff options
| author | Remita Amine <remitamine@gmail.com> | 2016-08-29 18:20:58 +0100 | 
|---|---|---|
| committer | Remita Amine <remitamine@gmail.com> | 2016-08-29 18:24:16 +0100 | 
| commit | 42e05be8671e149f79307145eda78892003279dc (patch) | |
| tree | 1ba378fb032204883025d27d2f31375082bb5e1d | |
| parent | fe45b0e06081752ff3617cdfae701408a1d8256a (diff) | |
[ctv] add support for (tsn,bnn,thecomedynetwork).ca websites(#10016)
| -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',          }  | 
