mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-07-29 18:25:47 +02:00
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
const express = require("express");
|
|
const router = express.Router();
|
|
const { exec } = require("child_process");
|
|
const path = require("path");
|
|
|
|
router.post("/", (req, res) => {
|
|
const options = {
|
|
url: req.body.url,
|
|
audioOnly: req.body.audioOnly === "1",
|
|
quality: req.body.quality || "best",
|
|
subtitles: req.body.subs === "1",
|
|
};
|
|
|
|
if (!options.url) {
|
|
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) {
|
|
command += " --extract-audio --audio-format mp3";
|
|
}
|
|
|
|
if (options.subtitles) {
|
|
command += " --write-subs --sub-lang en";
|
|
}
|
|
|
|
command += ` -f ${options.quality}`;
|
|
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);
|
|
return res.status(500).send("❌ Erreur pendant le téléchargement.");
|
|
}
|
|
|
|
console.log("✅ yt-dlp terminé :", stdout);
|
|
res.send("✅ Téléchargement terminé !");
|
|
});
|
|
});
|
|
|
|
module.exports = router;
|