跳转到主要内容

crayonxiaoxin

开发中

Yam TV

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

平台

  • Android Android
  • Apple iOS
  • Web
  • macOS MacOS
  • Windows

技术栈

  • Vue.js Vue.js
  • NestJS NestJS
  • Docker Docker
  • Redis Redis
  • SQLite SQLite
  • Flutter Flutter
  • JavaScript JavaScript

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

⚠️ 本项目仅供个人学习,不对外传播使用。网站不存储任何视频资源,所有内容均来自第三方网站。


架构概览

  • 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 可安装)
AndroidFlutter APK / AAB
iOSFlutter IPA(需自签)
macOSFlutter macOS 构建
WindowsFlutter Windows 构建

技术栈

组件技术角色
前端 SPAVue 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/CDGitHub Actions → GHCR自动构建推送 Docker 镜像