diff --git a/apiServer.js b/apiServer.js index 61e849d..65013b4 100644 --- a/apiServer.js +++ b/apiServer.js @@ -11,6 +11,7 @@ const { resolveImdbId } = require('./utils/tmdb'); const { applyFilters } = require('./utils/streamFilters'); const app = express(); +app.set('trust proxy', 1); // Conditionally mount proxy routes early so downstream handlers can use them if (config.enableProxy) { diff --git a/proxy/proxyServer.js b/proxy/proxyServer.js index ff56de4..f7e5075 100644 --- a/proxy/proxyServer.js +++ b/proxy/proxyServer.js @@ -95,7 +95,9 @@ function extractOriginalUrl(proxyUrl) { while (decoded.includes('%2F')) { try { decoded = decodeURIComponent(decoded); } catch { break; } } - return decoded; + if (decoded.startsWith('http://') || decoded.startsWith('https://')) return decoded; + // If it's just a path (like Vidlink /proxy/wiwii/...), keep the full original URL + return proxyUrl; } } if (url.searchParams.has('url')) return decodeURIComponent(url.searchParams.get('url')); diff --git a/utils/config.js b/utils/config.js index 11a786a..e2052e9 100644 --- a/utils/config.js +++ b/utils/config.js @@ -173,7 +173,8 @@ function loadConfig() { showboxCacheDir: process.env.SHOWBOX_CACHE_DIR || null, // Proxy/env paths removed; always direct connections disableUrlValidation: process.env.DISABLE_URL_VALIDATION, - disable4khdhubUrlValidation: process.env.DISABLE_4KHDHUB_URL_VALIDATION + disable4khdhubUrlValidation: process.env.DISABLE_4KHDHUB_URL_VALIDATION, + enableProxy: process.env.ENABLE_PROXY }; // Dynamic provider enable flags from env