简介
MoonTV 是一个开箱即用的、跨平台的开源影视聚合播放器。它基于现代 Web 技术栈构建,支持多资源搜索、在线播放、收藏同步、播放记录和云端存储,让用户可以随时随地畅享海量免费影视内容。
GitHub 地址:https://github.com/MoonTechLab/LunaTV
技术亮点:
- Next.js 14:现代 React 框架
- Tailwind CSS:实用 CSS 框架
- TypeScript:类型安全开发
- HLS 播放:流媒体播放支持
- PWA 支持:渐进式 Web 应用
主要功能
核心功能体系
MoonTV 提供了一套完整的影视播放解决方案,涵盖内容搜索、视频播放、内容管理、用户服务、多端同步、系统管理等多个方面。
内容搜索功能:
- 搜索能力:多源聚合、智能匹配、实时结果、过滤排序、历史记录
- 搜索优化:缓存机制、去重处理、质量评估、性能优化、错误处理
- 结果展示:丰富信息、分类展示、缩略图、详情预览、操作快捷
视频播放功能:
- 播放支持:多格式支持、HLS 流媒体、多清晰度切换、字幕加载、多音轨支持
- 播放体验:流畅播放、智能缓冲优化、画质自适应、完整播放控制、全屏支持
- 播放器特性:自定义皮肤、键盘快捷键、播放统计、错误处理、多浏览器兼容
内容管理功能:
- 收藏管理:内容收藏、分类管理、标签系统、智能推荐、批量操作
- 观看记录:记录同步、进度保存、历史管理、统计报告、隐私控制
- 内容组织:自定义分类、智能排序、过滤搜索、元数据支持、导入导出
用户服务功能:
- 用户系统:多用户支持、权限管理、个性化设置、数据隔离、社交功能
- 同步服务:多设备数据同步、实时同步、冲突解决、备份恢复、离线支持
- 通知服务:更新通知、系统消息通知、个性化提醒、推送服务、通知管理
系统管理功能:
- 配置管理:系统参数配置、界面主题设置、播放器配置、存储系统配置、网络参数配置
- 监控维护:系统运行监控、性能指标监控、日志管理、故障诊断处理、维护工具
- 安全管理:访问权限控制、数据加密保护、安全审计日志、漏洞防护、合规性检查
安装与配置
环境准备
系统要求:
- 硬件要求:内存 4GB+ RAM (推荐 8GB)、存储 20GB+ 可用空间、多核处理器、稳定网络连接
- 软件要求:Docker 环境、Node.js 运行环境、Redis/Kvrocks 数据库、现代浏览器、Linux/Windows/macOS
- 服务要求:自定义域名 (可选)、HTTPS 支持 (推荐)、持久化存储、系统监控支持
安装步骤
Docker 部署:
# 使用 Docker Compose 部署
git clone https://github.com/MoonTechLab/LunaTV.git
cd LunaTV
# 配置环境变量
cp .env.example .env
nano .env
# 启动服务
docker-compose up -d
# 访问应用
http://localhost:3000
Kvrocks 存储部署:
version: '3.8'
services:
moontv-core:
image: ghcr.io/moontechlab/lunatv:latest
container_name: moontv-core
restart: unless-stopped
ports:
- '3000:3000'
environment:
- USERNAME=admin
- PASSWORD=admin_password
- NEXT_PUBLIC_STORAGE_TYPE=kvrocks
- KVROCKS_URL=redis://moontv-kvrocks:6666
networks:
- moontv-network
depends_on:
- moontv-kvrocks
moontv-kvrocks:
image: apache/kvrocks
container_name: moontv-kvrocks
restart: unless-stopped
volumes:
- kvrocks-data:/var/lib/kvrocks
networks:
- moontv-network
networks:
moontv-network:
driver: bridge
volumes:
kvrocks-data:
Redis 存储部署:
version: '3.8'
services:
moontv-core:
image: ghcr.io/moontechlab/lunatv:latest
container_name: moontv-core
restart: unless-stopped
ports:
- '3000:3000'
environment:
- USERNAME=admin
- PASSWORD=admin_password
- NEXT_PUBLIC_STORAGE_TYPE=redis
- REDIS_URL=redis://moontv-redis:6379
networks:
- moontv-network
depends_on:
- moontv-redis
moontv-redis:
image: redis:alpine
container_name: moontv-redis
restart: unless-stopped
volumes:
- redis-data:/data
networks:
- moontv-network
networks:
moontv-network:
driver: bridge
volumes:
redis-data:
手动安装:
# 手动安装部署
git clone https://github.com/MoonTechLab/LunaTV.git
cd LunaTV
# 安装依赖
npm install
# 环境配置
cp .env.example .env
nano .env
# 构建应用
npm run build
# 启动服务
npm start
# 访问应用
http://localhost:3000
配置说明
环境变量配置:
# 基础配置
USERNAME=admin
PASSWORD=your_strong_password
SITE_BASE=https://your-domain.com
NEXT_PUBLIC_SITE_NAME=My MoonTV
# 存储配置
NEXT_PUBLIC_STORAGE_TYPE=kvrocks
KVROCKS_URL=redis://localhost:6666
# 或
NEXT_PUBLIC_STORAGE_TYPE=redis
REDIS_URL=redis://localhost:6379
# 或
NEXT_PUBLIC_STORAGE_TYPE=upstash
UPSTASH_URL=your-upstash-url
UPSTASH_TOKEN=your-upstash-token
# 功能配置
NEXT_PUBLIC_SEARCH_MAX_PAGE=5
NEXT_PUBLIC_DOUBAN_PROXY_TYPE=direct
NEXT_PUBLIC_FLUID_SEARCH=true
NEXT_PUBLIC_DISABLE_YELLOW_FILTER=false
资源站配置:
{
"cache_time": 7200,
"api_site": {
"site1": {
"api": "https://api.example1.com/vod",
"name": "示例资源站 1",
"detail": "https://www.example1.com"
},
"site2": {
"api": "https://api.example2.com/vod",
"name": "示例资源站 2",
"detail": "https://www.example2.com"
}
},
"custom_category": [
{
"name": "热门电影",
"type": "movie",
"query": "热门"
}
主题配置:
{
"theme": {
"primary_color": "#3b82f6",
"secondary_color": "#64748b",
"accent_color": "#f59e0b",
"dark_mode": true,
"font_family": "system-ui",
"rounded_corners": true
},
"layout": {
"sidebar_width": "280px",
"header_height": "64px",
"footer_visible": false,
"compact_mode": false
},
"player": {
"default_quality":
使用指南
基本工作流
使用 MoonTV 的基本流程包括:安装部署 → 资源配置 → 内容搜索 → 视频播放 → 内容管理 → 多端同步。整个过程设计为简单高效。
基本使用
内容搜索与播放:
- 搜索内容:打开搜索界面,输入关键词,选择搜索源站 (可选),执行搜索操作,查看搜索结果。
- 播放视频:选择要播放的视频,查看视频详情信息,开始播放视频,控制播放过程,调整播放设置。
- 内容管理:收藏喜欢的内容,管理收藏内容,查看观看记录,内容分类管理,多端数据同步。
个性化设置:
- 主题设置:选择界面主题,自定义颜色方案,调整界面布局,设置字体样式,保存个性化设置。
- 播放设置:默认播放画质,字幕语言设置,音频轨道设置,播放行为偏好,缓存策略设置。
- 通知设置:内容更新通知,系统消息通知,消息推送设置,免打扰模式设置,通知信息管理。
多端使用:
- 桌面端:浏览器直接访问,安装为 PWA 应用,使用键盘快捷键,多窗口同时使用,浏览器扩展支持。
- 移动端:移动浏览器访问,添加到主屏幕,触控界面优化,移动端界面适配,离线缓存支持。
- 电视端:电视浏览器访问,遥控器操作支持,大屏幕界面优化,家庭影院体验,多设备协同使用。
高级用法
资源站管理:
- 资源配置:添加新的资源站,配置资源站 API,测试资源站连接,资源站性能优化,资源站故障处理。
- 资源优化:资源缓存策略,资源站负载均衡,资源质量评估,自动切换资源站,备用资源站配置。
- 内容更新:内容自动更新,手动更新内容,更新内容检测,内容版本管理,内容更新通知。
数据管理:
- 数据备份:自动数据备份,手动数据备份,备份策略配置,备份存储管理,备份恢复测试。
- 数据同步:多设备数据同步,实时数据同步,数据冲突解决,同步操作日志,同步状态监控。
- 数据迁移:数据导入功能,数据导出功能,数据格式转换,数据迁移工具,数据验证检查。
系统优化:
- 性能优化:系统缓存优化,数据库性能优化,网络性能优化,资源加载优化,代码性能优化。
- 监控优化:系统性能监控,资源使用监控,错误异常监控,用户行为分析,优化建议生成。
- 安全优化:系统安全加固,安全漏洞修复,访问控制优化,数据保护增强,安全审计优化。
应用场景实例
案例 1:个人影视库管理
- 场景:个人影视内容收藏与管理
- 实施方法:收集喜欢的影视内容,分类整理影视内容,多设备数据同步,观看记录和进度管理,个性化推荐和设置。
- 价值:便捷内容管理,多设备一致体验,个性化观影体验,个人数据安全,无限内容扩展。
案例 2:家庭媒体中心
- 场景:家庭共享影视娱乐中心
- 实施方法:部署家庭媒体中心,聚合家庭喜欢内容,多家庭成员账户,共享播放列表,家长控制功能。
- 价值:家庭娱乐共享,家庭友好内容,多家庭成员支持,集中内容管理,节约娱乐成本。
案例 3:开发者学习平台
- 场景:开发者学习现代 Web 技术
- 实施方法:学习项目源代码,实践现代 Web 技术,扩展项目功能,实践部署运维,参与开源贡献。
- 价值:学习先进技术,真实项目实践,参与开源社区,提升开发技能,个人作品展示。
案例 4:小型团队协作
- 场景:小团队影视内容协作
- 实施方法:部署团队版本,团队成员权限管理,团队内容共享,协作功能使用,团队项目管理。
- 价值:提高协作效率,团队知识共享,统一内容管理,精细权限控制,团队成本优化。
案例 5:教育机构媒体库
- 场景:教育机构教学媒体库
- 实施方法:部署教育版本,收集教学资源,按课程组织内容,学生访问管理,教学场景应用。
- 价值:丰富教学资源,内容组织管理,学生访问控制,支持教学工作,教育技术创新。
总结
MoonTV 作为一个功能强大的开源影视聚合播放器,通过其多源搜索、流畅播放、数据同步、跨平台支持和开源特性,为影视内容管理提供了完整的解决方案。采用 MIT 许可证开源,免费用于学术和商业用途。适用于个人影视库管理、家庭媒体中心、开发者学习平台、小型团队协作及教育机构媒体库等场景。

