如何将视频文件下载到浏览器

时间:2019-08-10 16:55:15

标签: javascript node.js express video youtube-api

我做了下面的明确表达,从youtube下载视频,但该视频文件进入了我的项目文件夹,而没有下载到浏览器中。就像它只能在localhost中工作。 这是我的项目文件夹:

node_modules
src
  -app.js
static
  -index.html
  -styles.css
package.json
'THE FILE DOWNLOADED'

这是我编写的代码

const express = require('express')
const router = express.Router()
const fs = require('fs')
const ytdl = require('ytdl-core')
const youtube = require('simple-youtube-api')

router.post('/downloadByUrl', async (req, res) => {
  let url = req.body.url
  await downloadVideo(url)
  return res.redirect('/')
})

router.post('/downloadByName', async (req, res) => {
  let videoName = req.body.videoName
  let youtubeClient = new youtube('MY YOUTUBE API KEY')

  await youtubeClient.searchVideos(videoName, 1)
  .then(results => {
    downloadVideo('https://youtu.be/' + results[0].id)
  })
  .catch(console.log)

  return res.redirect('/')
})

function downloadVideo(URL) {
  let videoReadableStream = ytdl(URL)

  ytdl.getInfo(URL, (err, info) => {
    let title = info.title.replace('|', '').toString('ascii')
    let stream = videoReadableStream.pipe(fs.createWriteStream(title + '.mp4'))
    stream.on('finish', () => {
      console.log('Finished')
    })
  })
}

module.exports = router

我想托管我的网站,以便可以将文件下载到浏览器的“下载”部分。

我该怎么做?

0 个答案:

没有答案