mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 05:37:07 -05:00 
			
		
		
		
	[cbs] add base extractor
This commit is contained in:
		@@ -10,7 +10,18 @@ from ..utils import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CBSIE(ThePlatformIE):
 | 
			
		||||
class CBSBaseIE(ThePlatformIE):
 | 
			
		||||
    def _parse_smil_subtitles(self, smil, namespace=None, subtitles_lang='en'):
 | 
			
		||||
        closed_caption_e = find_xpath_attr(smil, self._xpath_ns('.//param', namespace), 'name', 'ClosedCaptionURL')
 | 
			
		||||
        return {
 | 
			
		||||
            'en': [{
 | 
			
		||||
                'ext': 'ttml',
 | 
			
		||||
                'url': closed_caption_e.attrib['value'],
 | 
			
		||||
            }]
 | 
			
		||||
        } if closed_caption_e is not None and closed_caption_e.attrib.get('value') else []
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CBSIE(CBSBaseIE):
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?(?:cbs\.com/shows/[^/]+/(?:video|artist)|colbertlateshow\.com/(?:video|podcasts))/[^/]+/(?P<id>[^/]+)'
 | 
			
		||||
 | 
			
		||||
    _TESTS = [{
 | 
			
		||||
@@ -52,15 +63,6 @@ class CBSIE(ThePlatformIE):
 | 
			
		||||
    }]
 | 
			
		||||
    TP_RELEASE_URL_TEMPLATE = 'http://link.theplatform.com/s/dJ5BDC/%s?manifest=m3u&mbr=true'
 | 
			
		||||
 | 
			
		||||
    def _parse_smil_subtitles(self, smil, namespace=None, subtitles_lang='en'):
 | 
			
		||||
        closed_caption_e = find_xpath_attr(smil, self._xpath_ns('.//param', namespace), 'name', 'ClosedCaptionURL')
 | 
			
		||||
        return {
 | 
			
		||||
            'en': [{
 | 
			
		||||
                'ext': 'ttml',
 | 
			
		||||
                'url': closed_caption_e.attrib['value'],
 | 
			
		||||
            }]
 | 
			
		||||
        } if closed_caption_e is not None and closed_caption_e.attrib.get('value') else []
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        display_id = self._match_id(url)
 | 
			
		||||
        webpage = self._download_webpage(url, display_id)
 | 
			
		||||
 
 | 
			
		||||
@@ -2,14 +2,14 @@
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
from .common import InfoExtractor
 | 
			
		||||
from .theplatform import ThePlatformIE
 | 
			
		||||
from .cbs import CBSBaseIE
 | 
			
		||||
from ..utils import (
 | 
			
		||||
    parse_duration,
 | 
			
		||||
    find_xpath_attr,
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class CBSNewsIE(ThePlatformIE):
 | 
			
		||||
class CBSNewsIE(CBSBaseIE):
 | 
			
		||||
    IE_DESC = 'CBS News'
 | 
			
		||||
    _VALID_URL = r'https?://(?:www\.)?cbsnews\.com/(?:news|videos)/(?P<id>[\da-z_-]+)'
 | 
			
		||||
 | 
			
		||||
@@ -49,15 +49,6 @@ class CBSNewsIE(ThePlatformIE):
 | 
			
		||||
        },
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    def _parse_smil_subtitles(self, smil, namespace=None, subtitles_lang='en'):
 | 
			
		||||
        closed_caption_e = find_xpath_attr(smil, self._xpath_ns('.//param', namespace), 'name', 'ClosedCaptionURL')
 | 
			
		||||
        return {
 | 
			
		||||
            'en': [{
 | 
			
		||||
                'ext': 'ttml',
 | 
			
		||||
                'url': closed_caption_e.attrib['value'],
 | 
			
		||||
            }]
 | 
			
		||||
        } if closed_caption_e is not None and closed_caption_e.attrib.get('value') else []
 | 
			
		||||
 | 
			
		||||
    def _real_extract(self, url):
 | 
			
		||||
        video_id = self._match_id(url)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user