你是否遇到过这些问题:收藏的在线视频突然下架、反复下载相同内容浪费流量、想保存教程却找不到合适工具?MeTube作为一款自托管的视频下载工具,通过网页界面简化了复杂的视频下载流程,让普通用户也能轻松构建个人媒体库。本文将从安装到高级配置,带你掌握这个开源工具的核心用法。
【免费下载链接】metubeSelf-hosted YouTube downloader (web UI for youtube-dl / yt-dlp)项目地址: https://gitcode.com/GitHub_Trending/me/metube
快速启动:3步完成MeTube部署
Docker一键部署
MeTube提供了开箱即用的Docker镜像,只需一条命令即可启动服务:
docker run -d -p 8081:8081 -v /path/to/downloads:/downloads ghcr.io/alexta69/metube这条命令会创建一个后台运行的容器,将本地/path/to/downloads目录映射到容器内的下载目录,确保视频文件持久保存。
Docker Compose配置(推荐)
对于需要持久化配置的场景,使用docker-compose.yml文件更便于管理:
services: metube: image: ghcr.io/alexta69/metube container_name: metube restart: unless-stopped ports: - "8081:8081" volumes: - /path/to/downloads:/downloads environment: - DOWNLOAD_MODE=limited - MAX_CONCURRENT_DOWNLOADS=3完整的配置选项可参考项目文档README.md,其中DOWNLOAD_MODE控制下载调度策略,limited模式可避免资源耗尽。
本地开发环境搭建
开发者可通过源码构建:
git clone https://gitcode.com/GitHub_Trending/me/metube cd metube cd ui && npm install && node_modules/.bin/ng build cd .. && uv sync && uv run python3 app/main.py核心功能解析:从基础到进阶
多平台支持与格式选择
MeTube基于yt-dlp内核,支持多个主流视频平台。在添加下载任务时,可通过"Quality"选项选择分辨率,"Format"选项区分视频(MP4)或音频(MP3)下载。特别针对iOS设备优化了"Best (iOS)"选项,自动选择h264编码的兼容格式。
智能目录管理
默认配置下,视频和音频会分别保存到/downloads和/downloads/audio目录。通过设置环境变量可自定义存储结构:
environment: - CUSTOM_DIRS=true - CREATE_CUSTOM_DIRS=true - AUDIO_DOWNLOAD_DIR=/downloads/music启用CUSTOM_DIRS后,Web界面会显示目录选择下拉框,方便按专辑或主题分类管理文件。
批量下载与播放列表处理
对于视频播放列表,MeTube提供两种处理模式:
- 宽松模式(默认):自动识别视频所在的播放列表
- 严格模式:仅当URL明确指向播放列表时才批量下载
通过DEFAULT_OPTION_PLAYLIST_ITEM_LIMIT可限制最大下载数量,避免意外下载整个频道。
高级技巧:提升使用体验的7个配置
1. 浏览器扩展快速提交
安装Chrome扩展后,可直接右键视频发送到MeTube。对于HTTPS页面,需确保MeTube配置了SSL证书或位于反向代理后。
2. 自定义下载模板
通过OUTPUT_TEMPLATE环境变量定义文件名格式,例如:
environment: - OUTPUT_TEMPLATE=%(title)s_[%(resolution)s].%(ext)s - OUTPUT_TEMPLATE_PLAYLIST=%(playlist_title)s/%(title)s.%(ext)s这会在文件名中包含分辨率信息,并将播放列表内容保存到子目录。
3. 整合Cookie实现会员内容下载
对于需要登录的视频,可通过浏览器扩展导出cookies.txt,挂载到容器中:
volumes: - /path/to/cookies:/cookies environment: - YTDL_OPTIONS={"cookiefile":"/cookies/cookies.txt"}4. 下载速度控制
通过YTDL_OPTIONS限制带宽:
environment: - YTDL_OPTIONS={"ratelimit": 500000} # 500KB/s此参数对应yt-dlp的--limit-rate选项,单位为字节/秒。
5. 定时更新与自动维护
MeTube每晚自动更新yt-dlp内核,配合watchtower可实现容器自动更新。
6. 反向代理配置
在Nginx中添加以下配置可将MeTube集成到现有网站:
location /metube/ { proxy_pass http://metube:8081; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }注意必须保留WebSocket相关头信息,否则实时进度更新会失效。
7. iOS兼容性优化
通过自定义YTDL_OPTIONS强制转码为iOS兼容格式:
environment: - 'YTDL_OPTIONS={"format": "best", "exec": "ffmpeg -i %(filepath)q -c:v libx264 -c:a aac %(filepath)q.h264.mp4"}'该命令会在下载完成后自动调用ffmpeg转码,确保在iPhone和iPad上正常播放。
故障排除与最佳实践
常见问题解决
- 下载失败:检查URL格式,尝试更新容器获取最新yt-dlp版本
- 权限错误:确保宿主机
/path/to/downloads目录权限正确(建议755) - 中文乱码:通过
YTDL_OPTIONS={"outtmpl_encoding": "utf-8"}强制UTF-8编码
性能优化建议
- 将临时目录挂载到SSD:
-v /ssd/tmp:/tmp - 限制并发下载数:
MAX_CONCURRENT_DOWNLOADS=2 - 启用日志调试:
LOGLEVEL=DEBUG并查看容器日志
安全加固
- 通过HTTPS保护访问:配置
HTTPS=true并提供证书 - 使用反向代理添加认证(如Nginx+Basic Auth)
- 定期更新镜像:
docker-compose pull && docker-compose up -d
总结与扩展资源
MeTube通过简洁的Web界面消除了命令行工具的使用门槛,同时保留了yt-dlp的强大功能。无论是构建个人媒体库,还是批量备份在线课程,这款工具都能显著提升工作效率。
建议关注项目获取更新通知,及时应对视频平台的API变化。通过合理配置环境变量和利用社区贡献的最佳实践,MeTube可以满足从简单下载到复杂媒体管理的各种需求,真正做到"一次部署,终身受益"。
【免费下载链接】metubeSelf-hosted YouTube downloader (web UI for youtube-dl / yt-dlp)项目地址: https://gitcode.com/GitHub_Trending/me/metube
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考