From 9d6065c80a93e97d3f88166e0eb773e25f22b631 Mon Sep 17 00:00:00 2001 From: MasterAcnolo <68693319+MasterAcnolo@users.noreply.github.com> Date: Sun, 9 Nov 2025 13:19:54 +0100 Subject: [PATCH] Notify Error + Cookies Gestion --- build/error.png | Bin 0 -> 13223 bytes config.js | 2 +- package.json | 4 ++++ server/helpers/buildArgs.js | 4 ++++ server/helpers/getBrowser.js | 27 +++++++++++++++++++++++++++ server/helpers/notify.js | 17 ++++++++++++++++- server/routes/info.js | 15 ++++++++++++++- 7 files changed, 66 insertions(+), 3 deletions(-) create mode 100644 build/error.png create mode 100644 server/helpers/getBrowser.js diff --git a/build/error.png b/build/error.png new file mode 100644 index 0000000000000000000000000000000000000000..6db73a909a0a7e31481418110b004868a9e894bc GIT binary patch literal 13223 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 lzkP%9fB(S>o6ujOMB-M}4aQHc shell.openExternal("https://youtube.com/shorts/cN9f4s1Mf88?si=519QCVd_-fzJqRf1")); + notif.show(); +} + +module.exports = { + notifyDownloadFinished, + notifyCookiesBrowserError +}; \ No newline at end of file diff --git a/server/routes/info.js b/server/routes/info.js index d38c236..504ff77 100644 --- a/server/routes/info.js +++ b/server/routes/info.js @@ -3,6 +3,8 @@ const router = express.Router(); const { execFile } = require("child_process"); const { logger } = require("../logger"); const { userYtDlp } = require("../helpers/path"); +const getUserBrowser = require("../helpers/getBrowser") + // const ytDlpPath = path.join(__dirname, '../../ressources/yt-dlp.exe'); // const userYtDlp = path.join(process.env.APPDATA || process.env.USERPROFILE, 'FreedomLoader', 'yt-dlp.exe'); @@ -22,9 +24,20 @@ router.post("/", (req, res) => { logger.info(`Requête /info reçue pour ${url}`); - const args = ["--dump-single-json", "--ignore-errors", "--yes-playlist", url]; + const args = ["--dump-single-json", "--ignore-errors", "--yes-playlist", url, "--cookies-from-browser" , `${getUserBrowser()}`]; execFile(userYtDlp, args, { timeout: 30_000, maxBuffer: 10 * 1024 * 1024 }, (error, stdout, stderr) => { + + if (stderr) { + const lower = stderr.toLowerCase(); + if (lower.includes("sign in to confirm") || lower.includes("failed to decrypt") || lower.includes("could not copy")) { + const browser = getUserBrowser(); + return res.status(400).send( + `❌ Impossible d'extraire les cookies depuis ${browser}. Connectez-vous dans ce navigateur et réessayez.` + ); + } + } + if (error) { logger.error(`Erreur yt-dlp: ${error.message}`); if (stderr) logger.debug(`stderr: ${stderr}`);