diff --git a/public/assets/favicon.ico b/public/assets/favicon.ico
index 88f888b..679f4f9 100644
Binary files a/public/assets/favicon.ico and b/public/assets/favicon.ico differ
diff --git a/server/fetch.html b/server/fetch.html
deleted file mode 100644
index bf80920..0000000
--- a/server/fetch.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
- Document
-
-
-
-
-
\ No newline at end of file
diff --git a/server/routes/download.js b/server/routes/download.js
index 8259516..497e8cd 100644
--- a/server/routes/download.js
+++ b/server/routes/download.js
@@ -1,6 +1,7 @@
const express = require("express");
const router = express.Router();
const { exec } = require("child_process");
+const path = require("path");
router.post("/", (req, res) => {
const options = {
@@ -14,6 +15,12 @@ router.post("/", (req, res) => {
return res.status(400).send("❌ URL manquante !");
}
+ // Récupérer le chemin Freedom Loader Output depuis app.locals
+ const outputFolder = req.app.locals.outputFolder;
+
+ // Construire le template de sortie
+ const outputTemplate = path.join(outputFolder, "%(title)s.%(ext)s");
+
let command = `yt-dlp`;
if (options.audioOnly) {
@@ -25,18 +32,18 @@ router.post("/", (req, res) => {
}
command += ` -f ${options.quality}`;
- command += ` -o "downloads/%(title)s.%(ext)s"`;
+ command += ` -o "${outputTemplate}"`;
command += ` "${options.url}"`;
console.log("🔧 Commande finale :", command);
exec(command, (error, stdout, stderr) => {
if (error) {
- console.error("Erreur yt-dlp :", stderr || error.message);
+ console.error("❌ Erreur yt-dlp :", stderr || error.message);
return res.status(500).send("❌ Erreur pendant le téléchargement.");
}
- console.log("yt-dlp terminé :", stdout);
+ console.log("✅ yt-dlp terminé :", stdout);
res.send("✅ Téléchargement terminé !");
});
});
diff --git a/server/server.js b/server/server.js
index 1a7ed50..c1d5263 100644
--- a/server/server.js
+++ b/server/server.js
@@ -1,27 +1,38 @@
const express = require("express");
-const { exec } = require("child_process"); // Requis pour écrire dans un terminal
+const { exec } = require("child_process");
const fs = require("fs");
+const path = require("path");
const app = express();
+// import des routes
const infoRoute = require("./routes/info");
const downloadRoute = require("./routes/download");
-app.use(express.urlencoded({ extended: true })); // Pour pouvoir recevoir plein de truc
+// Chemin vers le dossier Téléchargements de l'utilisateur
+const downloadsPath = path.join(process.env.USERPROFILE, 'Downloads');
-if (!fs.existsSync("downloads")) { // Si jamais il n'y a pas de dossier downloads
- fs.mkdirSync("downloads"); // On le crée
+// Créer un sous-dossier "Freedom Loader Output" dans le dossier Téléchargements
+const outputFolder = path.join(downloadsPath, 'Freedom Loader Output');
+
+if (!fs.existsSync(outputFolder)) {
+ fs.mkdirSync(outputFolder);
+ console.log("✅ Dossier Freedom Loader Output créé dans Téléchargements.");
}
-app.use(express.static("public")); // Ca c'est pour ouvrir le serveur, comme ça plus besoin d'utiliser live server
+// rendre le chemin accessible à tes routes
+app.locals.outputFolder = outputFolder;
+app.use(express.urlencoded({ extended: true }));
-// route pour le formulaire de téléchargement
-app.use("/download", downloadRoute); // on associe le contenu de infos.js à /download
-// route pour l'info
-app.use("/info", infoRoute); // on associe le contenu de infos.js à /info
+// servir le dossier public comme site
+app.use(express.static("public"));
+// routes
+app.use("/download", downloadRoute); // ex: /download
+app.use("/info", infoRoute); // ex: /info
app.listen(8080, () => {
- console.log("🟢 Serveur prêt sur http://localhost:8080 \n Bonjour!");
+ console.log("🟢 Serveur prêt sur http://localhost:8080");
+ console.log("📂 Dossier de sortie :", outputFolder);
});