aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Appriou <nicolas.appriou@gmail.com>2024-01-19 00:23:29 +0100
committerGitHub <noreply@github.com>2024-01-19 00:23:29 +0100
commit393b487a4ea391c44e811505ec98531031d7e81e (patch)
tree131c9a07710803ebc2524ca0618942b5f5a6683d
parent4d9dc0abe24ad5d9d22a16f40fc61137dcd103f7 (diff)
[ie/ArteTV] Separate closed captions (#8231)
Authored by: Nicals, seproDev Co-authored-by: sepro <4618135+seproDev@users.noreply.github.com>
-rw-r--r--yt_dlp/extractor/arte.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/yt_dlp/extractor/arte.py b/yt_dlp/extractor/arte.py
index 139a3a729..92b4900f9 100644
--- a/yt_dlp/extractor/arte.py
+++ b/yt_dlp/extractor/arte.py
@@ -70,7 +70,24 @@ class ArteTVIE(ArteTVBaseIE):
'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/q82dTTfyuCXupPsGxXsd7B/940x530',
'upload_date': '20230930',
'ext': 'mp4',
- }
+ },
+ }, {
+ 'url': 'https://www.arte.tv/de/videos/085374-003-A/im-hohen-norden-geboren/',
+ 'info_dict': {
+ 'id': '085374-003-A',
+ 'ext': 'mp4',
+ 'description': 'md5:ab79ec7cc472a93164415b4e4916abf9',
+ 'timestamp': 1702872000,
+ 'thumbnail': 'https://api-cdn.arte.tv/img/v2/image/TnyHBfPxv3v2GEY3suXGZP/940x530',
+ 'duration': 2594,
+ 'title': 'Die kurze Zeit der Jugend',
+ 'alt_title': 'Im hohen Norden geboren',
+ 'upload_date': '20231218',
+ 'subtitles': {
+ 'fr': 'mincount:1',
+ 'fr-acc': 'mincount:1',
+ },
+ },
}]
_GEO_BYPASS = True
@@ -121,6 +138,16 @@ class ArteTVIE(ArteTVBaseIE):
),
}
+ @staticmethod
+ def _fix_accessible_subs_locale(subs):
+ updated_subs = {}
+ for lang, sub_formats in subs.items():
+ for format in sub_formats:
+ if format.get('url', '').endswith('-MAL.m3u8'):
+ lang += '-acc'
+ updated_subs.setdefault(lang, []).append(format)
+ return updated_subs
+
def _real_extract(self, url):
mobj = self._match_valid_url(url)
video_id = mobj.group('id')
@@ -174,6 +201,7 @@ class ArteTVIE(ArteTVBaseIE):
secondary_formats.extend(fmts)
else:
formats.extend(fmts)
+ subs = self._fix_accessible_subs_locale(subs)
self._merge_subtitles(subs, target=subtitles)
elif stream['protocol'] in ('HTTPS', 'RTMP'):