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",