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

MoonTV:基于 Next.js 的开源跨平台影视聚合播放器

MoonTV 是一款基于 Next.js 和 TypeScript 构建的开源跨平台影视聚合播放器。它支持多资源站搜索、在线播放及数据同步,采用 Docker 部署,兼容 Linux、Windows 及 macOS。项目提供 HLS 流媒体支持、PWA 安装及个性化主题配置,适合个人搭建私有影视库或家庭媒体中心。通过自研存储方案(Redis/Kvrocks)实现高效缓存与进度管理,MIT 协议开源,便于二次开发与扩展。

黑客帝国发布于 2026/3/22更新于 2026/6/719 浏览

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

MoonTV 是一个开箱即用的跨平台开源影视聚合播放器。它基于现代 Web 技术栈构建,支持多资源搜索、在线播放、收藏同步及云端存储,让用户可以随时随地畅享海量影视内容。

GitHub 地址:https://github.com/MoonTechLab/LunaTV

项目背景与特色

针对影视内容分散的问题,MoonTV 旨在通过技术手段实现聚合管理。项目采用 MIT 许可证开源,强调跨平台兼容性与个性化体验。

  • 影视聚合:整合多源内容,打破信息孤岛
  • 智能搜索:支持多站同时检索与结果去重
  • 跨平台支持:覆盖桌面端、移动端及电视端
  • 数据同步:多设备间收藏与进度实时同步
  • 开源免费:代码透明,便于二次开发

技术亮点

  • Next.js 14:利用 App Router 提升首屏性能
  • Tailwind CSS:原子化 CSS 快速构建响应式界面
  • TypeScript:强类型定义减少运行时错误
  • HLS 播放:原生流媒体协议支持
  • PWA 支持:可安装为本地应用,离线可用

核心功能体系

内容搜索

支持多资源站同时搜索,具备智能匹配与实时结果展示能力。系统内置缓存机制与去重处理,确保搜索结果的质量与加载速度。结果页提供完整元数据、缩略图预览及快捷操作入口。

视频播放

播放器支持多种视频格式及 HLS 流媒体,允许用户切换清晰度、音轨与字幕。具备流畅缓冲优化、画质自适应及全屏模式。快捷键控制、自定义皮肤及错误处理机制提升了整体观影体验。

内容管理

提供完善的收藏管理与观看记录功能。支持分类标签、批量操作及隐私控制。数据支持导入导出,方便用户迁移或备份个人库。

用户与系统服务

  • 用户系统:多账户隔离,权限分级管理
  • 同步服务:多端实时同步,冲突自动解决
  • 通知服务:更新提醒与消息推送
  • 配置管理:主题、存储、网络参数灵活配置
  • 安全监控:访问控制、日志审计及漏洞防护

安装与配置

环境准备

建议硬件配置 8GB RAM 以上,20GB+ 存储空间。软件层面需 Docker 环境(推荐)或 Node.js 运行环境。操作系统支持 Linux、Windows 及 macOS。

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/Redis 存储部署

MoonTV 支持多种存储后端,以下分别展示 Kvrocks 与 Redis 的 docker-compose.yml 示例。

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

配置说明

环境变量配置 基础配置中需设置用户名、密码及站点域名。存储类型可选择 kvrocks、redis 或 upstash。

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

资源站配置 通过 JSON 文件定义 API 接口与分类规则,支持自定义热门电影、美剧等分类。

主题配置 支持自定义主色调、深色模式、布局宽度及播放器默认行为(如自动播放、默认画质)。

使用指南

基本工作流

安装部署 → 资源配置 → 内容搜索 → 视频播放 → 内容管理 → 多端同步。

内容搜索与播放

  1. 搜索:打开搜索界面输入关键词,可选指定源站,查看带缩略图的实时结果。
  2. 播放:选择视频后查看详情,支持倍速、字幕切换及后台播放。
  3. 管理:收藏喜欢的内容,查看观看历史,进行多端数据同步。

个性化设置

可在设置中调整界面主题颜色、字体样式及布局紧凑度。播放器偏好包括默认画质、字幕语言及音量记忆。通知设置支持免打扰模式与更新提醒。

多端适配

  • 桌面端:浏览器直接访问或安装 PWA,支持键盘快捷键。
  • 移动端:移动浏览器访问,触控优化,支持离线缓存。
  • 电视端:大屏界面适配,遥控器操作友好。

应用场景

MoonTV 适用于多种场景:个人用户可搭建私有影视库,集中管理收藏;家庭用户可建立共享媒体中心,配合家长控制功能;开发者可将其作为学习 Next.js 与 TypeScript 的实战项目;小型团队可用于内部资源共享;教育机构则可建设教学媒体库,按课程组织内容。

总结

MoonTV 通过多源搜索、流畅播放、数据同步及跨平台特性,为影视内容管理提供了完整的解决方案。其基于 Next.js 与 TypeScript 的技术架构保证了项目的可维护性与扩展性。无论是自建私有云盘还是探索前端技术,MoonTV 都是一个值得尝试的开源项目。

注意事项:

  • 需要自行配置合法的内容源
  • 生产环境务必修改默认密码
  • 定期备份数据库以防数据丢失
  • 多设备使用前建议测试兼容性

目录

  1. MoonTV:开源跨平台影视聚合播放器
  2. 项目背景与特色
  3. 技术亮点
  4. 核心功能体系
  5. 内容搜索
  6. 视频播放
  7. 内容管理
  8. 用户与系统服务
  9. 安装与配置
  10. 环境准备
  11. Docker 部署
  12. 复制环境变量模板
  13. 编辑配置
  14. 启动服务
  15. Kvrocks/Redis 存储部署
  16. 手动安装
  17. 配置环境变量
  18. 构建并启动
  19. 配置说明
  20. 使用指南
  21. 基本工作流
  22. 内容搜索与播放
  23. 个性化设置
  24. 多端适配
  25. 应用场景
  26. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 自然语言处理在法律领域的应用与实战
  • 皮带输送机 7×24h 全域智能巡检机器人方案
  • Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码
  • C++ 类与对象:封装特性的实现与实战应用
  • Python 使用 Ksycopg2 驱动连接和操作 Kingbase 数据库
  • 多 AI 模型并行内容生成与对比分析工作流构建与解析
  • Java 实现文件夹及子目录内容的完整复制
  • Android Framework 源码开发揭秘:系统启动与核心组件深度解析
  • TRAE、Qoder、Cursor 与 GitHub Copilot 深度对比:AI 编程工具选型指南
  • Whisper 模型版本及下载链接
  • AI 开发必备 4 个 Skills 组合:流畅掌控流程与灵活控制 AI
  • 离线语音转录工具 Whispering 本地化方案解析
  • JavaScript Proxy 代理机制与核心方法详解

相关免费在线工具

  • 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