利用VPS上搭建属于自己的YouTube视频下载器
前言
有时候我们想保存一些 YouTube 上的视频,可能是教程、纪录片、或者喜欢的音乐现场。用网上那些下载网站吧,广告多、限速、还担心链接过两天就失效。研究了一圈发现,最靠谱的办法还是自己搭一个。
说实话一开始挺折腾的。试了好几个方案,要么动不动就报错下载不了,要么配置太复杂搞得人头大。后来找到了 MeTube 这个工具,界面干净,操作简单,贴个链接就能下载,用起来跟那些下载网站差不多,但它跑在你自己的服务器上,没人管你限你。
这篇文章就是把我踩过的坑、走对的路整理出来。你不用懂什么编程,只要有一台 VPS,会复制粘贴命令,就能跟着搭好。我尽量把每一步都写清楚,让你少走弯路。
⚠️ 以下教程全程在 Debian 12 系统 root 下进行
⚠️ 注意:需要墙外的 VPS
如果没有钱购买 GIA CN2 这类的专线,就可以套 CDN 作为加速。
一、界面展示

二、Cloudflare 配置
需要一个域名,并开启 CDN 小云朵,SSL 设置灵活,而 CDN 作为加速器,我所在的位置,晚高峰平均稳定 2.3MB/S。

三、部署 MeTube
3.1 更新系统
apt update && apt upgrade -y3.2 安装必要软件
apt install -y curl nginx apache2-utilscurl -fsSL https://get.docker.com | sh3.3 部署 MeTube
创建一个文件用来存放下载后的视频:
mkdir -p /opt/metube/downloadscd /opt/metube执行以下命令后回车:
cat > docker-compose.yml << 'EOF'services: metube: image: ghcr.io/alexta69/metube:latest container_name: metube restart: unless-stopped ports: - "127.0.0.1:8081:8081" volumes: - /opt/metube/downloads:/downloads environment: - TZ=Asia/Shanghai - OUTPUT_TEMPLATE=%(id)s.%(ext)sEOF之后安装部署:
docker compose up -d💡 设置每 4 小时删除一次下载到 VPS 里的视频,以防止磁盘占满
(crontab -l 2>/dev/null; echo "0 */4 * * * rm -rf /opt/metube/downloads/*") | crontab -四、配置账号密码登录
把 admin 和 admin123 换成你自己的,admin 为账号,admin123 为密码:
htpasswd -b -c /etc/nginx/.htpasswd admin admin123💡 设置每一秒同一个 IP 地址每秒最多只能向 Nginx 发送 1 个请求,为了防止登录爆破
cat > /etc/nginx/conf.d/rate-limit.conf << 'EOF'limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;EOF禁止 IP 访问:
cat > /etc/nginx/sites-available/default << 'EOF'server { listen 80 default_server; server_name _; return 444;}EOF设置仅允许通过域名访问 MeTube:
cat > /etc/nginx/sites-available/metube << 'EOF'server { listen 80; server_name 填写自己的域名;
location / { auth_basic "MeTube Access"; auth_basic_user_file /etc/nginx/.htpasswd; limit_req zone=mylimit burst=5 nodelay; proxy_pass http://127.0.0.1:8081; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; }
error_log /var/log/nginx/metube_error.log; access_log /var/log/nginx/metube_access.log;}EOF启动 Nginx 服务:
ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/defaultln -sf /etc/nginx/sites-available/metube /etc/nginx/sites-enabled/metubenginx -t && systemctl reload nginx五、Cookies 配置
下载 YouTube 视频需要先获取 Cookies 信息。
5.1 安装浏览器插件
在 Chrome 应用商店中下载 Get cookies.txt LOCALLY 插件。
5.2 设置插件
设置 Get cookies.txt LOCALLY 在无痕模式下启用。
5.3 获取 cookies
- 在无痕模式下打开 YouTube,并登录。
- 之后显示在这个插件中,点 Export As 下载
cookies.txt文件。

5.4 上传 cookies
点击 Advanced Options 之后有个 Upload Cookies,点击,把下载好的 cookies.txt 文件上传即可。

💡 可以通过浏览器翻译功能来翻译 MeTube 的界面

文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!