From 4070c00ba77a1dabbb1ea7dc1fdae47b0bc90034 Mon Sep 17 00:00:00 2001 From: EGA-SUPREMO Date: Fri, 17 May 2024 09:09:46 -0400 Subject: [PATCH] add cablecasttv extrator --- yt_dlp/extractor/_extractors.py | 1 + yt_dlp/extractor/cablecasttv.py | 55 +++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 yt_dlp/extractor/cablecasttv.py diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py index 42034275b9..c0c7801032 100644 --- a/yt_dlp/extractor/_extractors.py +++ b/yt_dlp/extractor/_extractors.py @@ -289,6 +289,7 @@ from .byutv import BYUtvIE from .c56 import C56IE from .cableav import CableAVIE +from .cablecasttv import CableCastTVIE from .callin import CallinIE from .caltrans import CaltransIE from .cam4 import CAM4IE diff --git a/yt_dlp/extractor/cablecasttv.py b/yt_dlp/extractor/cablecasttv.py new file mode 100644 index 0000000000..6f35d2e108 --- /dev/null +++ b/yt_dlp/extractor/cablecasttv.py @@ -0,0 +1,55 @@ +from .common import InfoExtractor + +import re + + +class CableCastTVIE(InfoExtractor): + _VALID_URL = r'https://wctv\.wilmette\.com/CablecastPublicSite/show/(?P\d+)' + _TESTS = [{ + 'url': 'https://wctv.wilmette.com/CablecastPublicSite/show/532', + 'md5': 'fc12bce4a9c1335f153500c8fea6e1a8', + 'info_dict': { + 'id': '532', + 'ext': 'mp4', + 'title': 'Village Board Meeting 4/24/24', + }, + }, { + 'url': 'https://fyptt.to/10382/beautiful-livestream-tits-and-nipples-slip-from-girls-who-loves-talking-with-their-viewers/', + 'only_matching': True, + }, { + 'url': 'https://fyptt.to/120/small-tits-fit-blonde-dancing-naked-at-the-front-door-on-tiktok', + 'only_matching': True, + }, { + 'url': 'https://fkbae.to/18', + 'only_matching': True, + }] + + def _real_extract(self, url): + video_id = self._match_id(url) + webpage = self._download_webpage(url, video_id) + + formats = [] + format_url = self._html_search_regex(r'"embedURL":"([^"]+)"', webpage, 'video URL') + format_url = re.sub(r'\\', '', format_url) + + webpage_video = self._download_webpage(format_url, video_id) + + match = re.search(r'(https:\/\/[^"]+\.mp4)', webpage_video) + format_url = match.group(1) + formats.append({ + 'url': format_url, + 'format_id': 'default', + }) + + title = self._html_search_regex(r'(.+?)', webpage, 'title') + +# base_url = re.search(r'^(https?://[a-zA-Z0-9_-]+\.to)', url).group(1) +# http_headers = {'Referer': base_url} + + return { + 'id': video_id, + 'title': title, + 'formats': formats, +# 'http_headers': http_headers + } +