about summary refs log tree commit diff
diff options
context:
space:
mode:
authordirkf <fieldhouse@gmx.net>2022-02-07 13:28:21 +0000
committerdirkf <fieldhouse@gmx.net>2022-02-07 13:47:38 +0000
commit47b0c8697a39bbd64d5b922f81ad74ee4d2a3136 (patch)
treef6cdcd94cec7e8e150148674bc9894d55d194ac4
parent734dfbb4e3ad4ee4d98609dc902ac864b94033a4 (diff)
downloadyoutube-dl-47b0c8697a39bbd64d5b922f81ad74ee4d2a3136.tar.gz
youtube-dl-47b0c8697a39bbd64d5b922f81ad74ee4d2a3136.tar.xz
youtube-dl-47b0c8697a39bbd64d5b922f81ad74ee4d2a3136.zip
[ARD] Back-port subtitle extraction from yt-dlp PR 2409
Authored by: fstirlitz
Fixes #30543
Closes #17766 (thanks ngdio)
-rw-r--r--youtube_dl/extractor/ard.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py
index d45a9fe52..a5b1f54d5 100644
--- a/youtube_dl/extractor/ard.py
+++ b/youtube_dl/extractor/ard.py
@@ -332,9 +332,24 @@ class ARDIE(InfoExtractor):
             formats.append(f)
         self._sort_formats(formats)
 
+        _SUB_FORMATS = (
+            ('./dataTimedText', 'ttml'),
+            ('./dataTimedTextNoOffset', 'ttml'),
+            ('./dataTimedTextVtt', 'vtt'),
+        )
+
+        subtitles = {}
+        for subsel, subext in _SUB_FORMATS:
+            for node in video_node.findall(subsel):
+                subtitles.setdefault('de', []).append({
+                    'url': node.attrib['url'],
+                    'ext': subext,
+                })
+
         return {
             'id': xpath_text(video_node, './videoId', default=display_id),
             'formats': formats,
+            'subtitles': subtitles,
             'display_id': display_id,
             'title': video_node.find('./title').text,
             'duration': parse_duration(video_node.find('./duration').text),