我想让用户能够使用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));
});