aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/extractor/rutube.py
diff options
context:
space:
mode:
Diffstat (limited to 'yt_dlp/extractor/rutube.py')
-rw-r--r--yt_dlp/extractor/rutube.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/yt_dlp/extractor/rutube.py b/yt_dlp/extractor/rutube.py
index abf9aec72..20365ac5d 100644
--- a/yt_dlp/extractor/rutube.py
+++ b/yt_dlp/extractor/rutube.py
@@ -13,7 +13,10 @@ from ..utils import (
unified_timestamp,
url_or_none,
)
-from ..utils.traversal import traverse_obj
+from ..utils.traversal import (
+ subs_list_to_dict,
+ traverse_obj,
+)
class RutubeBaseIE(InfoExtractor):
@@ -92,11 +95,11 @@ class RutubeBaseIE(InfoExtractor):
hls_url, video_id, 'mp4', fatal=False, m3u8_id='hls')
formats.extend(fmts)
self._merge_subtitles(subs, target=subtitles)
- for caption in traverse_obj(options, ('captions', lambda _, v: url_or_none(v['file']))):
- subtitles.setdefault(caption.get('code') or 'ru', []).append({
- 'url': caption['file'],
- 'name': caption.get('langTitle'),
- })
+ self._merge_subtitles(traverse_obj(options, ('captions', ..., {
+ 'id': 'code',
+ 'url': 'file',
+ 'name': ('langTitle', {str}),
+ }, all, {subs_list_to_dict(lang='ru')})), target=subtitles)
return formats, subtitles
def _download_and_extract_formats_and_subtitles(self, video_id, query=None):