diff options
author | Sergey M․ <dstftw@gmail.com> | 2016-08-05 22:17:32 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2016-08-05 22:17:32 +0700 |
commit | f0d31c624e51322e26889df417152b833549bb75 (patch) | |
tree | 342358b29799223305767cb8e0e9638248c2667d | |
parent | 08c655906c6afd41ca56e784f35791cfdb727d3d (diff) |
[tvplay] Add support for subtitles (Closes #10194)
-rw-r--r-- | youtube_dl/extractor/tvplay.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/youtube_dl/extractor/tvplay.py b/youtube_dl/extractor/tvplay.py index 918f8f8bc..0c072a6ae 100644 --- a/youtube_dl/extractor/tvplay.py +++ b/youtube_dl/extractor/tvplay.py @@ -4,7 +4,10 @@ from __future__ import unicode_literals import re from .common import InfoExtractor -from ..compat import compat_str +from ..compat import ( + compat_str, + compat_urlparse, +) from ..utils import ( parse_iso8601, qualities, @@ -226,7 +229,8 @@ class TVPlayIE(InfoExtractor): 'ext': ext, } if video_url.startswith('rtmp'): - m = re.search(r'^(?P<url>rtmp://[^/]+/(?P<app>[^/]+))/(?P<playpath>.+)$', video_url) + m = re.search( + r'^(?P<url>rtmp://[^/]+/(?P<app>[^/]+))/(?P<playpath>.+)$', video_url) if not m: continue fmt.update({ @@ -242,6 +246,17 @@ class TVPlayIE(InfoExtractor): formats.append(fmt) self._sort_formats(formats) + # TODO: webvtt in m3u8 + subtitles = {} + sami_path = video.get('sami_path') + if sami_path: + lang = self._search_regex( + r'_([a-z]{2})\.xml', sami_path, 'lang', + default=compat_urlparse.urlparse(url).netloc.rsplit('.', 1)[-1]) + subtitles[lang] = [{ + 'url': sami_path, + }] + return { 'id': video_id, 'title': title, @@ -251,4 +266,5 @@ class TVPlayIE(InfoExtractor): 'view_count': int_or_none(video.get('views', {}).get('total')), 'age_limit': int_or_none(video.get('age_limit', 0)), 'formats': formats, + 'subtitles': subtitles, } |