跨平台影视聚合播放器KatelyaTV

前言

MoonTV(LunaTV) 被作者归档了,意味着 暂时不会再进行开发和维护

后续将由 Katelya ,在致敬原作的前提下,继续修复问题、优化体验并扩展功能。

简介

什么是 KatelyaTV ?

🎬 KatelyaTV 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript 构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量免费影视内容。

主要特点

  • 🔍 多源聚合搜索:一次搜索立刻返回全源结果,支持电影、电视剧、综艺等多种类型。
  • 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示,集成豆瓣评分和热门推荐。
  • ▶️ 流畅在线播放:集成 HLS.js & ArtPlayer,支持多种视频格式,自动跳过广告切片。
  • 📺 观看历史记录:智能记录播放进度,支持断点续播,多设备同步观看状态。
  • ❤️ 收藏 + 继续观看:支持 Redis/D1/Upstash 存储,多端同步进度,个性化推荐。
  • 📱 PWA 支持:离线缓存、安装到桌面/主屏,移动端原生体验,支持推送通知。
  • 🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸,支持深色模式。
  • 👥 多用户系统:支持用户注册、登录、权限管理,数据隔离和同步。
  • 🚀 极简部署:一条 Docker 命令即可将完整服务跑起来,或免费部署到 VercelCloudflare
  • 🎨 现代化UI:基于 Tailwind CSS 构建,支持主题切换,流畅的动画效果。

应用场景

  • 影视爱好者:用户可以通过 KatelyaTV 搜索和观看各类影视内容,享受个性化的观看体验。
  • 开发与测试:开发者可以利用该项目的框架进行二次开发和功能扩展。
  • 个人或小型团队的媒体管理:适合需要管理和分享影视资源的小团队或个人用户。

KatelyaTV 通过其易用性和丰富的功能,成为一个理想的影视聚合播放器。

安装

在群晖上以 Docker 方式安装。

官方推荐使用 Redis 版本,可以支持多用户、跨设备数据同步、完整的用户权限管理。

config.json

原来是有内置源的,但现在已经取消,需要自己去下载

格式应该还是差不多的吧,一看应该就懂,没什么好解释的

如果使用了中文的 name,建议使用 UTF-8 格式保存;否则可能会出现乱码,但不影响使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"cache_time": 7200,
"api_site": {
"example_test": {
"api": "https://example.com/api.php/provide/vod",
"name": "测试视频源",
"detail": "https://example.com"
},
"demo_site1": {
"api": "https://your-api-domain.com/api.php/provide/vod",
"name": "示例视频源1",
"detail": "https://your-domain.com"
}
}
}

docker-compose.yml

将下面的内容保存为 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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# docker-compose.yml
version: '3.8'

services:
katelyatv:
image: ghcr.io/katelya77/katelyatv:latest
container_name: katelyatv
restart: unless-stopped
ports:
- '3497:3000'
# 可选:挂载自定义配置和持久化数据
volumes:
- ./config.json:/app/config.json:ro
- ./logs:/app/logs
environment:
# 基础配置
- SITE_NAME=KatelyaTV 影视站
- ANNOUNCEMENT=支持多用户注册,请合理使用!

# 管理员账号(重要!)
- USERNAME=admin
- PASSWORD=admin123456

# Redis 存储配置
- NEXT_PUBLIC_STORAGE_TYPE=redis
- REDIS_URL=redis://katelyatv-redis:6379

# 用户功能
- NEXT_PUBLIC_ENABLE_REGISTER=true

# 可选:搜索配置
- NEXT_PUBLIC_SEARCH_MAX_PAGE=8
depends_on:
katelyatv-redis:
condition: service_healthy
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s

katelyatv-redis:
image: redis:7-alpine
container_name: katelyatv-redis
restart: unless-stopped
# 可选:端口映射(用于外部访问 Redis)
# ports:
# - '6379:6379'
volumes:
# Redis 数据持久化
- ./data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
start_period: 10s
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru

因为存在中文注释,所以必须使用 UTF-8 格式保存

然后执行下面的命令

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

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

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

# 一键启动
docker-compose up -d

运行

部署成功后,在浏览器中输入 http://服务器IP:3000 即可看到登录界面

首次访问需要使用我们在环境变量中设置的账号和密码进行登录

支持多用户

主界面

使用很简单,除了直接观看,还可以搜索

参考文档

katelya77/KatelyaTV: 一个基于MoonTV(LunaTV)二次开发的项目。
地址:https://github.com/katelya77/KatelyaTV

KatelyaTV
地址:https://tv.katelya.eu.org