From 0f634dba3afdc429ece8839b02f6d56c27b7973a Mon Sep 17 00:00:00 2001 From: FrankZ85 <43293037+FrankZ85@users.noreply.github.com> Date: Wed, 15 Nov 2023 23:38:52 +0100 Subject: [PATCH] [ie/tv5mondeplus] Extract subtitles (#4209) Closes #4205 Authored by: FrankZ85 --- yt_dlp/extractor/tv5mondeplus.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/yt_dlp/extractor/tv5mondeplus.py b/yt_dlp/extractor/tv5mondeplus.py index 4da1b26d1a..a445fae853 100644 --- a/yt_dlp/extractor/tv5mondeplus.py +++ b/yt_dlp/extractor/tv5mondeplus.py @@ -84,6 +84,13 @@ class TV5MondePlusIE(InfoExtractor): }] _GEO_BYPASS = False + @staticmethod + def _extract_subtitles(data_captions): + subtitles = {} + for f in traverse_obj(data_captions, ('files', lambda _, v: url_or_none(v['file']))): + subtitles.setdefault(f.get('label') or 'fra', []).append({'url': f['file']}) + return subtitles + def _real_extract(self, url): display_id = self._match_id(url) webpage = self._download_webpage(url, display_id) @@ -176,6 +183,8 @@ class TV5MondePlusIE(InfoExtractor): 'duration': duration, 'upload_date': upload_date, 'formats': formats, + 'subtitles': self._extract_subtitles(self._parse_json( + traverse_obj(vpl_data, ('data-captions', {str}), default='{}'), display_id, fatal=False)), 'series': series, 'episode': episode, }