我正在创建YouTube视频下载器,并使用
我已经完成了这个任务。
ytdl-core
库进行工作。该库无法下载带有音频的高质量视频,因为YouTube将其存储在另一个文件中,但我需要将其全部下载到一个文件中。我已经完成了这个任务。
app.get('/download', async (req, res, next) => {
const { videoId, format } = req.query;
ytdl.getInfo(videoId)
.then(info => {
const { title } = info.videoDetails;
res.header('Content-Disposition', `attachment; filename=${title}.mp4`);
const streams = {}
if (format === 'video') {
const resolution = req.query.resolution;
const videoFormat = chain(info.formats)
.filter(
format => format.height === +resolution && format.videoCodec?.startsWith('avc1')
)
.orderBy('fps', 'desc')
.head()
.value();
streams.video = ytdl(videoId, {
quality: videoFormat.itag,
format: 'mp4',
});
streams.audio = ytdl(videoId, { quality: 'highestaudio' });
}
});
});