我正在尝试使用YTDL托管一个包含NodeJS应用程序的YouTube下载器,以便可以在我的学校访问它,我正在创建一个包含大量用于媒体制作工具的网站。我基本上只是复制粘贴整个内容,因为我对NodeJS一无所知。所以我让它在本地作为Express服务器工作,然后我需要弄清楚如何打开获取视频文件的服务器。
我尝试首先使用LocalTunnel,但效果很好,但是因为每次都没有实际选择时,我将不得不更改LocalTunnel网址。
然后我看到lambda是个好主意,所以我花了几个小时随机按下AWS控制台上的按钮,并设法使其正常工作。除了AWS Lambda的最大调用有效负载为6MB,一旦我将视频的长度增加到几秒钟以上,它就会达到最大。
我有点不知所措。路由器上的端口转发似乎永远无法正常工作,无论如何我还是希望将其托管在外部。我读过某个地方的文章,可以先将其上传到S3,但对于我尝试做的事情似乎有点过多。
'use strict';
const express = require('express');
const ytdl = require('ytdl-core');
const app = express();
const cors = require('cors');
app.use(cors());
//app.get('/', (req, res) => res.send('Hello world!'))
app.get('/', (req,res) => {
var URL = req.query.URL;
console.log("downloading: " + URL);
res.header('Content-Disposition', 'attachment; filename="video.mp4"');
ytdl(URL, {
format: 'mp4'
}).pipe(res);
});
module.exports = app;
这是我的lambda函数上的代码(如果有帮助的话)。