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

在线视频播放器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,不冲突就行,不确定的话可以用命令查一下

# 查看端口占用netstat-tunlp|grep5038
本地端口容器端口
50385000

环境

可变说明
APP_TITLEYT-DLP Player应用标题
THEME_COLOR#ff7300主题颜色
GENERATE_SPRITE_BELOW1800视频长度低于此值(秒)时生成缩略图
AMOLED_BGfalseAMOLED 深色背景
MAX_VIDEO_AGE3600视频缓存过期时间(秒)
MAX_VIDEO_DURATION36000最大视频时长(秒)
DEFAULT_QUALITY720默认视频质量
LOAD_DEFAULT_QUALITYtrue加载默认画质
PLAYLIST_SUPPORTfalse播放列表支持
DOWNLOAD_PATH./download下载路径

命令行安装

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

# 新建文件夹 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 \-p5038:5000 \-v$(pwd)/data:/app/download \-eAPP_TITLE="YT-DLP Player"\-eTHEME_COLOR="#ff7300"\-eGENERATE_SPRITE_BELOW="1800"\-eAMOLED_BG="false"\-eMAX_VIDEO_AGE="3600"\-eMAX_VIDEO_DURATION="36000"\-eDEFAULT_QUALITY="720"\-eLOAD_DEFAULT_QUALITY="true"\-ePLAYLIST_SUPPORT="false"\-eDOWNLOAD_PATH="./download"\ matszwe02/ytdlp_web_player 

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

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 登录到您的群晖,执行下面的命令:

# 新建文件夹 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

Read more

教育行业新机遇:用GLM-4.6V-Flash-WEB打造智能阅卷系统

教育行业新机遇:用GLM-4.6V-Flash-WEB打造智能阅卷系统 在一场全国性的中学期中考试后,某地教育局面临一个老问题:近十万份主观题试卷需要在五天内完成批改。以往靠抽调骨干教师集中阅卷的模式,不仅人力紧张、疲劳误判频发,还因评分标准执行不一引发争议。而今年,他们悄悄上线了一套基于 GLM-4.6V-Flash-WEB 的智能辅助阅卷系统——结果令人惊讶:90%的简答题实现自动评分,平均响应时间不到200毫秒,人工复核工作量减少70%,且评分一致性提升了45%。 这背后,正是多模态大模型技术向教育场景深度渗透的缩影。当AI不再只是“识别文字”,而是真正理解“学生写了什么、为什么这么写”,智能阅卷才从自动化工具迈向认知级助手。 从OCR到“类教师”理解:阅卷系统的代际跃迁 过去十年,教育科技领域的阅卷系统经历了三次迭代: * 第一代(纯OCR + 模板匹配):只能处理选择题卡或固定格式填空,对图像质量敏感,无法应对手写变体和开放性回答; * 第二代(NLP+规则引擎):引入关键词提取与句法分析,能初步判断语义相似度,但依赖大量人工编写规则,扩展性差; * 第三代(

前端API设计最佳实践:让你的API更优雅

前端API设计最佳实践:让你的API更优雅 毒舌时刻 API设计?听起来就像是后端工程师的事情,关前端什么事?你以为前端只需要调用API就可以了?别天真了!如果API设计得不好,前端开发会变得非常痛苦。 你以为随便设计个API就能用?别做梦了!我见过太多糟糕的API设计,比如返回的数据结构不一致,错误处理不规范,文档不完整,这些都会让前端开发者崩溃。 为什么你需要这个 1. 提高开发效率:良好的API设计可以减少前端开发的工作量,提高开发效率。 2. 减少错误:规范的API设计可以减少前端开发中的错误,提高代码的可靠性。 3. 改善用户体验:合理的API设计可以提高应用的响应速度,改善用户体验。 4. 便于维护:良好的API设计可以使代码更易于维护,减少后期的维护成本。 5. 促进团队协作:规范的API设计可以促进前后端团队的协作,减少沟通成本。 反面教材 // 这是一个典型的糟糕API设计 // 1. 不一致的命名规范 // 获取用户列表 fetch('/api/getUsers') .then(response

前端监控:别让你的应用在黑暗中运行

前端监控:别让你的应用在黑暗中运行 毒舌时刻 这应用运行得跟幽灵似的,出了问题都不知道。 各位前端同行,咱们今天聊聊前端监控。别告诉我你还在等用户反馈问题,那感觉就像在没有监控的仓库里放贵重物品——能放,但丢了都不知道。 为什么你需要前端监控 最近看到一个项目,用户反映页面经常崩溃,但开发团队根本不知道问题出在哪里。我就想问:你是在做应用还是在做猜谜游戏? 反面教材 // 反面教材:没有监控 function App() { const [data, setData] = React.useState([]); useEffect(() => { async function fetchData() { try { const response = await fetch('/api/data'); const result = await response.json(); setData(result); } catch (error)

Spring AI 1.x 系列【6】集成 DeepSeek + 智谱 GLM,实现多模型一键切换的 AI 聊天助手

Spring AI 1.x 系列【6】集成 DeepSeek + 智谱 GLM,实现多模型一键切换的 AI 聊天助手

文章目录 * 1. 项目介绍 * 1.1 功能演示 * 1.2 技术栈 * 2. 环境准备 * 2.1 申请 API Key * 2.2 创建工程 * 2.3 Maven 核心依赖 * 3. 后端实现 * 3.1 配置文件 * 3.2 对话客户端配置类 * 3.3 对话生成访问接口 * 4. 前端页面 1. 项目介绍 从零搭建一套 AI 聊天助手,基于 Spring AI 同时集成 DeepSeek 和 智谱 GLM 两大主流模型,