diff --git a/api/src/misc/language-codes.js b/api/src/misc/language-codes.js index c18006b5..804e3e55 100644 --- a/api/src/misc/language-codes.js +++ b/api/src/misc/language-codes.js @@ -49,5 +49,6 @@ const maps = { } export const convertLanguageCode = (code) => { + code = code.split("-")[0].split("_")[0]; return maps[code.length]?.[code.toLowerCase()] || null; } diff --git a/api/src/processing/match-action.js b/api/src/processing/match-action.js index 555705e8..6d1b0254 100644 --- a/api/src/processing/match-action.js +++ b/api/src/processing/match-action.js @@ -263,8 +263,9 @@ export default function({ // extractors usually return ISO 639-1 language codes, // but video players expect ISO 639-2, so we convert them here - if (defaultParams.fileMetadata?.sublanguage?.length === 2) { - const code = convertLanguageCode(defaultParams.fileMetadata.sublanguage); + const sublanguage = defaultParams.fileMetadata?.sublanguage; + if (sublanguage && sublanguage.length !== 3) { + const code = convertLanguageCode(sublanguage); if (code) { defaultParams.fileMetadata.sublanguage = code; } else {