Compare commits

...

13 Commits

Author SHA1 Message Date
Alejandro Garcia
ad62655f1f
Merge 301d51e362 into 4b5eec0aaa 2024-11-25 08:27:06 +05:30
Jakob Kruse
4b5eec0aaa
[ie/chaturbate] Fix support for non-public streams (#11624)
Fix bug in 720b3dc453

Closes #11623
Authored by: jkruse
2024-11-24 22:20:30 +00:00
EGA-SUPREMO
301d51e362 fix regex for url 2024-06-13 07:37:10 -04:00
Alejandro Garcia
82ac58dec4
Merge branch 'master' into extractor-cablecasttv 2024-06-13 07:19:32 -04:00
EGA-SUPREMO
8ebdf57c9c change regex to match most cableCastTV websites 2024-05-19 19:15:19 -04:00
EGA-SUPREMO
b93cee03ee Merge branch 'extractor-cablecasttv' of github.com:EGA-SUPREMO/yt-dlp into extractor-cablecasttv 2024-05-19 16:38:14 -04:00
EGA-SUPREMO
c640231330 add support for subtitles 2024-05-19 16:35:53 -04:00
Alejandro Garcia
c61f86c641
Merge branch 'master' into extractor-cablecasttv 2024-05-19 15:18:57 -04:00
EGA-SUPREMO
f86f46a010 merge conflict 2024-05-19 15:12:08 -04:00
EGA-SUPREMO
52de89b43c clean code 2024-05-19 12:14:46 -04:00
EGA-SUPREMO
ec01710224 clean code 2024-05-19 12:09:27 -04:00
EGA-SUPREMO
151b383fe1 add regex for video webpage url 2024-05-19 11:53:01 -04:00
EGA-SUPREMO
4070c00ba7 add cablecasttv extrator 2024-05-17 09:09:46 -04:00
3 changed files with 55 additions and 8 deletions

View File

@ -315,6 +315,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,
}

View File

@ -59,16 +59,15 @@ def _extract_from_api(self, video_id, tld):
'Accept': 'application/json', 'Accept': 'application/json',
}, fatal=False, impersonate=True) or {} }, fatal=False, impersonate=True) or {}
status = response.get('room_status')
if status != 'public':
if error := self._ERROR_MAP.get(status):
raise ExtractorError(error, expected=True)
self.report_warning('Falling back to webpage extraction')
return None
m3u8_url = response.get('url') m3u8_url = response.get('url')
if not m3u8_url: if not m3u8_url:
status = response.get('room_status')
if error := self._ERROR_MAP.get(status):
raise ExtractorError(error, expected=True)
if status == 'public':
self.raise_geo_restricted() self.raise_geo_restricted()
self.report_warning(f'Got status "{status}" from API; falling back to webpage extraction')
return None
return { return {
'id': video_id, 'id': video_id,