mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[mtv,cc,cmt,spike] Improve and refactor
- Eliminate _transform_rtmp_url * Generalize triforce mgid extraction + [cmt] Add support for full-episodes (closes #11623)
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sergey M․
					Sergey M․