const ytdl = require('ytdl-core');
const url = require('url');
exports.endpoint = function(req, res) {
var params = url.parse(req.url, true)
var id = params.query.id;
var quality = params.query.quality || "small";
var container = params.query.container || "mp4";
if(!id) return res.sendStatus(400);
var url_youtube = 'https://www.youtube.com/watch?v='+id;
var youtube = ytdl(url_youtube,{filter: function(format) {
return (container?((new RegExp(container)).test(format.container) || (new RegExp(container)).test(format.type)):true) &&
(
(new RegExp(quality)).test(format.quality) ||
(new RegExp(quality)).test(format.quality_label) ||
(new RegExp(quality)).test(format.type) ||
(new RegExp(quality)).test(format.resolution)
);
}
});
youtube.on("info",(info,format)=>{
res.setHeader("Content-Type", format.type);
});
youtube.on("error",(err)=>{
console.log(`Error: ${err}`);
res.end();
})
youtube.pipe(res);
}