我想让用户能够使用node-ytdl下载youtube视频。
例如,当客户端对某个路由发出GET请求时,视频应作为响应下载。

  var ytdl = require('ytdl-core');
  var express= require('express');

   //Init App Instance
    var app=express();



 app.get('/video',function(req,res){


 var ytstream=ytdl("https://www.youtube.com/watch?v=hgvuvdyzYFc");


ytstream.on('data',function(data){
   res.write(data);
})

ytstream.on('end',function(data){
    res.send();
})

})

上面是我的nodejs代码。即使在网络中似乎可以下载响应文件,也无法将用户下载为文件。我不想在服务器上存储任何文件,如果有人可以帮助我解决问题,那就太好了。

最佳答案

好的,先创建一个数组,然后在data事件上向其中添加数据。在end上,发送数组。这是一个例子:

const ytdl = require("ytdl-core"),
      app = require("express")();

app.get("/video", (req, res) => {
  let arr = [], vid = ytdl("https://www.youtube.com/watch?v=hgvuvdyzYFc");
  vid.on("data", d => arr.push(d));
  vid.on("end", () => res.send(arr));
});

10-08 11:59