【发布时间】:2017-05-01 14:25:43
【问题描述】:
我正在尝试使用 ytdl-core 模块将 youtube 音频下载到我的本地磁盘(我计算机上的某个路径)。
我创建了一个 API,我可以使用请求的 youtube url 和我希望保存文件的目标文件夹来调用它。
app.get('/api/downloadYoutubeVideo', function (req, res) {
var videoUrl = req.query.videoUrl;
var destDir = req.query.destDir;
ytdl.getInfo(videoUrl, function(err, info){
var videoName = info.title.replace('|','').toString('ascii');
var stream = ytdl(videoUrl, { filter: 'audioonly'})
.pipe(fs.createWriteStream(destDir + '\\' + videoName + '.mp3'));
stream.on('finish', function() {
res.writeHead(204);
res.end();
});
});
});
问题是当我在本地主机上调用 api 时(例如:localhost:11245/api/downloadYoutubeVideo?videoUrl=https://www.youtube.com/watch?v=E5kJDWQSBUk&destDir=C:\test) 它工作正常,文件确实下载到“C:\test”。
但是当我调用遥控器上的 api 时(例如:http://sometest.cloudno.de/api/downloadYoutubeVideo?videoUrl=https://www.youtube.com/watch?v=02BAlrAkuCE&destDir=C:\test)
它不会在目录中创建文件...
我已经搜索了答案,但没有找到...
【问题讨论】:
标签: javascript node.js youtube stream pipe