aboutsummaryrefslogtreecommitdiff
path: root/youtube_dl/extractor/tvplay.py
diff options
context:
space:
mode:
authorSergey M․ <dstftw@gmail.com>2016-08-05 22:17:32 +0700
committerSergey M․ <dstftw@gmail.com>2016-08-05 22:17:32 +0700
commitf0d31c624e51322e26889df417152b833549bb75 (patch)
tree342358b29799223305767cb8e0e9638248c2667d /youtube_dl/extractor/tvplay.py
parent08c655906c6afd41ca56e784f35791cfdb727d3d (diff)
downloadyoutube-dl-f0d31c624e51322e26889df417152b833549bb75.tar.xz
[tvplay] Add support for subtitles (Closes #10194)
Diffstat (limited to 'youtube_dl/extractor/tvplay.py')
-rw-r--r--youtube_dl/extractor/tvplay.py20
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,
}