diff --git a/package.json b/package.json index 2a92db3..ce83e13 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "real-debrid-downloader", - "version": "1.5.68", + "version": "1.5.69", "description": "Real-Debrid Downloader Desktop (Electron + React + TypeScript)", "main": "build/main/main/main.js", "author": "Sucukdeluxe", diff --git a/src/main/extractor.ts b/src/main/extractor.ts index c0b1d64..bece033 100644 --- a/src/main/extractor.ts +++ b/src/main/extractor.ts @@ -1289,12 +1289,19 @@ async function runExternalExtract( } jvmFailureReason = jvmResult.errorText || "JVM-Extractor fehlgeschlagen"; + const jvmFailureLower = jvmFailureReason.toLowerCase(); const isUnsupportedMethod = jvmFailureReason.includes("UNSUPPORTEDMETHOD"); - if (backendMode === "jvm" && !isUnsupportedMethod) { + const isCodecError = jvmFailureLower.includes("registered codecs") + || jvmFailureLower.includes("can not open") + || jvmFailureLower.includes("cannot open archive"); + const shouldFallbackToLegacy = isUnsupportedMethod || isCodecError; + if (backendMode === "jvm" && !shouldFallbackToLegacy) { throw new Error(jvmFailureReason); } if (isUnsupportedMethod) { logger.warn(`JVM-Extractor: Komprimierungsmethode nicht unterstützt, fallback auf Legacy: ${path.basename(archivePath)}`); + } else if (isCodecError) { + logger.warn(`JVM-Extractor: Archiv-Format nicht erkannt, fallback auf Legacy: ${path.basename(archivePath)}`); } else { logger.warn(`JVM-Extractor Fehler, fallback auf Legacy: ${jvmFailureReason}`); }