Update README.md

pull/5/head
katelya 2025-08-29 15:36:45 +08:00
parent 38f5ec35a1
commit 60b1042a29
1 changed files with 32 additions and 18 deletions

View File

@ -1,10 +1,12 @@
# MoonTV # KatelyaTV
<div align="center"> <div align="center">
<img src="public/logo.png" alt="MoonTV Logo" width="120"> <img src="public/logo.png" alt="KatelyaTV Logo" width="120">
</div> </div>
> 🎬 **MoonTV** 是一个开箱即用的、跨平台的影视聚合播放器。它基于 **Next.js 14** + **Tailwind&nbsp;CSS** + **TypeScript** 构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量免费影视内容。 > 🎬 **KatelyaTV** 是一个开箱即用的、跨平台的影视聚合播放器。它基于 **Next.js 14** + **Tailwind&nbsp;CSS** + **TypeScript** 构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量免费影视内容。
>
> 本项目是在原始项目「MoonTV」基础上的二创与继承版本由 Katelya 持续开发与维护。在致敬原作的前提下,继续修复问题、优化体验并扩展功能。
<div align="center"> <div align="center">
@ -43,6 +45,7 @@
- [技术栈](#技术栈) - [技术栈](#技术栈)
- [核心功能](#核心功能) - [核心功能](#核心功能)
- [项目来源与声明](#项目来源与声明)
- [部署](#部署) - [部署](#部署)
- [Docker Compose 最佳实践](#Docker-Compose-最佳实践) - [Docker Compose 最佳实践](#Docker-Compose-最佳实践)
- [环境变量](#环境变量) - [环境变量](#环境变量)
@ -69,6 +72,7 @@
## 🎯 核心功能 ## 🎯 核心功能
### 观看历史记录 ### 观看历史记录
- **智能进度记录**:自动记录每个视频的播放进度、观看时长、当前集数 - **智能进度记录**:自动记录每个视频的播放进度、观看时长、当前集数
- **断点续播**:支持从上次观看位置继续播放,无需手动寻找 - **断点续播**:支持从上次观看位置继续播放,无需手动寻找
- **多设备同步**:通过 Redis/D1/Upstash 存储,实现跨设备观看记录同步 - **多设备同步**:通过 Redis/D1/Upstash 存储,实现跨设备观看记录同步
@ -76,23 +80,32 @@
- **进度条显示**:在视频卡片上显示观看进度百分比 - **进度条显示**:在视频卡片上显示观看进度百分比
### 多源聚合搜索 ### 多源聚合搜索
- **20+ 资源站点**:集成电影天堂、黑木耳、如意资源等热门站点 - **20+ 资源站点**:集成电影天堂、黑木耳、如意资源等热门站点
- **统一搜索接口**:一次搜索返回多个源的结果,提高资源获取成功率 - **统一搜索接口**:一次搜索返回多个源的结果,提高资源获取成功率
- **智能去重**:自动识别重复内容,优化搜索结果展示 - **智能去重**:自动识别重复内容,优化搜索结果展示
- **分类筛选**:支持按电影、电视剧、综艺等类型筛选 - **分类筛选**:支持按电影、电视剧、综艺等类型筛选
### 收藏与同步 ### 收藏与同步
- **个性化收藏**:支持收藏喜欢的影视作品,创建个人片单 - **个性化收藏**:支持收藏喜欢的影视作品,创建个人片单
- **多端同步**:收藏数据云端存储,多设备访问保持一致 - **多端同步**:收藏数据云端存储,多设备访问保持一致
- **观看状态**:收藏夹中显示观看进度和当前集数 - **观看状态**:收藏夹中显示观看进度和当前集数
- **批量管理**:支持批量删除和清空收藏 - **批量管理**:支持批量删除和清空收藏
### PWA 特性 ### PWA 特性
- **离线缓存**:支持离线访问已缓存的内容 - **离线缓存**:支持离线访问已缓存的内容
- **桌面安装**:可安装到桌面,提供原生应用体验 - **桌面安装**:可安装到桌面,提供原生应用体验
- **推送通知**:支持新内容推送和更新提醒 - **推送通知**:支持新内容推送和更新提醒
- **响应式设计**:完美适配各种屏幕尺寸 - **响应式设计**:完美适配各种屏幕尺寸
## 📢 项目来源与声明
- 本项目自「MoonTV」演进而来为其二创/继承版本,持续维护与改进功能与体验。
- 代码中保留并致谢原有作者与社区贡献者;如有授权或版权问题,请与我们联系以尽快处理。
- KatelyaTV 致力于在原作优秀基础上,提供更易部署、更友好、更稳定的使用体验。
## 🚀 部署 ## 🚀 部署
本项目**支持 Vercel、Docker 和 Cloudflare** 部署。 本项目**支持 Vercel、Docker 和 Cloudflare** 部署。
@ -167,7 +180,7 @@ docker pull ghcr.io/senshinya/moontv:latest
# 运行容器 # 运行容器
# -d: 后台运行 -p: 映射端口 3000 -> 3000 # -d: 后台运行 -p: 映射端口 3000 -> 3000
docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/senshinya/moontv:latest docker run -d --name katelyatv -p 3000:3000 --env PASSWORD=your_password ghcr.io/senshinya/moontv:latest
``` ```
访问 `http://服务器 IP:3000` 即可。(需自行到服务器控制台放通 `3000` 端口) 访问 `http://服务器 IP:3000` 即可。(需自行到服务器控制台放通 `3000` 端口)
@ -180,9 +193,9 @@ docker run -d --name moontv -p 3000:3000 --env PASSWORD=your_password ghcr.io/se
```yaml ```yaml
services: services:
moontv: katelyatv:
image: ghcr.io/senshinya/moontv:latest image: ghcr.io/senshinya/moontv:latest
container_name: moontv container_name: katelyatv
restart: unless-stopped restart: unless-stopped
ports: ports:
- '3000:3000' - '3000:3000'
@ -197,9 +210,9 @@ services:
```yaml ```yaml
services: services:
moontv-core: katelyatv-core:
image: ghcr.io/senshinya/moontv:latest image: ghcr.io/senshinya/moontv:latest
container_name: moontv container_name: katelyatv
restart: unless-stopped restart: unless-stopped
ports: ports:
- '3000:3000' - '3000:3000'
@ -207,26 +220,26 @@ services:
- USERNAME=admin - USERNAME=admin
- PASSWORD=admin_password - PASSWORD=admin_password
- NEXT_PUBLIC_STORAGE_TYPE=redis - NEXT_PUBLIC_STORAGE_TYPE=redis
- REDIS_URL=redis://moontv-redis:6379 - REDIS_URL=redis://katelyatv-redis:6379
- NEXT_PUBLIC_ENABLE_REGISTER=true - NEXT_PUBLIC_ENABLE_REGISTER=true
networks: networks:
- moontv-network - katelyatv-network
depends_on: depends_on:
- moontv-redis - katelyatv-redis
# 如需自定义配置,可挂载文件 # 如需自定义配置,可挂载文件
# volumes: # volumes:
# - ./config.json:/app/config.json:ro # - ./config.json:/app/config.json:ro
moontv-redis: katelyatv-redis:
image: redis image: redis
container_name: moontv-redis container_name: katelyatv-redis
restart: unless-stopped restart: unless-stopped
networks: networks:
- moontv-network - katelyatv-network
# 如需持久化 # 如需持久化
# volumes: # volumes:
# - ./data:/data # - ./data:/data
networks: networks:
moontv-network: katelyatv-network:
driver: bridge driver: bridge
``` ```
@ -242,7 +255,7 @@ networks:
| --------------------------- | ----------------------------------------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | | --------------------------- | ----------------------------------------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| USERNAME | redis 部署时的管理员账号 | 任意字符串 | (空) | | USERNAME | redis 部署时的管理员账号 | 任意字符串 | (空) |
| PASSWORD | 默认部署时为唯一访问密码redis 部署时为管理员密码 | 任意字符串 | (空) | | PASSWORD | 默认部署时为唯一访问密码redis 部署时为管理员密码 | 任意字符串 | (空) |
| SITE_NAME | 站点名称 | 任意字符串 | MoonTV | | SITE_NAME | 站点名称 | 任意字符串 | KatelyaTV |
| ANNOUNCEMENT | 站点公告 | 任意字符串 | 本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。 | | ANNOUNCEMENT | 站点公告 | 任意字符串 | 本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。 |
| NEXT_PUBLIC_STORAGE_TYPE | 播放记录/收藏的存储方式 | localstorage、redis、d1、upstash | localstorage | | NEXT_PUBLIC_STORAGE_TYPE | 播放记录/收藏的存储方式 | localstorage、redis、d1、upstash | localstorage |
| REDIS_URL | redis 连接 url若 NEXT_PUBLIC_STORAGE_TYPE 为 redis 则必填 | 连接 url | 空 | | REDIS_URL | redis 连接 url若 NEXT_PUBLIC_STORAGE_TYPE 为 redis 则必填 | 连接 url | 空 |
@ -278,7 +291,7 @@ networks:
- `name`:在人机界面中展示的名称。 - `name`:在人机界面中展示的名称。
- `detail`:(可选)部分无法通过 API 获取剧集详情的站点,需要提供网页详情根 URL用于爬取。 - `detail`:(可选)部分无法通过 API 获取剧集详情的站点,需要提供网页详情根 URL用于爬取。
MoonTV 支持标准的苹果 CMS V10 API 格式。 KatelyaTV 支持标准的苹果 CMS V10 API 格式。
修改后 **无需重新构建**,服务会在启动时读取一次。 修改后 **无需重新构建**,服务会在启动时读取一次。
@ -336,12 +349,13 @@ MoonTV 支持标准的苹果 CMS V10 API 格式。
## 📄 License ## 📄 License
[MIT](LICENSE) © 2025 MoonTV & Contributors [MIT](LICENSE) © 2025 KatelyaTV & Contributors
## 🙏 致谢 ## 🙏 致谢
- [ts-nextjs-tailwind-starter](https://github.com/theodorusclarence/ts-nextjs-tailwind-starter) — 项目最初基于该脚手架。 - [ts-nextjs-tailwind-starter](https://github.com/theodorusclarence/ts-nextjs-tailwind-starter) — 项目最初基于该脚手架。
- [LibreTV](https://github.com/LibreSpark/LibreTV) — 由此启发,站在巨人的肩膀上。 - [LibreTV](https://github.com/LibreSpark/LibreTV) — 由此启发,站在巨人的肩膀上。
- MoonTV 原始项目与作者社区 — 感谢原作奠定坚实基础。
- [ArtPlayer](https://github.com/zhw2590582/ArtPlayer) — 提供强大的网页视频播放器。 - [ArtPlayer](https://github.com/zhw2590582/ArtPlayer) — 提供强大的网页视频播放器。
- [HLS.js](https://github.com/video-dev/hls.js) — 实现 HLS 流媒体在浏览器中的播放支持。 - [HLS.js](https://github.com/video-dev/hls.js) — 实现 HLS 流媒体在浏览器中的播放支持。
- 感谢所有提供免费影视接口的站点。 - 感谢所有提供免费影视接口的站点。