aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor/cmt.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2017-01-14 06:17:03 +0700
committerSergey M․ <dstftw@gmail.com>2017-01-14 06:18:38 +0700
commitadf063dad1792f0c9c680d13ccd984b4ad60ac29 (patch)
treebfdc54dab38fb3a68dccc31feae966a8b25835f0 /youtube_dl/extractor/cmt.py
parent5e8eebb6009ac3e9f7dfc803d8561174d207c1a2 (diff)
[mtv,cc,cmt,spike] Improve and refactor
- Eliminate _transform_rtmp_url * Generalize triforce mgid extraction + [cmt] Add support for full-episodes (closes #11623)
Diffstat (limited to 'youtube_dl/extractor/cmt.py')
-rw-r--r--youtube_dl/extractor/cmt.py25
1 files changed, 12 insertions, 13 deletions
diff --git a/youtube_dl/extractor/cmt.py b/youtube_dl/extractor/cmt.py
index 7d3e9b0c9..6302b8d9c 100644
--- a/youtube_dl/extractor/cmt.py
+++ b/youtube_dl/extractor/cmt.py
@@ -1,13 +1,11 @@
from __future__ import unicode_literals
from .mtv import MTVIE
-from ..utils import ExtractorError
class CMTIE(MTVIE):
IE_NAME = 'cmt.com'
- _VALID_URL = r'https?://(?:www\.)?cmt\.com/(?:videos|shows)/(?:[^/]+/)*(?P<videoid>\d+)'
- _FEED_URL = 'http://www.cmt.com/sitewide/apps/player/embed/rss/'
+ _VALID_URL = r'https?://(?:www\.)?cmt\.com/(?:videos|shows|full-episodes)/(?P<id>[^/]+)'
_TESTS = [{
'url': 'http://www.cmt.com/videos/garth-brooks/989124/the-call-featuring-trisha-yearwood.jhtml#artist=30061',
@@ -35,15 +33,16 @@ class CMTIE(MTVIE):
'only_matching': True,
}]
- @classmethod
- def _transform_rtmp_url(cls, rtmp_video_url):
- if 'error_not_available.swf' in rtmp_video_url:
- raise ExtractorError(
- '%s said: video is not available' % cls.IE_NAME, expected=True)
-
- return super(CMTIE, cls)._transform_rtmp_url(rtmp_video_url)
-
def _extract_mgid(self, webpage):
- return self._search_regex(
+ mgid = self._search_regex(
r'MTVN\.VIDEO\.contentUri\s*=\s*([\'"])(?P<mgid>.+?)\1',
- webpage, 'mgid', group='mgid')
+ webpage, 'mgid', group='mgid', default=None)
+ if not mgid:
+ mgid = self._extract_triforce_mgid(webpage)
+ return mgid
+
+ def _real_extract(self, url):
+ video_id = self._match_id(url)
+ webpage = self._download_webpage(url, video_id)
+ mgid = self._extract_mgid(webpage)
+ return self.url_result('http://media.mtvnservices.com/embed/%s' % mgid)