From f4637b746cd9044f4d9d1bb42912c9f9b8f00c29 Mon Sep 17 00:00:00 2001 From: wukko Date: Wed, 25 Jun 2025 20:07:34 +0600 Subject: [PATCH] api/rutube: add subtitles --- api/src/processing/match.js | 1 + api/src/processing/services/rutube.js | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/api/src/processing/match.js b/api/src/processing/match.js index fb0c9588..1e493be6 100644 --- a/api/src/processing/match.js +++ b/api/src/processing/match.js @@ -221,6 +221,7 @@ export default async function({ host, patternMatch, params, isSession, isApiKey key: patternMatch.key, quality: params.videoQuality, isAudioOnly, + subtitleLang, }); break; diff --git a/api/src/processing/services/rutube.js b/api/src/processing/services/rutube.js index 5b502452..9fe37d34 100644 --- a/api/src/processing/services/rutube.js +++ b/api/src/processing/services/rutube.js @@ -65,8 +65,21 @@ export default async function(obj) { artist: play.author.name.trim(), } + let subtitles; + if (obj.subtitleLang && play.captions?.length) { + const subtitle = play.captions.find( + s => ["webvtt", "srt"].includes(s.format) && s.code.startsWith(obj.subtitleLang) + ); + + if (subtitle) { + subtitles = subtitle.file; + fileMetadata.sublanguage = obj.subtitleLang; + } + } + return { urls: matchingQuality.uri, + subtitles, isHLS: true, filenameAttributes: { service: "rutube",