api/match-action: convert ISO 639-1 language codes to ISO 639-2

This commit is contained in:
wukko
2025-06-19 17:46:15 +06:00
parent b91c0c0013
commit 672b3dcf46
2 changed files with 58 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import { createResponse } from "./request.js";
import { audioIgnore } from "./service-config.js";
import { createStream } from "../stream/manage.js";
import { splitFilenameExtension } from "../misc/utils.js";
import { convertSubtitleLanguage } from "../misc/subtitle-lang.js";
const extraProcessingTypes = ["merge", "remux", "mute", "audio", "gif"];
@@ -238,6 +239,19 @@ export default function({
responseType = "local-processing";
}
// extractors return ISO 639-1 language codes,
// but video players expect ISO 639-2, so we convert them here
if (defaultParams.fileMetadata?.sublanguage) {
const code = convertSubtitleLanguage(defaultParams.fileMetadata.sublanguage);
if (code) {
defaultParams.fileMetadata.sublanguage = code;
} else {
// if a language code couldn't be converted,
// then we don't want it at all
delete defaultParams.fileMetadata.sublanguage;
}
}
return createResponse(
responseType,
{ ...defaultParams, ...params }