1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-07-09 06:48:30 +00:00
This commit is contained in:
Alejandro Garcia 2025-06-11 03:54:44 +09:00 committed by GitHub
commit 1ba23a301e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 48 additions and 0 deletions

View File

@ -316,6 +316,7 @@
from .buzzfeed import BuzzFeedIE from .buzzfeed import BuzzFeedIE
from .byutv import BYUtvIE from .byutv import BYUtvIE
from .c56 import C56IE from .c56 import C56IE
from .cablecasttv import CableCastTVIE
from .caffeinetv import CaffeineTVIE from .caffeinetv import CaffeineTVIE
from .callin import CallinIE from .callin import CallinIE
from .caltrans import CaltransIE from .caltrans import CaltransIE

View File

@ -0,0 +1,47 @@
from .common import InfoExtractor
class CableCastTVIE(InfoExtractor):
_VALID_URL = r'https?://(?:[a-z\-\.]+\.cablecast\.tv/show/|[a-z\-\.]+/CablecastPublicSite/show/)(?P<id>\d+)'
_TESTS = [{
'url': 'https://wctv.wilmette.com/CablecastPublicSite/show/532',
'md5': '17e7ed129582babf6d1ae5c3b9d70d18',
'info_dict': {
'id': '532',
'ext': 'mp4',
'title': 'Village Board Meeting 4/24/24',
},
}, {
'url': 'https://capitoltvri.cablecast.tv/show/9199?site=1',
'only_matching': True,
}, {
'url': 'https://king-county-tv.cablecast.tv/show/504',
'only_matching': True,
}, {
'url': 'https://wctv.wilmette.com/CablecastPublicSite/show/53/',
'only_matching': True,
}]
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
url_video_page = self._html_search_regex(r'<iframe[^>]*class=\"trms-player\"[^>]*src=\"([^\"]+)\"', webpage, 'url_video_webpage')
webpage_video = self._download_webpage(url_video_page, video_id)
video_url = self._html_search_regex(r'"([^\"]*\.m3u8)"', webpage_video, 'video URL')
formats = []
subtitles = {}
fmts, subs = self._extract_m3u8_formats_and_subtitles(video_url, video_id, 'mp4', fatal=False)
formats.extend(fmts)
self._merge_subtitles(subs, target=subtitles)
title = self._og_search_title(webpage) or self._html_search_regex(r'<title>(.+?)</title>', webpage, 'title')
return {
'id': video_id,
'title': title,
'formats': formats,
'subtitles': subtitles,
}