From 62140b56e5d3403ba43714894816d1f568485e08 Mon Sep 17 00:00:00 2001 From: HobbyistDev Date: Sun, 7 Aug 2022 08:12:23 +0900 Subject: [PATCH 1/2] [tviplayer] Improve _VALID_URL regex, add more test --- yt_dlp/extractor/tviplayer.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/yt_dlp/extractor/tviplayer.py b/yt_dlp/extractor/tviplayer.py index 96a27a3a9..f60cfb050 100644 --- a/yt_dlp/extractor/tviplayer.py +++ b/yt_dlp/extractor/tviplayer.py @@ -3,7 +3,7 @@ class TVIPlayerIE(InfoExtractor): - _VALID_URL = r'https?://tviplayer\.iol\.pt(/programa/[\w-]+/[a-f0-9]+)?/video/(?P[a-f0-9]+)' + _VALID_URL = r'https?://tviplayer\.iol\.pt(/programa/[\w-]+/[a-f0-9]+)?/\w+/(?P\w+)' _TESTS = [{ 'url': 'https://tviplayer.iol.pt/programa/jornal-das-8/53c6b3903004dc006243d0cf/video/61c8e8b90cf2c7ea0f0f71a9', 'info_dict': { @@ -27,6 +27,7 @@ class TVIPlayerIE(InfoExtractor): 'season_number': 1, } }, { + # no /programa/ 'url': 'https://tviplayer.iol.pt/video/62c4131c0cf2f9a86eac06bb', 'info_dict': { 'id': '62c4131c0cf2f9a86eac06bb', @@ -37,6 +38,18 @@ class TVIPlayerIE(InfoExtractor): 'duration': 148, 'season_number': 2, } + }, { + # episodio url + 'url': 'https://tviplayer.iol.pt/programa/para-sempre/61716c360cf2365a5ed894c4/episodio/t1e187', + 'info_dict': { + 'id': 't1e187', + 'ext': 'mp4', + 'season': 'Season 1', + 'title': 'Quem denunciou Pedro?', + 'thumbnail': 'https://www.iol.pt/multimedia/oratvi/multimedia/imagem/id/62eda30b0cf2ea367d48973b/', + 'duration': 1250, + 'season_number': 1, + } }] def _real_initialize(self): From a006a37dd36f8dfb59076fe145958d607cbd3c00 Mon Sep 17 00:00:00 2001 From: HobbyistDev Date: Sun, 7 Aug 2022 08:20:05 +0900 Subject: [PATCH 2/2] [TVIplayer] change `self.wms_auth_sign_token` to `TVIPlayer._TOKEN` --- yt_dlp/extractor/tviplayer.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/yt_dlp/extractor/tviplayer.py b/yt_dlp/extractor/tviplayer.py index f60cfb050..8221d90e0 100644 --- a/yt_dlp/extractor/tviplayer.py +++ b/yt_dlp/extractor/tviplayer.py @@ -51,11 +51,13 @@ class TVIPlayerIE(InfoExtractor): 'season_number': 1, } }] + _TOKEN = None def _real_initialize(self): - self.wms_auth_sign_token = self._download_webpage( - 'https://services.iol.pt/matrix?userId=', 'wmsAuthSign', - note='Trying to get wmsAuthSign token') + if TVIPlayerIE._TOKEN is None: + TVIPlayerIE._TOKEN = self._download_webpage( + 'https://services.iol.pt/matrix?userId=', 'wmsAuthSign', + note='Trying to get wmsAuthSign token') def _real_extract(self, url): video_id = self._match_id(url) @@ -65,7 +67,7 @@ def _real_extract(self, url): r'