跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
TypeScriptNode.js大前端

MoonTV 开源跨平台影视聚合播放器

MoonTV 是一款基于 Next.js 和 TypeScript 构建的开源跨平台影视聚合播放器。支持多源搜索、在线播放、数据同步及 PWA 部署。提供 Docker 快速安装方案,适用于个人影视库、家庭媒体中心及开发者学习场景。采用 MIT 协议开源,强调多端体验与个性化配置。

锁机制发布于 2026/3/30更新于 2026/10/24130 浏览

简介

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": "热门"
    },
    {
      "name": "美剧精选",
      "type": "tv",
      "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": "1080p",
    "auto_play": true,
    "subtitle_language": "zh",
    "volume_level": 80
  }
}

使用指南

基本工作流

使用 MoonTV 的基本流程包括:安装部署 → 资源配置 → 内容搜索 → 视频播放 → 内容管理 → 多端同步。整个过程设计为简单高效。

基本使用

内容搜索与播放:

  1. 搜索内容:打开搜索界面,输入关键词,选择搜索源站 (可选),执行搜索操作,查看搜索结果。
  2. 播放视频:选择要播放的视频,查看视频详情信息,开始播放视频,控制播放过程,调整播放设置。
  3. 内容管理:收藏喜欢的内容,管理收藏内容,查看观看记录,内容分类管理,多端数据同步。

个性化设置:

  1. 主题设置:选择界面主题,自定义颜色方案,调整界面布局,设置字体样式,保存个性化设置。
  2. 播放设置:默认播放画质,字幕语言设置,音频轨道设置,播放行为偏好,缓存策略设置。
  3. 通知设置:内容更新通知,系统消息通知,消息推送设置,免打扰模式设置,通知信息管理。

多端使用:

  1. 桌面端:浏览器直接访问,安装为 PWA 应用,使用键盘快捷键,多窗口同时使用,浏览器扩展支持。
  2. 移动端:移动浏览器访问,添加到主屏幕,触控界面优化,移动端界面适配,离线缓存支持。
  3. 电视端:电视浏览器访问,遥控器操作支持,大屏幕界面优化,家庭影院体验,多设备协同使用。
高级用法

资源站管理:

  • 资源配置:添加新的资源站,配置资源站 API,测试资源站连接,资源站性能优化,资源站故障处理。
  • 资源优化:资源缓存策略,资源站负载均衡,资源质量评估,自动切换资源站,备用资源站配置。
  • 内容更新:内容自动更新,手动更新内容,更新内容检测,内容版本管理,内容更新通知。

数据管理:

  • 数据备份:自动数据备份,手动数据备份,备份策略配置,备份存储管理,备份恢复测试。
  • 数据同步:多设备数据同步,实时数据同步,数据冲突解决,同步操作日志,同步状态监控。
  • 数据迁移:数据导入功能,数据导出功能,数据格式转换,数据迁移工具,数据验证检查。

系统优化:

  • 性能优化:系统缓存优化,数据库性能优化,网络性能优化,资源加载优化,代码性能优化。
  • 监控优化:系统性能监控,资源使用监控,错误异常监控,用户行为分析,优化建议生成。
  • 安全优化:系统安全加固,安全漏洞修复,访问控制优化,数据保护增强,安全审计优化。

应用场景实例

案例 1:个人影视库管理
  • 场景:个人影视内容收藏与管理
  • 实施方法:收集喜欢的影视内容,分类整理影视内容,多设备数据同步,观看记录和进度管理,个性化推荐和设置。
  • 价值:便捷内容管理,多设备一致体验,个性化观影体验,个人数据安全,无限内容扩展。
案例 2:家庭媒体中心
  • 场景:家庭共享影视娱乐中心
  • 实施方法:部署家庭媒体中心,聚合家庭喜欢内容,多家庭成员账户,共享播放列表,家长控制功能。
  • 价值:家庭娱乐共享,家庭友好内容,多家庭成员支持,集中内容管理,节约娱乐成本。
案例 3:开发者学习平台
  • 场景:开发者学习现代 Web 技术
  • 实施方法:学习项目源代码,实践现代 Web 技术,扩展项目功能,实践部署运维,参与开源贡献。
  • 价值:学习先进技术,真实项目实践,参与开源社区,提升开发技能,个人作品展示。
案例 4:小型团队协作
  • 场景:小团队影视内容协作
  • 实施方法:部署团队版本,团队成员权限管理,团队内容共享,协作功能使用,团队项目管理。
  • 价值:提高协作效率,团队知识共享,统一内容管理,精细权限控制,团队成本优化。
案例 5:教育机构媒体库
  • 场景:教育机构教学媒体库
  • 实施方法:部署教育版本,收集教学资源,按课程组织内容,学生访问管理,教学场景应用。
  • 价值:丰富教学资源,内容组织管理,学生访问控制,支持教学工作,教育技术创新。

总结

MoonTV 作为一个功能强大的开源影视聚合播放器,通过其多源搜索、流畅播放、数据同步、跨平台支持和开源特性,为影视内容管理提供了完整的解决方案。采用 MIT 许可证开源,免费用于学术和商业用途。适用于个人影视库管理、家庭媒体中心、开发者学习平台、小型团队协作及教育机构媒体库等场景。

目录

  1. 简介
  2. 主要功能
  3. 核心功能体系
  4. 安装与配置
  5. 环境准备
  6. 安装步骤
  7. 使用 Docker Compose 部署
  8. 配置环境变量
  9. 启动服务
  10. 访问应用
  11. 手动安装部署
  12. 安装依赖
  13. 环境配置
  14. 构建应用
  15. 启动服务
  16. 访问应用
  17. 配置说明
  18. 基础配置
  19. 存储配置
  20. 或
  21. 或
  22. 功能配置
  23. 使用指南
  24. 基本工作流
  25. 基本使用
  26. 高级用法
  27. 应用场景实例
  28. 案例 1:个人影视库管理
  29. 案例 2:家庭媒体中心
  30. 案例 3:开发者学习平台
  31. 案例 4:小型团队协作
  32. 案例 5:教育机构媒体库
  33. 总结

更多推荐文章

查看全部
  • JavaSE 封装详解
  • 数据结构:图的定义、存储与遍历应用
  • Java 使用 Apache POI 导出 Excel 文件
  • Sass、Less 与 Scss 核心差异详解
  • Python 经典编程示例及实际应用解析
  • llama.cpp Docker 部署:容器化推理服务搭建
  • MCP 协议详解:与 Function Call 的区别及实战使用
  • DeepSeek 深度使用指南:提示词工程与本地知识库搭建
  • 2026 年 3 月全球 AI 前沿动态与技术突破
  • 基于 Claude Code 与 OpenClaw 的自动化教学视频生成方案
  • OpenClaw 及主流 AI Agent 框架横评与场景推荐
  • Spring AI Alibaba 短期记忆与长期记忆实现原理
  • Transformer 架构详解与大模型应用实战指南
  • 昇腾 NPU 部署 Llama-2-7b:六大场景性能实测
  • ROS 2 实战:海龟仿真器启动与 ros2 run 命令详解
  • Linux 系统 MySQL 安装配置教程:从卸载 MariaDB 到优化 my.cnf
  • Linux 系统下使用 Git 下载 GitHub 项目指南
  • ClawdBot 本地 AI 网关:Docker 镜像集成 Whisper 与 PaddleOCR 部署
  • 具身智能年度报告:RoboChallenge 4 万次真机评测显示最强模型成功率仅 51%
  • 中小团队低成本搭建项目管理系统:Ubuntu 下 Dootask 私有化部署实战

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online