From f1ace898a5d93fb4ba0cbb3c49c53b1edf540dee Mon Sep 17 00:00:00 2001 From: Son Phan Trung Date: Wed, 25 Dec 2024 19:55:47 +0700 Subject: [PATCH 1/6] add fitness blender --- yt_dlp/extractor/_extractors.py | 1 + yt_dlp/extractor/fitnessblender.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 yt_dlp/extractor/fitnessblender.py diff --git a/yt_dlp/extractor/_extractors.py b/yt_dlp/extractor/_extractors.py index 967010826e..590b9632d9 100644 --- a/yt_dlp/extractor/_extractors.py +++ b/yt_dlp/extractor/_extractors.py @@ -653,6 +653,7 @@ from .filmon import ( ) from .filmweb import FilmwebIE from .firsttv import FirstTVIE +from .fitnessblender import FitnessBlenderIE from .fivetv import FiveTVIE from .flextv import FlexTVIE from .flickr import FlickrIE diff --git a/yt_dlp/extractor/fitnessblender.py b/yt_dlp/extractor/fitnessblender.py new file mode 100644 index 0000000000..b96c4f0765 --- /dev/null +++ b/yt_dlp/extractor/fitnessblender.py @@ -0,0 +1,15 @@ +from .brightcove import BrightcoveNewIE +from .common import InfoExtractor + + +class FitnessBlenderIE(InfoExtractor): + _VALID_URL = r'https?://(?:www\.)?fitnessblender\.com/videos/[\w-]+/(?PT)?(?P\d+)' + def _real_extract(self, url): + video_id = self._match_valid_url(url).group('id') + + account_id = '6036648099001' + player_id = 'skIgx8kLxj' + + return self.url_result( + f'https://players.brightcove.net/{account_id}/{player_id}_default/index.html?videoId={video_id}', + BrightcoveNewIE) From b0c13586f203774c59c7d3fc074d42f29de4ff24 Mon Sep 17 00:00:00 2001 From: Son Phan Trung Date: Wed, 1 Jan 2025 20:07:26 +0700 Subject: [PATCH 2/6] add TESTS --- yt_dlp/extractor/fitnessblender.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/yt_dlp/extractor/fitnessblender.py b/yt_dlp/extractor/fitnessblender.py index b96c4f0765..757e93b51d 100644 --- a/yt_dlp/extractor/fitnessblender.py +++ b/yt_dlp/extractor/fitnessblender.py @@ -4,6 +4,16 @@ from .common import InfoExtractor class FitnessBlenderIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?fitnessblender\.com/videos/[\w-]+/(?PT)?(?P\d+)' + _TESTS = [{ + 'url': 'https://www.fitnessblender.com/page/fb-plus-player-test', + 'info_dict': { + 'id': '6076568195001', + 'ext': 'mp4', + 'title': 'Sports Endurance Workout - Stamina, Speed, and Agility Workout', + 'thumbnail': r're:^https://.+\.jpg', + }, + 'params': {'skip_download': 'm3u8'}, + }] def _real_extract(self, url): video_id = self._match_valid_url(url).group('id') From 6fd35f0cf6ab56c4eacbe564c4b38d849881fcc7 Mon Sep 17 00:00:00 2001 From: Son Phan Trung Date: Fri, 10 Jan 2025 09:58:30 +0700 Subject: [PATCH 3/6] Update yt_dlp/extractor/fitnessblender.py Co-authored-by: pukkandan --- yt_dlp/extractor/fitnessblender.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/yt_dlp/extractor/fitnessblender.py b/yt_dlp/extractor/fitnessblender.py index 757e93b51d..1bdb97bd8a 100644 --- a/yt_dlp/extractor/fitnessblender.py +++ b/yt_dlp/extractor/fitnessblender.py @@ -3,7 +3,8 @@ from .common import InfoExtractor class FitnessBlenderIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?fitnessblender\.com/videos/[\w-]+/(?PT)?(?P\d+)' + _VALID_URL = r'https?://(?:www\.)?fitnessblender\.com/videos/[\w-]+/T?(?P\d+)' + _TESTS = [{ 'url': 'https://www.fitnessblender.com/page/fb-plus-player-test', 'info_dict': { From 94367ebabb1428f8af25f5c49673ca15ea017c0c Mon Sep 17 00:00:00 2001 From: Son Phan Trung Date: Fri, 10 Jan 2025 09:58:39 +0700 Subject: [PATCH 4/6] Update yt_dlp/extractor/fitnessblender.py Co-authored-by: pukkandan --- yt_dlp/extractor/fitnessblender.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/yt_dlp/extractor/fitnessblender.py b/yt_dlp/extractor/fitnessblender.py index 1bdb97bd8a..978d8b2ca1 100644 --- a/yt_dlp/extractor/fitnessblender.py +++ b/yt_dlp/extractor/fitnessblender.py @@ -18,9 +18,7 @@ class FitnessBlenderIE(InfoExtractor): def _real_extract(self, url): video_id = self._match_valid_url(url).group('id') - account_id = '6036648099001' - player_id = 'skIgx8kLxj' - return self.url_result( - f'https://players.brightcove.net/{account_id}/{player_id}_default/index.html?videoId={video_id}', - BrightcoveNewIE) + f'https://players.brightcove.net/6036648099001/skIgx8kLxj_default/index.html?videoId={video_id}', + BrightcoveNewIE, video_id) + From a36296dcf15c86536d6ad269aa303f1907d82d75 Mon Sep 17 00:00:00 2001 From: Son Phan Trung Date: Fri, 10 Jan 2025 10:05:28 +0700 Subject: [PATCH 5/6] fix mismatched test --- yt_dlp/extractor/fitnessblender.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yt_dlp/extractor/fitnessblender.py b/yt_dlp/extractor/fitnessblender.py index 978d8b2ca1..1135a47417 100644 --- a/yt_dlp/extractor/fitnessblender.py +++ b/yt_dlp/extractor/fitnessblender.py @@ -6,11 +6,11 @@ class FitnessBlenderIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?fitnessblender\.com/videos/[\w-]+/T?(?P\d+)' _TESTS = [{ - 'url': 'https://www.fitnessblender.com/page/fb-plus-player-test', + 'url': 'https://www.fitnessblender.com/videos/lower-body-strength-hiit-workout-strength-sets-with-hiit-cardio-burst', 'info_dict': { - 'id': '6076568195001', + 'id': '6296677311001', 'ext': 'mp4', - 'title': 'Sports Endurance Workout - Stamina, Speed, and Agility Workout', + 'title': 'WO 2022-02-02 Ks Lower Body HIIT and Strength', 'thumbnail': r're:^https://.+\.jpg', }, 'params': {'skip_download': 'm3u8'}, From 5e9c7815e53cd196b50431690129c10868d5c2c7 Mon Sep 17 00:00:00 2001 From: Son Phan Trung Date: Sun, 12 Jan 2025 09:51:51 +0700 Subject: [PATCH 6/6] fix matching --- yt_dlp/extractor/fitnessblender.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yt_dlp/extractor/fitnessblender.py b/yt_dlp/extractor/fitnessblender.py index 1135a47417..cbe5cbba76 100644 --- a/yt_dlp/extractor/fitnessblender.py +++ b/yt_dlp/extractor/fitnessblender.py @@ -3,7 +3,7 @@ from .common import InfoExtractor class FitnessBlenderIE(InfoExtractor): - _VALID_URL = r'https?://(?:www\.)?fitnessblender\.com/videos/[\w-]+/T?(?P\d+)' + _VALID_URL = r'https?://(?:www\.)?fitnessblender\.com/videos/' _TESTS = [{ 'url': 'https://www.fitnessblender.com/videos/lower-body-strength-hiit-workout-strength-sets-with-hiit-cardio-burst',