aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbashonly <88596187+bashonly@users.noreply.github.com>2025-02-18 18:28:34 -0600
committerGitHub <noreply@github.com>2025-02-19 00:28:34 +0000
commit5c4c2ddfaa47988b4d50c1ad4988badc0b4f30c2 (patch)
tree8ac6b674a1a84021e9b06071602d8bd6e91113ad
parentec17fb16e8d69d4e3e10fb73bf3221be8570dfee (diff)
[ie/francetvinfo.fr] Fix extractor (#12402)
Closes #12366 Authored by: bashonly
-rw-r--r--yt_dlp/extractor/francetv.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/yt_dlp/extractor/francetv.py b/yt_dlp/extractor/francetv.py
index c6036b306..5c9f8e36d 100644
--- a/yt_dlp/extractor/francetv.py
+++ b/yt_dlp/extractor/francetv.py
@@ -9,6 +9,7 @@ from ..utils import (
ExtractorError,
clean_html,
determine_ext,
+ extract_attributes,
filter_dict,
format_field,
int_or_none,
@@ -18,7 +19,7 @@ from ..utils import (
unsmuggle_url,
url_or_none,
)
-from ..utils.traversal import traverse_obj
+from ..utils.traversal import find_element, traverse_obj
class FranceTVBaseInfoExtractor(InfoExtractor):
@@ -460,11 +461,16 @@ class FranceTVInfoIE(FranceTVBaseInfoExtractor):
self.url_result(dailymotion_url, DailymotionIE.ie_key())
for dailymotion_url in dailymotion_urls])
- video_id = self._search_regex(
- (r'player\.load[^;]+src:\s*["\']([^"\']+)',
- r'id-video=([^@]+@[^"]+)',
- r'<a[^>]+href="(?:https?:)?//videos\.francetv\.fr/video/([^@]+@[^"]+)"',
- r'(?:data-id|<figure[^<]+\bid)=["\']([\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})'),
- webpage, 'video id')
+ video_id = (
+ traverse_obj(webpage, (
+ {find_element(tag='button', attr='data-cy', value='francetv-player-wrapper', html=True)},
+ {extract_attributes}, 'id'))
+ or self._search_regex(
+ (r'player\.load[^;]+src:\s*["\']([^"\']+)',
+ r'id-video=([^@]+@[^"]+)',
+ r'<a[^>]+href="(?:https?:)?//videos\.francetv\.fr/video/([^@]+@[^"]+)"',
+ r'(?:data-id|<figure[^<]+\bid)=["\']([\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12})'),
+ webpage, 'video id')
+ )
return self._make_url_result(video_id, url=url)