From 15a5856e9d849d7967c05a4e45a0954cda448954 Mon Sep 17 00:00:00 2001 From: Niklas Date: Wed, 3 Oct 2018 15:21:22 +0200 Subject: [PATCH 1/3] [ard] ARDIE: support subtitles --- youtube_dl/extractor/ard.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index 6bf8f61eb..344244743 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -13,6 +13,7 @@ from ..utils import ( parse_duration, unified_strdate, xpath_text, + xpath_attr, update_url_query, url_or_none, ) @@ -257,6 +258,12 @@ class ARDIE(InfoExtractor): video_node, './broadcastDate')) thumbnail = xpath_text(video_node, './/teaserImage//variant/url') + subtitles = [] + for variant, ext in (('dataTimedTextNoOffset', 'ttml'), ('dataTimedTextVtt', 'vtt')): + url = xpath_attr(video_node, './%s' % variant, 'url') + if url: + subtitles.append({'ext': ext, 'url': url}) + formats = [] for a in video_node.findall('.//asset'): f = { @@ -279,6 +286,7 @@ class ARDIE(InfoExtractor): return { 'id': mobj.group('id'), 'formats': formats, + 'subtitles': {'de': subtitles}, 'display_id': display_id, 'title': video_node.find('./title').text, 'duration': parse_duration(video_node.find('./duration').text), From 4ad89eb36ba553b2fbd55f4678e53dbd91ba45c0 Mon Sep 17 00:00:00 2001 From: Niklas Date: Fri, 5 Oct 2018 00:30:15 +0200 Subject: [PATCH 2/3] maintain alphabetic order --- youtube_dl/extractor/ard.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index 344244743..ed53093b9 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -12,8 +12,8 @@ from ..utils import ( int_or_none, parse_duration, unified_strdate, - xpath_text, xpath_attr, + xpath_text, update_url_query, url_or_none, ) From 0434e3e22f746ed85b1fad48153ac7ace5fc57ac Mon Sep 17 00:00:00 2001 From: Niklas Date: Fri, 5 Oct 2018 00:32:16 +0200 Subject: [PATCH 3/3] [ard] prevent empty list for a key --- youtube_dl/extractor/ard.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/youtube_dl/extractor/ard.py b/youtube_dl/extractor/ard.py index ed53093b9..b3e604587 100644 --- a/youtube_dl/extractor/ard.py +++ b/youtube_dl/extractor/ard.py @@ -286,7 +286,7 @@ class ARDIE(InfoExtractor): return { 'id': mobj.group('id'), 'formats': formats, - 'subtitles': {'de': subtitles}, + 'subtitles': {'de': subtitles} if subtitles else None, 'display_id': display_id, 'title': video_node.find('./title').text, 'duration': parse_duration(video_node.find('./duration').text),