带Web界面的yt-dlp视频下载器

简介

什么是 yt-dlp ?

yt-dlp 是一个功能丰富的命令行音频/视频下载工具,支持从数千个网站下载内容。它是 youtube-dl 的一个分支,基于已不再活跃的 youtube-dlc 开发。yt-dlp 提供了许多高级功能和选项,使用户能够控制下载过程,并支持多种输出格式和后处理选项。该工具适合需要批量下载或处理在线媒体的用户。

什么是 yt-dlp-web ?

yt-dlp-web 是一个自托管的应用程序,提供了 yt-dlpWeb 界面。用户可以通过这个界面观看或下载存储在远程服务器上的视频。该项目使用 Docker 部署,支持多种视频下载选项,并允许用户自定义配置,如认证信息和下载目录。yt-dlp-web 旨在简化视频下载过程,使其更加用户友好,尤其适合非技术用户。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 yt-dlp-web ,选择第一个 sooros5132/yt-dlp-web,版本选择 latest

本文写作时, latest 版本对应为 0.3.2

docker 文件夹中,创建一个新文件夹 ytdlp,并在其中建两个子文件夹 cachedownloads

这两个目录都需要增加 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.

地址:https://github.com/sooros5132/yt-dlp-web

相关推荐
小贺儿开发1 天前
Unity3D 图片循环查看器
unity·工具·图片·列表·循环·ugui·互动
梦梦代码精1 天前
2026年PHP开源商城系统实测对比:架构、多商户、商用授权,谁才是真·省心?
vue.js·docker·架构·开源·代码规范
极客先躯1 天前
高级java每日一道面试题-2026年02月02日-实战篇[Docker]-如何实现容器的持久化存储?
docker·容器·面试宝典·持久化·存储·韵味·java高级面试题
My is 李豆2 天前
CentOS 7 安装 Docker 完整教程(含 docker-compose 插件)
docker·eureka·centos
极客先躯2 天前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷
kong@react2 天前
Rocky Linux 10.2 全面解析:企业级 CentOS 替代方案及保姆级docker安装
java·linux·运维·docker
某林2122 天前
Isaac Sim 5.1.0 无头服务器部署与 RTX 显存段错误排障全记录
运维·服务器·docker·容器·isaac
m0_738120722 天前
Docker 环境下 Vulfocus 靶场搭建全流程(附镜像源问题解决方案)
运维·服务器·网络·安全·docker·容器
simeple2 天前
记一次 Docker Compose 项目迁移:从 Windows Docker Desktop 迁移到 CentOS 服务器
docker
哆啦A梦——2 天前
Ubuntu 虚拟机 Docker 与 MySQL 8.0.42 部署指南
mysql·ubuntu·docker