From cafcf657a4e16f0bcf90195f8e35bfcce7faad8e Mon Sep 17 00:00:00 2001 From: remitamine Date: Sat, 20 Feb 2016 22:02:03 +0100 Subject: [PATCH] add more subtitles mime types to mimetype2ext and fix the platform subtitle extraction --- youtube_dl/extractor/common.py | 12 ++---------- youtube_dl/extractor/theplatform.py | 3 ++- youtube_dl/utils.py | 4 ++++ 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/youtube_dl/extractor/common.py b/youtube_dl/extractor/common.py index f411ea7633..c85dcda0cb 100644 --- a/youtube_dl/extractor/common.py +++ b/youtube_dl/extractor/common.py @@ -46,6 +46,7 @@ xpath_with_ns, determine_protocol, parse_duration, + mimetype2ext, ) @@ -1277,16 +1278,7 @@ def _parse_smil_subtitles(self, smil, namespace=None, subtitles_lang='en'): if not src or src in urls: continue urls.append(src) - ext = textstream.get('ext') or determine_ext(src) - if not ext: - type_ = textstream.get('type') - SUBTITLES_TYPES = { - 'text/vtt': 'vtt', - 'text/srt': 'srt', - 'application/smptett+xml': 'tt', - } - if type_ in SUBTITLES_TYPES: - ext = SUBTITLES_TYPES[type_] + ext = textstream.get('ext') or determine_ext(src) or mimetype2ext(textstream.get('type')) lang = textstream.get('systemLanguage') or textstream.get('systemLanguageName') or textstream.get('lang') or subtitles_lang subtitles.setdefault(lang, []).append({ 'url': src, diff --git a/youtube_dl/extractor/theplatform.py b/youtube_dl/extractor/theplatform.py index 755f816fff..93d8715716 100644 --- a/youtube_dl/extractor/theplatform.py +++ b/youtube_dl/extractor/theplatform.py @@ -21,6 +21,7 @@ sanitized_Request, unsmuggle_url, xpath_with_ns, + mimetype2ext, ) default_ns = 'http://www.w3.org/2005/SMIL21/Language' @@ -68,7 +69,7 @@ def get_metadata(self, path, video_id): for caption in captions: lang, src, mime = caption.get('lang', 'en'), caption.get('src'), caption.get('type') subtitles[lang] = [{ - 'ext': 'srt' if mime == 'text/srt' else 'ttml', + 'ext': mimetype2ext(mime), 'url': src, }] diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py index a2c6780ca3..6978a10e4c 100644 --- a/youtube_dl/utils.py +++ b/youtube_dl/utils.py @@ -1846,7 +1846,11 @@ def mimetype2ext(mt): return { '3gpp': '3gp', + 'smptett+xml': 'tt', + 'srt': 'srt', + 'ttaf+xml': 'dfxp', 'ttml+xml': 'ttml', + 'vtt': 'vtt', 'x-flv': 'flv', 'x-mp4-fragmented': 'mp4', 'x-ms-wmv': 'wmv',