позволить пользователю скачать видео с YouTube в формате mp3 - PullRequest
0 голосов
/ 23 сентября 2019

Я создаю простой YouTube для сайта mp3-загрузчика с помощью nodejs, и он работает с этим кодом (ytdl-core библиотека)

 res.header('Content-Disposition', 'attachment; filename="'+ transliterate(info.title) +'.mp3"');
 ytdl(url,{
    quality: 'highestaudio'
 })
 .pipe(res)

, но загрузка только аудио занимает слишком много времени.Я проверил это на этом видео , и это занимает 20-30 секунд.

, затем я попробовал этот код:

 let stream = ytdl(url)
 ffmpeg(stream)
    .format('mp3')
    .audioBitrate(700)
    .saveToFile(`public/${info.video_id}-${transliterate(info.title)}.mp3`)
    .on('progress', function(progress) {
       console.log('Processing: ' + progress.percent + '% done');
    })
    .on('end', ()=>{
       res.download(`public/${info.video_id}-${transliterate(info.title)}.mp3`, `${transliterate(info.title)}.mp3`);
    })

это работает, но это занимает слишкомтакже много времени (20-30 сек);

так есть ли способ ускорить время загрузки?(без очень маленького битрейта)

или есть лучший способ сделать это?

PS: я бы предпочел первый способ загрузки, потому что мне не нравится сохранять файлы на моем локальном компьютере, а затем отправлятьэто пользователю.Спасибо!

...