From 307697b72f39981b51efb5bb307e3cd9c71874dc Mon Sep 17 00:00:00 2001 From: lukassup Date: Tue, 9 Jul 2024 18:10:47 +0300 Subject: [PATCH] [ie/tvplay]: fix broken extractor --- yt_dlp/extractor/tvplay.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/yt_dlp/extractor/tvplay.py b/yt_dlp/extractor/tvplay.py index b4a927a1d3..8e8bcc1b2a 100644 --- a/yt_dlp/extractor/tvplay.py +++ b/yt_dlp/extractor/tvplay.py @@ -216,8 +216,8 @@ class TVPlayHomeIE(InfoExtractor): https?:// (?:tv3?)? play\.(?:tv3|skaties)\.(?Plv|lt|ee)/ - (?Plives/)? - [^?#&]+(?:episode|programme|clip)-(?P\d+) + (lives/)? + [^?#&]+(?Pepisode|programme|clip|live)-(?P\d+) ''' _TESTS = [{ 'url': 'https://play.tv3.lt/series/gauju-karai-karveliai,serial-2343791/serija-8,episode-2343828', @@ -263,18 +263,30 @@ class TVPlayHomeIE(InfoExtractor): }, { 'url': 'https://tv3play.skaties.lv/clips/tv3-zinas-valsti-lidz-15novembrim-bus-majsede,clip-3464509', 'only_matching': True, + }, { + 'url': 'https://play.tv3.lt/lives/power-hit-radio,live-4856680', + 'only_matching': True, + }, { + 'url': 'https://play.tv3.lt/show/tv3-plus,live-4929289', + 'only_matching': True, }] def _real_extract(self, url): - country, is_live, video_id = self._match_valid_url(url).groups() + country, category, video_id = self._match_valid_url(url).groups() - api_path = 'lives/programmes' if is_live else 'vods' + api_path = { + 'live': 'lives', + 'programme': 'lives/programmes', + }.get(category) or 'vods' data = self._download_json( urljoin(url, f'/api/products/{api_path}/{video_id}?platform=BROWSER&lang={country.upper()}'), video_id) - video_type = 'CATCHUP' if is_live else 'MOVIE' - stream_id = data['programRecordingId'] if is_live else video_id + video_type = { + 'live': 'LIVE', + 'programme': 'CATCHUP', + }.get(category) or 'MOVIE' + stream_id = data.get('programRecordingId') or video_id stream = self._download_json( urljoin(url, f'/api/products/{stream_id}/videos/playlist?videoType={video_type}&platform=BROWSER'), video_id) formats, subtitles = self._extract_m3u8_formats_and_subtitles(