// server.js
const express = require('express');
const { exec } = require('child_process');
const app = express();
const port = 3000;
app.use(express.static(__dirname)); // Serve index.html
app.get('/download', (req, res) => {
const videoURL = req.query.url;
if (!videoURL) return res.status(400).send('Missing URL');
const command = `yt-dlp -f bestvideo[height<=1080]+bestaudio --merge-output-format mp4 -o - "${videoURL}"`;
res.setHeader('Content-Disposition', 'attachment; filename="video.mp4"');
res.setHeader('Content-Type', 'video/mp4');
const process = exec(command, { maxBuffer: Infinity });
process.stdout.pipe(res);
process.stderr.on('data', data => {
console.error(data.toString());
});
process.on('close', code => {
console.log(`Process exited with code ${code}`);
});
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});