From 77edd22302e3821556637498d6bcfdd1d02dc4a4 Mon Sep 17 00:00:00 2001 From: szbk Date: Sun, 14 Dec 2025 15:56:19 +0300 Subject: [PATCH] =?UTF-8?q?feat(youtube):=20=C3=A7erez=20varl=C4=B1=C4=9F?= =?UTF-8?q?=C4=B1na=20g=C3=B6re=20ekstrakt=C3=B6r=20arg=C3=BCmanlar=C4=B1n?= =?UTF-8?q?=C4=B1=20otomatik=20belirle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit YouTube video indirme işleminde çerez dosyası mevcut olduğunda web istemcisini, mevcut değilse android istemcisini otomatik olarak kullanacak şekilde ekstraktör argümanı mantığını güncelleştir. Bu değişiklik, çerez tabanlı erişim için daha uygun istemci seçimi sağlayarak YouTube indirme başarısını artırır. --- server/server.js | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/server/server.js b/server/server.js index 21fac9c..edcf223 100644 --- a/server/server.js +++ b/server/server.js @@ -77,7 +77,7 @@ const YT_COOKIES_PATH = process.env.YT_DLP_COOKIE_FILE || path.join(CACHE_DIR, "yt_cookies.txt"); const YT_EXTRACTOR_ARGS = - process.env.YT_DLP_EXTRACTOR_ARGS || "youtube:player-client=android"; + process.env.YT_DLP_EXTRACTOR_ARGS || null; let resolvedYtDlpBinary = null; const TMDB_API_KEY = process.env.TMDB_API_KEY; const TMDB_BASE_URL = "https://api.themoviedb.org/3"; @@ -740,22 +740,16 @@ function appendYoutubeLog(job, line) { function launchYoutubeJob(job) { const binary = getYtDlpBinary(); - const jsRuntimeValue = - process.env.YT_DLP_JS_RUNTIME || - process.env.NODE_BIN || - "/usr/bin/node"; - let jsRuntimeArg = jsRuntimeValue; - if (jsRuntimeValue && jsRuntimeValue.includes("=")) { - jsRuntimeArg = jsRuntimeValue; - } else if (jsRuntimeValue && jsRuntimeValue.includes(path.sep)) { - // Eğer yol verilmişse node= formatına çevir - jsRuntimeArg = `node=${jsRuntimeValue}`; - } + const jsRuntimeArg = process.env.YT_DLP_JS_RUNTIME || "node"; const cookieFile = (YT_COOKIES_PATH && fs.existsSync(YT_COOKIES_PATH) && YT_COOKIES_PATH) || null; + const extractorArgValue = + YT_EXTRACTOR_ARGS || + (cookieFile ? "youtube:player-client=web" : "youtube:player-client=android"); + const args = [ "-f", "bv+ba/b", @@ -766,7 +760,7 @@ function launchYoutubeJob(job) { "--js-runtime", jsRuntimeArg, "--extractor-args", - YT_EXTRACTOR_ARGS, + extractorArgValue, ...(cookieFile && fs.existsSync(cookieFile) ? ["--cookies", cookieFile] : []), @@ -778,7 +772,7 @@ function launchYoutubeJob(job) { logs: [], jsRuntime: jsRuntimeArg, cookies: cookieFile, - extractorArgs: YT_EXTRACTOR_ARGS + extractorArgs: extractorArgValue }; const child = spawn(binary, args, { cwd: job.savePath,