]>
Commit | Line | Data |
---|---|---|
8258f445 | 1 | from .common import InfoExtractor |
5a2eebc7 | 2 | from .wat import WatIE |
3 | from ..utils import ExtractorError, int_or_none | |
4 | from ..utils.traversal import traverse_obj | |
8258f445 RA |
5 | |
6 | ||
7 | class LCIIE(InfoExtractor): | |
5a2eebc7 | 8 | _VALID_URL = r'https?://(?:www\.)?(?:lci|tf1info)\.fr/(?:[^/?#]+/)+[\w-]+-(?P<id>\d+)\.html' |
1a7cd9c4 | 9 | _TESTS = [{ |
5a2eebc7 | 10 | 'url': 'https://www.tf1info.fr/replay-lci/videos/video-24h-pujadas-du-vendredi-24-mai-6708-2300831.html', |
11 | 'info_dict': { | |
12 | 'id': '14113788', | |
13 | 'ext': 'mp4', | |
14 | 'title': '24H Pujadas du vendredi 24 mai 2024', | |
15 | 'thumbnail': 'https://photos.tf1.fr/1280/720/24h-pujadas-du-24-mai-2024-55bf2d-0@1x.jpg', | |
16 | 'upload_date': '20240524', | |
17 | 'duration': 6158, | |
18 | }, | |
19 | 'params': { | |
20 | 'skip_download': True, | |
21 | }, | |
22 | }, { | |
1a7cd9c4 | 23 | 'url': 'https://www.tf1info.fr/politique/election-presidentielle-2022-second-tour-j-2-marine-le-pen-et-emmanuel-macron-en-interview-de-lci-vendredi-soir-2217486.html', |
8258f445 | 24 | 'info_dict': { |
1a7cd9c4 | 25 | 'id': '13875948', |
8258f445 | 26 | 'ext': 'mp4', |
1a7cd9c4 MD |
27 | 'title': 'md5:660df5481fd418bc3bbb0d070e6fdb5a', |
28 | 'thumbnail': 'https://photos.tf1.fr/1280/720/presidentielle-2022-marine-le-pen-et-emmanuel-macron-invites-de-lci-ce-vendredi-9c0e73-e1a036-0@1x.jpg', | |
29 | 'upload_date': '20220422', | |
30 | 'duration': 33, | |
31 | }, | |
32 | 'params': { | |
33 | 'skip_download': True, | |
34 | }, | |
35 | }, { | |
36 | 'url': 'https://www.lci.fr/politique/election-presidentielle-2022-second-tour-j-2-marine-le-pen-et-emmanuel-macron-en-interview-de-lci-vendredi-soir-2217486.html', | |
37 | 'only_matching': True, | |
38 | }] | |
8258f445 RA |
39 | |
40 | def _real_extract(self, url): | |
41 | video_id = self._match_id(url) | |
42 | webpage = self._download_webpage(url, video_id) | |
5a2eebc7 | 43 | next_data = self._search_nextjs_data(webpage, video_id) |
44 | wat_id = traverse_obj(next_data, ( | |
45 | 'props', 'pageProps', 'page', 'tms', 'videos', {dict.keys}, ..., {int_or_none}, any)) | |
46 | if wat_id is None: | |
47 | raise ExtractorError('Could not find wat_id') | |
48 | ||
49 | return self.url_result(f'wat:{wat_id}', WatIE, str(wat_id)) |