跳转到主要内容

crayonxiaoxin

运行中

Yam TV

视频聚合搜索平台(仅供个人学习,不对外传播使用)

视频聚合搜索平台 — 多端、可自托管、支持插件式视频源与直播订阅。


架构概览

  • Web 端:Vue 3 + hls.js + Tailwind CSS,支持搜索、播放、管理后台
  • Flutter 端:Android / iOS / macOS / Windows,与 Web 共用同一套 API
  • 服务端:NestJS,全局前缀 /api,Swagger 文档 /api/docs
  • 存储:Redis(搜索缓存 + 用户同步数据)+ SQLite(管理员账户与权限)
  • 部署:Docker compose,镜像推送 GHCR

功能

🔍 搜索与播放

  • 多源聚合搜索 — 兼容苹果 CMS V10 JSON 接口,多源轮询合并去重,支持流式 NDJSON 实时推送
  • 播放详情 — TMDB 海报与简介刮削,跨源换源保留播放进度
  • 短视频模式 — 竖滑换片、全集连播、自动续播
  • HLS 去广告 — 规则库(domain / path / regex / exact)+ 启发式算法双级过滤。规则服务端管理,客户端自动同步

🖥 管理功能

  • 视频源管理 — 手动添加 / JSON 批量导入 / 远程 URL 订阅,自动 API 去重与 key 冲突分配
  • IPTV 直播源 — m3u 订阅解析,频道分组与黑名单过滤
  • 用户与权限 — 多用户组 RBAC,per-source 访问控制
  • 内容过滤 — 关键词 / 分类 ID / 整源屏蔽,成人源标记

✨ 交互体验

  • 暗黑模式 + 毛玻璃 UI
  • 播放历史与进度云同步(登录跨设备)
  • 收藏系统 + 目录更新角标
  • 桌面端悬停预览 / 右键菜单 / 长按倍速
  • PWA 支持

平台

平台

方式

Web

浏览器直接访问(PWA 可安装)

Android

Flutter APK / AAB

iOS

Flutter IPA(需自签)

macOS

Flutter macOS 构建

Windows

Flutter Windows 构建


技术栈

组件

技术

角色

前端 SPA

Vue 3 + Vue Router + Pinia + Tailwind

搜索 / 播放 / 管理后台 UI

移动/桌面客户端

Flutter + Material 3

多端原生体验,与 Web 共用 API

API 服务

NestJS 11 + TypeScript

聚合搜索、源管理、鉴权、同步、代理

搜索缓存

Redis

聚合缓存、收藏/进度/历史同步

用户存储

SQLite(sql.js WASM)

管理员账户与组权限

容器化

Docker + docker compose

单命令部署,含 Redis

CI/CD

GitHub Actions → GHCR

自动构建推送 Docker 镜像