mirror of
				https://gitlab.com/ytdl-org/youtube-dl.git
				synced 2025-11-04 08:37:07 -05:00 
			
		
		
		
	[tvplay] Add support for subtitles (Closes #10194)
This commit is contained in:
		@@ -4,7 +4,10 @@ from __future__ import unicode_literals
 | 
				
			|||||||
import re
 | 
					import re
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .common import InfoExtractor
 | 
					from .common import InfoExtractor
 | 
				
			||||||
from ..compat import compat_str
 | 
					from ..compat import (
 | 
				
			||||||
 | 
					    compat_str,
 | 
				
			||||||
 | 
					    compat_urlparse,
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
from ..utils import (
 | 
					from ..utils import (
 | 
				
			||||||
    parse_iso8601,
 | 
					    parse_iso8601,
 | 
				
			||||||
    qualities,
 | 
					    qualities,
 | 
				
			||||||
@@ -226,7 +229,8 @@ class TVPlayIE(InfoExtractor):
 | 
				
			|||||||
                    'ext': ext,
 | 
					                    'ext': ext,
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if video_url.startswith('rtmp'):
 | 
					                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:
 | 
					                    if not m:
 | 
				
			||||||
                        continue
 | 
					                        continue
 | 
				
			||||||
                    fmt.update({
 | 
					                    fmt.update({
 | 
				
			||||||
@@ -242,6 +246,17 @@ class TVPlayIE(InfoExtractor):
 | 
				
			|||||||
                formats.append(fmt)
 | 
					                formats.append(fmt)
 | 
				
			||||||
        self._sort_formats(formats)
 | 
					        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 {
 | 
					        return {
 | 
				
			||||||
            'id': video_id,
 | 
					            'id': video_id,
 | 
				
			||||||
            'title': title,
 | 
					            'title': title,
 | 
				
			||||||
@@ -251,4 +266,5 @@ class TVPlayIE(InfoExtractor):
 | 
				
			|||||||
            'view_count': int_or_none(video.get('views', {}).get('total')),
 | 
					            'view_count': int_or_none(video.get('views', {}).get('total')),
 | 
				
			||||||
            'age_limit': int_or_none(video.get('age_limit', 0)),
 | 
					            'age_limit': int_or_none(video.get('age_limit', 0)),
 | 
				
			||||||
            'formats': formats,
 | 
					            'formats': formats,
 | 
				
			||||||
 | 
					            'subtitles': subtitles,
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user