dl / index.js
Twan07's picture
Update index.js
2890325 verified
const express = require('express');
const { exec } = require('child_process');
const app = express();
const PORT = 7860;
app.get('/', (req, res) => {
res.send('🎬 Welcome to yt-dlp API');
});
app.get('/download', async (req, res) => {
const url = req.query.url;
if (!url) return res.status(400).json({ error: 'Missing url parameter' });
const command = `yt-dlp -J "${url}"`;
exec(command, { maxBuffer: 1024 * 1000 }, (err, stdout, stderr) => {
if (err) return res.status(500).json({ error: stderr || err.message });
try {
const data = JSON.parse(stdout);
res.json({
title: data.title,
uploader: data.uploader,
duration: data.duration,
formats: data.formats.map(f => ({
format_id: f.format_id,
ext: f.ext,
resolution: f.resolution || f.height + 'p',
url: f.url
}))
});
} catch (e) {
res.status(500).json({ error: 'Failed to parse yt-dlp output' });
}
});
});
app.listen(PORT, () => {
console.log(`API server running on http://localhost:${PORT}`);
});