MyTube 是一款功能强大的自托管视频下载器与媒体库管理系统。它完美整合了 yt-dlp 的强大下载能力与精美的本地播放器界面,支持 YouTube、Bilibili、Twitch、MissAV 等全球主流视频平台。
通过订阅管理、自动下载、TMDB 元数据刮削以及 Cloudflare Tunnel 内网穿透,MyTube 让你轻松构建一个随时随地可访问、内容自动更新、分类井井有条的私人流媒体中心。更令人惊叹的是,该项目宣称 100% 由提示工程(Prompt Engineering)构建,零人工代码介入。

核心亮点
1. 全能下载引擎
- 广泛支持:基于
yt-dlp,支持 YouTube, Bilibili, Twitch, MissAV 及数千个其他站点。 - 智能订阅:关注喜欢的频道/UP 主,新视频发布后自动下载,从此不再错过任何更新。
- 批量与并发:支持批量添加链接,自定义并发下载数量,高效利用带宽。
- 高级选项:支持上传
cookies.txt解锁会员/年龄限制内容,自定义yt-dlp参数及代理设置。
2. 精美媒体库
- TMDB 元数据刮削:自动识别本地视频文件,从 TMDB 抓取海报、简介、导演、评分、年份等详细信息,瞬间提升库的质感。
- 收藏集管理:创建自定义收藏夹(如“教程”、“电影”、“搞笑”),灵活整理视频。
- 本地上传:支持直接上传本地视频文件,自动补充元数据,统一管理云端与本地资源。
- 字幕支持:自动下载并嵌入 YouTube/Bilibili 的多语言字幕。
3. 安全远程访问
- Cloudflare Tunnel 集成:内置隧道支持,无需公网 IP,无需端口映射,即可安全地将服务暴露到互联网,随时随地流畅观看。
- 多用户权限:
- 管理员:完整控制权。
- 访客模式:只读权限,适合分享给家人朋友,防止误操作。
- 认证保护:支持密码登录及 WebAuthn (通行密钥),安全便捷。
4. 自动化与扩展
- 任务钩子 (Hooks):在下载开始、成功、失败等阶段执行自定义 Shell 脚本,轻松对接通知、转码或归档流程。
- Telegram 通知:下载完成或失败时,即时推送消息到 Telegram。
- 云存储同步:下载完成后自动上传视频至 OpenList/Alist 等云存储,释放本地空间。
- 浏览器扩展:提供 Chrome 插件,浏览视频时一键发送到 MyTube 下载。
快速部署 (Docker)
MyTube 提供官方预构建镜像,支持 amd64 和 arm64 架构,一键启动。
方式一:前后端分离模式 (推荐)
# 1. 创建目录
mkdir mytube-deploy && cd mytube-deploy
# 2. 创建 docker-compose.yml
cat > docker-compose.yml <<EOF
version: "3.8"
services:
backend:
image: franklioxygen/mytube:backend-latest
container_name: mytube-backend
restart: unless-stopped
ports:
- "5551:5551"
volumes:
- ./uploads:/app/uploads
- ./data:/app/data
environment:
- PORT=5551
- MYTUBE_ADMIN_TRUST_LEVEL=container
frontend:
image: franklioxygen/mytube:frontend-latest
container_name: mytube-frontend
restart: unless-stopped
ports:
- "5556:5556"
depends_on:
- backend
environment:
- VITE_API_URL=/api
EOF
# 3. 启动服务
docker-compose up -d
- 访问地址:
http://localhost:5556
方式二:单容器一体化模式 (极简)
# 1. 创建目录
mkdir mytube-single && cd mytube-single
# 2. 创建 docker-compose.yml
cat > docker-compose.yml <<EOF
services:
mytube:
image: ghcr.io/franklioxygen/mytube:latest
container_name: mytube
restart: unless-stopped
ports:
- "5551:5551"
volumes:
- ./uploads:/app/uploads
- ./data:/app/data
environment:
- PORT=5551
EOF
# 3. 启动服务
docker-compose up -d
- 访问地址:
http://localhost:5551
关键配置指南
1. 远程访问 (NAS/VPS)
若在远程服务器部署,需在前端容器中指定后端 IP:
创建 .env 文件:
API_HOST=192.168.1.100 # 替换为你的服务器 IP
API_PORT=5551
重启容器即可。
2. 开启 Cloudflare Tunnel
在 MyTube 设置页面中,按照指引配置 Cloudflare Tunnel Token,即可生成一个公开的 https 域名,无需在路由器做端口转发。
3. TMDB 元数据
进入 设置 -> TMDB,输入你的 API Key (免费申请),系统会自动为现有和新下载的视频刮削海报和简介。
4. 权限与安全
- 管理员信任级别:通过
MYTUBE_ADMIN_TRUST_LEVEL环境变量控制 (application,container,host),默认container即可满足大多数需求。 - 访客分享:在用户管理中创建“Guest”账号,仅赋予读取权限,安全分享你的媒体库。
💡 典型应用场景
- 📺 私人流媒体库:自动追更 YouTube/B站 UP 主,打造无广告、高清、带海报墙的专属视频库。
- 🎓 知识归档:批量下载教程、课程视频,自动分类整理,建立离线知识库。
- 🌍 跨设备同步:利用 Cloudflare Tunnel,在手机、平板、电视上随时访问家里的 NAS 视频库。
- 🤖 自动化工作流:结合 Task Hooks,下载完成后自动调用脚本转码、移动文件到冷存储或发送 Telegram 通知。
❓ 常见问题
- Q: 下载速度慢怎么办?
- A: 检查网络环境,可在设置中配置代理;或限制并发下载数以避免带宽占满。
- Q: 某些视频无法下载?
- A: 尝试上传该网站的
cookies.txt文件以通过身份验证;检查yt-dlp是否为最新版本。
- A: 尝试上传该网站的
- Q: 数据存在哪?
- A: 视频文件在
./uploads目录,数据库和配置在./data目录。备份这两个文件夹即可迁移数据。
- A: 视频文件在
- Q: 支持 iOS/Android 吗?
- A: 支持。MyTube 拥有响应式移动端 UI,浏览器访问即可完美适配手机和平板。











评论