在线视频播放器YT-DLP Web Player

简介

什么是 YT-DLP Web Player ?

YT-DLP Web Player 是一个开源的在线视频播放器,基于强大的 yt-dlp 引擎。它可以帮助用户直接在浏览器中播放来自各种视频网站的内容,无需下载即可在线观看。

主要特点

  • 多平台支持:基于 yt-dlp,支持 YouTubeBilibili 等众多视频平台
  • 画质选择:支持视频分辨率选择、字幕选择和宽高比调整
  • 视频下载:提供视频下载功能,方便离线观看
  • PWA 支持:支持 Progressive Web App,可安装到手机桌面,Android 支持”分享到”功能
  • 视频搜索:内置视频搜索功能,无需离开界面即可查找内容
  • 主题定制:支持自定义主题颜色和 AMOLED 深色背景
  • SponsorBlock 集成:自动跳过 YouTube 视频中的赞助商片段
  • 每日自动更新yt-dlp 每日自动更新,及时支持新的视频网站和编码
  • 开源免费:基于 GPL-2.0 协议开源,可免费使用和修改

应用场景

  • 个人视频中心:搭建个人视频播放平台,统一管理和观看各平台视频
  • 家庭媒体服务:家庭成员共享视频播放服务,支持多设备访问
  • 嵌入式播放器:通过 /iframe 端点将播放器嵌入到其他网页中
  • 视频归档:下载并保存喜欢的视频内容,建立个人视频库
  • 无广告观看:绕过视频网站的广告,获得更纯净的观看体验

总的来说,YT-DLP Web Player 是一个功能强大且易于部署的在线视频播放解决方案,让你摆脱平台限制,自由观看网络视频。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 matszwe02,不太好找,下拉找到 matszwe02/ytdlp_web_player,只有一个 latest 版本,双击直接下载

docker 文件夹中,创建一个新文件夹 ytdlp_web_player,并在其中建一个子文件夹 download

文件夹 装载路径 说明
docker/ytdlp_web_player/data /app/download 存放下载的视频

端口

本地端口使用 5038,不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 5038
本地端口 容器端口
5038 5000

环境

可变 说明
APP_TITLE YT-DLP Player 应用标题
THEME_COLOR #ff7300 主题颜色
GENERATE_SPRITE_BELOW 1800 视频长度低于此值(秒)时生成缩略图
AMOLED_BG false AMOLED 深色背景
MAX_VIDEO_AGE 3600 视频缓存过期时间(秒)
MAX_VIDEO_DURATION 36000 最大视频时长(秒)
DEFAULT_QUALITY 720 默认视频质量
LOAD_DEFAULT_QUALITY true 加载默认画质
PLAYLIST_SUPPORT false 播放列表支持
DOWNLOAD_PATH ./download 下载路径

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 新建文件夹 ytdlp_web_player 和 子目录
mkdir -p /volume1/docker/ytdlp_web_player/data

# 进入 ytdlp_web_player 目录
cd /volume1/docker/ytdlp_web_player

# 一键启动
docker run -d \
--name ytdlp_web_player \
--restart unless-stopped \
-p 5038:5000 \
-v $(pwd)/data:/app/download \
-e APP_TITLE="YT-DLP Player" \
-e THEME_COLOR="#ff7300" \
-e GENERATE_SPRITE_BELOW="1800" \
-e AMOLED_BG="false" \
-e MAX_VIDEO_AGE="3600" \
-e MAX_VIDEO_DURATION="36000" \
-e DEFAULT_QUALITY="720" \
-e LOAD_DEFAULT_QUALITY="true" \
-e PLAYLIST_SUPPORT="false" \
-e DOWNLOAD_PATH="./download" \
matszwe02/ytdlp_web_player

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
version: '3.8'

services:
ytdlp_web_player:
image: matszwe02/ytdlp_web_player
container_name: ytdlp_web_player
restart: unless-stopped
ports:
- "5038:5000"
volumes:
- ./data:/app/download
environment:
- APP_TITLE=YT-DLP Player
- THEME_COLOR=#ff7300
- GENERATE_SPRITE_BELOW=1800
- AMOLED_BG=false
- MAX_VIDEO_AGE=3600
- MAX_VIDEO_DURATION=36000
- DEFAULT_QUALITY=720
- LOAD_DEFAULT_QUALITY=true
- PLAYLIST_SUPPORT=false
- DOWNLOAD_PATH=./download

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 ytdlp_web_player 和 子目录
mkdir -p /volume1/docker/ytdlp_web_player/data

# 进入 ytdlp_web_player 目录
cd /volume1/docker/ytdlp_web_player

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:5038 即可进入 Web 界面

以老苏之前发的 https://www.bilibili.com/video/BV1LSwQzZEPi 为例,加载中会看到界面预览

加载成功后,就可以播放了

注意事项

  1. PWA 和 iframe 嵌入需要 HTTPS:如需使用 PWA 安装或 iframe 嵌入功能,需要配置反向代理启用 HTTPS
  2. 视频平台限制:部分视频网站有反爬虫机制,可能无法正常播放,可查看 yt-dlp 支持的网站列表
  3. 存储空间:视频缓存会占用磁盘空间,建议定期清理或调整 MAX_VIDEO_AGE 参数
  4. 网络要求:播放高清视频需要较好的网络带宽,建议根据网络情况调整 DEFAULT_QUALITY
  5. 安全建议:如公网访问,建议添加认证机制或限制访问 IP

参考文档

Matszwe02/ytdlp_web_player: Arbitraty internet video player powered by yt-dlp
地址:https://github.com/Matszwe02/ytdlp_web_player

yt-dlp/yt-dlp: A feature-rich command-line audio/video downloader
地址:https://github.com/yt-dlp/yt-dlp