add more subtitles mime types to mimetype2ext and fix the platform subtitle extraction

This commit is contained in:
remitamine 2016-02-20 22:02:03 +01:00
parent 7360db05b4
commit cafcf657a4
3 changed files with 8 additions and 11 deletions

View File

@ -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,

View File

@ -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,
}]

View File

@ -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',