MyTube是一个支持YouTube、Bilibili、MissAV及yt-dlp站点的自托管视频下载器与播放器。具备频道订阅、自动下载及本地化存储功能。UI 设计精美,支持收藏集分类管理。内置Cloudflare Tunnel支持,无需端口映射即可实现安全远程访问。支持Docker一键部署。
MyTube的功能特点(摘自项目文档)
视频下载:通过简单的 URL 输入下载 YouTube、Bilibili 和 MissAV 视频。
视频上传:直接上传本地视频文件到您的库,并自动生成缩略图。
Bilibili 支持:支持下载单个视频、多 P 视频以及整个合集/系列。
并行下载:支持队列下载,可同时追踪多个下载任务的进度。
批量下载:一次性添加多个视频链接到下载队列。
并发下载限制:设置同时下载的数量限制以管理带宽。
本地库:自动保存视频缩略图和元数据,提供丰富的浏览体验。
视频播放器:自定义播放器,支持播放/暂停、循环、快进/快退、全屏和调光控制。
字幕:自动下载 YouTube / Bilibili 默认语言字幕。
搜索功能:支持在本地库中搜索视频,或在线搜索 YouTube 视频。
收藏夹:创建自定义收藏夹以整理您的视频。
订阅功能:订阅您喜爱的频道,并在新视频发布时自动下载。
登录保护:通过密码登录页面保护您的应用。
国际化:支持多种语言,包括英语、中文、西班牙语、法语、德语、日语、韩语、阿拉伯语、葡萄牙语和俄语。
分页功能:支持分页浏览,高效管理大量视频。
视频评分:使用 5 星评级系统为您的视频评分。
移动端优化:移动端友好的标签菜单和针对小屏幕优化的布局。
临时文件清理:直接从设置中清理临时下载文件以管理存储空间。
视图模式:在主页上切换收藏夹视图和视频视图。
Cookie 管理:支持上传 cookies.txt 以启用年龄限制或会员内容的下载。
yt-dlp 配置: 通过用户界面自定义全局 yt-dlp 参数、网络代理及其他高级设置。
访客模式:启用只读模式,允许查看视频但无法进行修改。非常适合与他人分享您的视频库。
云存储集成:下载后自动将视频和缩略图上传到云存储(OpenList/Alist)。
Cloudflare Tunnel 集成: 内置 Cloudflare Tunnel 支持,无需端口转发即可轻松将本地 MyTube 实例暴露到互联网。
安装Docker:
apt -y update apt -y install curl curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh
创建目录新建compose文件:
mkdir /opt/mytube && cd /opt/mytube && nano docker-compose.yml
写入如下内容:
services:
backend:
image: franklioxygen/mytube:backend-latest
container_name: mytube-backend
pull_policy: always
restart: unless-stopped
environment:
- PORT=5551
- MAX_FILE_SIZE=5000000000
volumes:
- ./uploads:/app/uploads
- ./data:/app/data
frontend:
image: franklioxygen/mytube:frontend-latest
container_name: mytube-frontend
pull_policy: always
restart: unless-stopped
ports:
- "5556:5556"
depends_on:
- backend
environment:
# 在大多数设置中,这些默认值都可以正常工作,不需要修改。
- VITE_API_URL=/api
- VITE_BACKEND_URL=
启动:
docker compose up -d
配置Ferron反向代理:
nano /etc/ferron.kdl
写入如下内容:
mytube.example.com {
proxy "http://127.0.0.1:5556/"
proxy_request_header_replace "Host" "{header:Host}"
}
管理员的默认密码是123,登录进去后请立即修改密码,并且关闭“允许重置密码”的功能,如果可以建议使用passkey登录:
如果遇到下载的视频分辨率太低,可以在后台自定义修改yt-dlp的配置:
-S res:2160
如果遇到下载速度慢,可以适当增加线程:
-N 15
效果:
荒岛



















你好博主,谢谢分享搭建笔记。请教一下,可以帮忙附上一份完整的yt-dlp 配置内容么(播放下载4k,多线程15,设置好http代理)?
这边修改过,但实测下载B站最高分辨率4k的视频,下载后分辨率是480P的,然后下载youtube视频提示出错“yt-dlp process exited with code 1”,多谢!
你好,下载4k和多线程15在yt-dlp里面的配置就是:-S res:2160和-N 15。我刚才特地试了下socks5代理,yt-dlp的配置项是:–proxy socks5://172.26.0.1:40000
我使用的是warp提供的socks5,linux安装见:https://pkg.cloudflareclient.com/#debian。
设置好后backend容器的日志可以看到yt-dlp已经使用socks5代理了:Executing yt-dlp command: yt-dlp https://xxxx/playlist.m3u8 –proxy socks5://172.26.0.1:40000 –output /app/uploads/videos/xxxx.mp4
我使用netcup的VPS可以直接下载youtube 4k视频,不需要设置代理,但是有限制,短时间内不能下载多个,否则会触发429。相反我设置了warp代理后就不能下载了,提示让“登录证明不是bot”,然后yt-dlp就会出现你说的yt-dlp process exited with code 1。这应该是warp的ip太“脏”了。
最好的解决办法是在mytube上传你自己的youtube账号cookie来下载。在chrome浏览器安装“Get cookies.txt LOCALLY”扩展可以获取你的cookie。但是建议别用自己重要的google账号,这可能会导致账号被ban。
b站我还没下载过视频,我现在测试看下,估计也是要cookie一类的东西= =
好的,感谢博主的热心回答,好人一生平安!