MyTube:全能自托管视频中心,打造你的私人 YouTube

MyTube 是一款功能强大的自托管视频下载器与媒体库管理系统。它完美整合了 yt-dlp 的强大下载能力与精美的本地播放器界面,支持 YouTube、Bilibili、Twitch、MissAV 等全球主流视频平台。

通过订阅管理、自动下载、TMDB 元数据刮削以及 Cloudflare Tunnel 内网穿透,MyTube 让你轻松构建一个随时随地可访问、内容自动更新、分类井井有条的私人流媒体中心。更令人惊叹的是,该项目宣称 100% 由提示工程(Prompt Engineering)构建,零人工代码介入

MyTube:全能自托管视频中心,打造你的私人 YouTube插图

核心亮点

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 环境变量控制 (applicationcontainerhost),默认 container 即可满足大多数需求。
  • 访客分享:在用户管理中创建“Guest”账号,仅赋予读取权限,安全分享你的媒体库。

💡 典型应用场景

  1. 📺 私人流媒体库:自动追更 YouTube/B站 UP 主,打造无广告、高清、带海报墙的专属视频库。
  2. 🎓 知识归档:批量下载教程、课程视频,自动分类整理,建立离线知识库。
  3. 🌍 跨设备同步:利用 Cloudflare Tunnel,在手机、平板、电视上随时访问家里的 NAS 视频库。
  4. 🤖 自动化工作流:结合 Task Hooks,下载完成后自动调用脚本转码、移动文件到冷存储或发送 Telegram 通知。

❓ 常见问题

  • Q: 下载速度慢怎么办?
    • A: 检查网络环境,可在设置中配置代理;或限制并发下载数以避免带宽占满。
  • Q: 某些视频无法下载?
    • A: 尝试上传该网站的 cookies.txt 文件以通过身份验证;检查 yt-dlp 是否为最新版本。
  • Q: 数据存在哪?
    • A: 视频文件在 ./uploads 目录,数据库和配置在 ./data 目录。备份这两个文件夹即可迁移数据。
  • Q: 支持 iOS/Android 吗?
    • A: 支持。MyTube 拥有响应式移动端 UI,浏览器访问即可完美适配手机和平板。

评论