const express = require('express'); const cors = require('cors'); const ytdl = require('ytdl-core'); const app = express(); const PORT = process.env.PORT || 3000; app.use(cors()); app.listen(PORT, err => { if(err) throw err; console.log("server running"); }); app.get('/downloadmp3', (req, res, next) => { try { var url = req.query.url; let title = 'audio'; ytdl.getBasicInfo(url, { format: 'mp4' }, (err, info) => { if (err) throw err; title = info.player_response.videoDetails.title.replace(/[^\x00-\x7F]/g, ""); }); res.header('Content-Disposition', `attachment; filename="${title}.mp3"`); ytdl(url, { format: 'mp3', filter: 'audioonly', }).pipe(res); } catch (err) { console.error(err); } }); app.get('/downloadmp4', async (req, res, next) => { try { let URL = req.query.url; let title = 'video'; await ytdl.getBasicInfo(URL, { format: 'mp4' }, (err, info) => { title = info.player_response.videoDetails.title.replace(/[^\x00-\x7F]/g, ""); }); res.header('Content-Disposition', `attachment; filename="${title}.mp4"`); ytdl(URL, { format: 'mp4', }).pipe(res); } catch (err) { console.error(err); } });