diff --git a/index.html b/index.html index 3f6817c..37bf37f 100644 --- a/index.html +++ b/index.html @@ -7,10 +7,12 @@ -
+ + MP3?
+ \ No newline at end of file diff --git a/server/fetch.html b/server/fetch.html new file mode 100644 index 0000000..bf80920 --- /dev/null +++ b/server/fetch.html @@ -0,0 +1,31 @@ + + + + + + Document + + + + + \ No newline at end of file diff --git a/server/server.js b/server/server.js index 9a32377..3f0604e 100644 --- a/server/server.js +++ b/server/server.js @@ -4,45 +4,63 @@ const fs = require("fs"); const path = require("path"); const app = express(); + app.use(express.urlencoded({ extended: true })); -app.use(express.json()); +app.use(express.json()); const downloadDir = path.join(__dirname, "downloads"); if (!fs.existsSync(downloadDir)) { fs.mkdirSync(downloadDir); } -app.post("/download", (req, res) => { +const allowedFormats = ["best", "mp3", "mp4"]; +app.post("/download", (req, res) => { const videoUrl = req.body.url; + let format = req.body.format || "best"; if (!videoUrl) { - return res.status(400).send("❌ URL manquante !"); + return res.status(400).send("❌ Il faut envoyer une URL !"); + } + + if (!allowedFormats.includes(format)) { + format = "best"; } const safeUrl = `"${videoUrl.replace(/"/g, '\\"')}"`; - const command = `yt-dlp -o "downloads/%(title)s.%(ext)s" ${safeUrl}`; + let command = ""; - console.log("▶️ Commande yt-dlp exécutée :", command); + if (format === "mp3") { + command = `yt-dlp --extract-audio --audio-format mp3 -o "downloads/%(title)s.%(ext)s" ${safeUrl}`; + } else { + command = `yt-dlp -f ${format} -o "downloads/%(title)s.%(ext)s" ${safeUrl}`; + } + + console.log("▶️ Commande exécutée :", command); exec(command, (error, stdout, stderr) => { - console.log("=== SORTIE ==="); - console.log(stdout); - - console.log("=== STDERR ==="); - console.error(stderr); + if (stdout) console.log("=== SORTIE ===", stdout); + if (stderr) console.error("=== STDERR ===", stderr); if (error) { - console.error("=== ERREUR ==="); - console.error(error); - return res.status(500).send(`❌ Erreur yt-dlp : ${stderr || error.message}`); + console.error("=== ERREUR ===", error); + return res.status(500).send(`❌ Problème pendant le téléchargement : ${stderr || error.message}`); } res.send("✅ Téléchargement lancé !"); }); }); +app.get("/downloads", (req, res) => { + fs.readdir(downloadDir, (err, files) => { + if (err) { + return res.status(500).send("Erreur de lecture du dossier"); + } + res.json(files); + }); +}); + const PORT = 8080; app.listen(PORT, () => { console.log(`🟢 Serveur prêt : http://localhost:${PORT}`);