diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py index f161a33509..f4eb00f059 100644 --- a/yt_dlp/extractor/_extractors.py +++ b/yt_dlp/extractor/_extractors.py @@ -1369,6 +1369,7 @@ from .nova import ( NovaIE, ) from .novaplay import NovaPlayIE +from .nowcanal import NowCanalIE from .nowness import ( NownessIE, NownessPlaylistIE, diff --git a/yt_dlp/extractor/nowcanal.py b/yt_dlp/extractor/nowcanal.py new file mode 100644 index 0000000000..46a1eeb7cb --- /dev/null +++ b/yt_dlp/extractor/nowcanal.py @@ -0,0 +1,37 @@ +from .brightcove import BrightcoveNewIE +from .common import InfoExtractor + + +class NowCanalIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?nowcanal\.pt(?:/[\w-]+)+/detalhe/(?P[\w-]+)' + _TESTS = [{ + 'url': 'https://www.nowcanal.pt/ultimas/detalhe/pedro-sousa-hjulmand-pode-ter-uma-saida-limpa-do-sporting-daqui-a-um-ano', + 'md5': '047f17cb783e66e467d703e704bbc95d', + 'info_dict': { + 'id': '6376598467112', + 'ext': 'mp4', + 'title': 'Pedro Sousa «Hjulmand pode ter uma saída limpa do Sporting daqui a um ano»', + 'description': '', + 'uploader_id': '6108484330001', + 'duration': 65.237, + 'thumbnail': r're:^https://.+\.jpg', + 'timestamp': 1754440620, + 'upload_date': '20250806', + 'tags': ['now'], + }, + }, { + 'url': 'https://www.nowcanal.pt/programas/frente-a-frente/detalhe/frente-a-frente-eva-cruzeiro-ps-e-rita-matias-chega', + 'only_matching': True, + }] + + _BC_URL_TMPL = 'https://players.brightcove.net/6108484330001/chhIqzukMq_default/index.html?videoId={}' + + def _real_extract(self, url): + display_id = self._match_id(url) + webpage = self._download_webpage(url, display_id) + + video_id = self._search_json( + r'videoHandler\.addBrightcoveVideoWithJson\(\[', + webpage, 'video data', display_id)['brightcoveVideoId'] + + return self.url_result(self._BC_URL_TMPL.format(video_id), BrightcoveNewIE)