
简介
什么是 yt-dlp ?
yt-dlp
是一个功能丰富的命令行音频/视频下载工具,支持从数千个网站下载内容。它是youtube-dl
的一个分支,基于已不再活跃的youtube-dlc
开发。yt-dlp
提供了许多高级功能和选项,使用户能够控制下载过程,并支持多种输出格式和后处理选项。该工具适合需要批量下载或处理在线媒体的用户。
什么是 yt-dlp-web ?
yt-dlp-web
是一个自托管的应用程序,提供了yt-dlp
的Web
界面。用户可以通过这个界面观看或下载存储在远程服务器上的视频。该项目使用Docker
部署,支持多种视频下载选项,并允许用户自定义配置,如认证信息和下载目录。yt-dlp-web
旨在简化视频下载过程,使其更加用户友好,尤其适合非技术用户。

安装
在群晖上以 Docker 方式安装。
在注册表中搜索 yt-dlp-web
,选择第一个 sooros5132/yt-dlp-web
,版本选择 latest
。
本文写作时,
latest
版本对应为0.3.2
;

卷
在 docker
文件夹中,创建一个新文件夹 ytdlp
,并在其中建两个子文件夹 cache
和 downloads
这两个目录都需要增加 Everyone
的读写权限

否则下载时会报错

文件夹 | 装载路径 | 说明 |
---|---|---|
docker/ytdlp/cache |
/cache |
缓存目录 |
docker/ytdlp/downloads |
/downloads |
下载目录 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
bash
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
3981 |
3000 |

环境
可变 | 值 |
---|---|
AUTH_SECRET |
用于保护 Web 界面的随机字符串,长度至少为 40 个字符。 |
CREDENTIAL_USERNAME |
用于访问 Web 界面的用户名。 |
CREDENTIAL_PASSWORD |
用于访问 Web 界面的密码。 |
AUTH_SECRET
可以使用openssl rand -hex 64
来生成;
只有在需要保护网站的时候,才需要设置这三个值,设置后会需要登录才能使用

命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
bash
# 新建文件夹 ytdlp 和 子目录
mkdir -p /volume1/docker/ytdlp/{cache,downloads}
# 进入 ytdlp 目录
cd /volume1/docker/ytdlp
# 修改目录权限
chmod a+rw {cache,downloads}
# 运行容器
docker run -d \
--name yt-dlp-web \
--user 1000:1000 \
--restart unless-stopped \
-p 3981:3000 \
-v $(pwd)/downloads:/downloads \
-v $(pwd)/cache:/cache \
sooros5132/yt-dlp-web
# 运行容器(带登录认证)
docker run -d \
--name yt-dlp-web \
--user 1000:1000 \
--restart unless-stopped \
-p 3981:3000 \
-v $(pwd)/downloads:/downloads \
-v $(pwd)/cache:/cache \
-e AUTH_SECRET="Random_string,_40+_characters_recommended" \
-e CREDENTIAL_USERNAME="username" \
-e CREDENTIAL_PASSWORD="password" \
sooros5132/yt-dlp-web
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
yaml
version: "3"
services:
yt-dlp-web:
image: sooros5132/yt-dlp-web
container_name: yt-dlp-web
user: 1000:1000 # User Id, Group Id Setting
# environment:
# If you need to protect the site, set AUTH_SECRET, CREDENTIAL_USERNAME, CREDENTIAL_PASSWORD.
# ex)
# AUTH_SECRET: "Random_string,_40+_characters_recommended"
# CREDENTIAL_USERNAME: "username"
# CREDENTIAL_PASSWORD: "password"
volumes:
- ./downloads:/downloads # Downloads folder
- ./cache:/cache # Cache folder
ports:
- 3981:3000 # Web Page Port Mapping
restart: unless-stopped
然后执行下面的命令
bash
# 新建文件夹 ytdlp 和 子目录
mkdir -p /volume1/docker/ytdlp/{cache,downloads}
# 进入 ytdlp 目录
cd /volume1/docker/ytdlp
# 修改目录权限
chmod a+rw {cache,downloads}
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d

运行
在浏览器中输入 http://群晖IP:3981
,如果设置了认证的话,会看到登录界面

否则会直接看到主界面

输入要下载的视频的地址即可

下载完成后,可以直接预览

当然这是有前提的,就是你的 NAS
能访问要下载的视频网站,比如 YouTube
参考文档
yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader
地址:https://github.com/yt-dlp/yt-dlp
sooros5132/yt-dlp-web: Self-hosted yt-dlp with the Web UI.