项目简介
🎬 MoonTV 是一个开箱即用的、跨平台的影视聚合播放器。它基于 Next.js 14 + Tailwind CSS + TypeScript 构建,支持多资源搜索、在线播放、收藏同步、播放记录、本地/云端存储,让你可以随时随地畅享海量免费影视内容。项目地址:https://github.com/senshinya/moontv
✨ 功能特性
- 🔍 多源聚合搜索:内置数十个免费资源站点,一次搜索立刻返回全源结果。
- 📄 丰富详情页:支持剧集列表、演员、年份、简介等完整信息展示。
- ▶️ 流畅在线播放:集成 HLS.js & ArtPlayer。
- ❤️ 收藏 + 继续观看:支持 Redis/D1 存储,多端同步进度。
- 📱 PWA:离线缓存、安装到桌面/主屏,移动端原生体验。
- 🌗 响应式布局:桌面侧边栏 + 移动底部导航,自适应各种屏幕尺寸。
- 🚀 极简部署:一条 Docker 命令即可将完整服务跑起来,或免费部署到 Vercel 和 Cloudflare。
- 👿 智能去广告:自动跳过视频中的切片广告(实验性)


部署流程
适用于自建服务器 / NAS / 群晖等场景。
1. 直接运行(最简单)
# 拉取预构建镜像
docker pull ghcr.io/senshinya/moontv:latest
# 运行容器
# -d: 后台运行 -p: 映射端口 3000 -> 3000
docker run -d --name moontv -p 3000:3000 ghcr.io/senshinya/moontv:latest
访问 http://服务器 IP:3000 即可。(需自行到服务器控制台放通 3000 端口)
2.Docker Compose 最佳实践
docker-compose文件内容
services:
moontv-core:
image: ghcr.nju.edu.cn/senshinya/moontv:latest
container_name: moontv
restart: unless-stopped
ports:
- '3000:3000'
environment:
- USERNAME=admin
- PASSWORD=admin_PASSWORD
- SITE_NAME=MoonTV
- ANNOUNCEMENT=本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。
- NEXT_PUBLIC_STORAGE_TYPE=redis
- REDIS_URL=redis://moontv-redis:6379
- NEXT_PUBLIC_ENABLE_REGISTER=true
- NEXT_PUBLIC_SEARCH_MAX_PAGE=50
- NEXT_PUBLIC_SEARCH_MAX_PAGE=url prefix
networks:
- moontv-network
depends_on:
- moontv-redis
# 如需自定义配置,可挂载文件
# volumes:
# - ./config.json:/app/config.json:ro
moontv-redis:
image: redis
container_name: moontv-redis
restart: unless-stopped
networks:
- moontv-network
# 如需持久化
# volumes:
# - ./data:/data
networks:
moontv-network:
driver: bridge
.env
CONTAINER_NAME=moontv
HOST_IP=0.0.0.0
WEB_HTTP_PORT=3000
CPUS=0
MEMORY_LIMIT=0MB
APP_PATH=/www/dk_project/dk_app/moontv/moontv_asx1
环境变量
| 变量 | 说明 | 可选值 | 默认值 |
|---|---|---|---|
| USERNAME | redis 部署时的管理员账号 | 任意字符串 | (空) |
| PASSWORD | 默认部署时为唯一访问密码,redis 部署时为管理员密码 | 任意字符串 | (空) |
| SITE_NAME | 站点名称 | 任意字符串 | MoonTV |
| ANNOUNCEMENT | 站点公告 | 任意字符串 | 本网站仅提供影视信息搜索服务,所有内容均来自第三方网站。本站不存储任何视频资源,不对任何内容的准确性、合法性、完整性负责。 |
| NEXT_PUBLIC_STORAGE_TYPE | 播放记录/收藏的存储方式 | localstorage(本地浏览器存储)、redis(仅 docker 支持) | localstorage |
| REDIS_URL | redis 连接 url,若 NEXT_PUBLIC_STORAGE_TYPE 为 redis 则必填 | 连接 url | 空 |
| NEXT_PUBLIC_ENABLE_REGISTER | 是否开放注册,仅在 redis 部署时生效 | true / false | false |
| NEXT_PUBLIC_SEARCH_MAX_PAGE | 搜索接口可拉取的最大页数 | 1-50 | 5 |
| NEXT_PUBLIC_IMAGE_PROXY | 默认的浏览器端图片代理 | url prefix | (空) |
配置说明
所有可自定义项集中在根目录的 config.json 中:
{
"cache_time": 7200,
"api_site": {
"dyttzy": {
"api": "http://caiji.dyttzyapi.com/api.php/provide/vod",
"name": "电影天堂资源",
"detail": "http://caiji.dyttzyapi.com"
}
// ...更多站点
}
}
cache_time:接口缓存时间(秒)。api_site:你可以增删或替换任何资源站,字段说明:key:唯一标识,保持小写字母/数字。api:资源站提供的vodJSON API 根地址。name:在人机界面中展示的名称。detail:(可选)部分无法通过 API 获取剧集详情的站点,需要提供网页详情根 URL,用于爬取。
MoonTV 支持标准的苹果 CMS V10 API 格式。
修改后 无需重新构建,服务会在启动时读取一次。
管理员配置
该特性目前仅支持通过 Docker+Redis 或 Cloudflare+D1 的部署方式使用
支持在运行时动态变更服务配置
设置环境变量 USERNAME 和 PASSWORD 即为站长用户,站长可设置用户为管理员
站长或管理员访问 /admin 即可进行管理员配置
AndroidTV 使用
目前该项目可以配合 OrionTV 在 Android TV 上使用,可以直接作为 OrionTV 后端
暂时收藏夹与播放记录和网页端隔离,后续会支持同步用户数据
总结
MoonTV确实是一个非常实用的工具,尤其适合Docker爱好者和喜欢折腾技术的老铁们。它用极简的部署流程解决了传统影视聚合网站的痛点,无论是多源搜索、播放流媒体,还是跨平台同步,都能满足大部分需求。不过需要提醒的是,项目提供的资源均来自第三方网站,老铁们在使用时要注意遵守相关法律法规,避免造成不必要的麻烦。
项目地址和使用地址
- • 项目地址:https://github.com/senshinya/moontv
————————————————————————————————————————————————
和你有类似需求的朋友不少,MOONTV停更后,确实涌现了不少新的开源视频部署项目。我把它们分成了几类,方便你参考:
📺 延续与替代:直接延续MOONTV血脉的项目
如果你想要和MOONTV体验最接近的,可以优先看看下面这几个“精神续作”,它们多是在原项目基础上迭代而来。
- KatelyaTV:基于MOONTV二次开发,被公认是MOONTV最直接的“继承者”。维护更新频率高,支持Docker、Vercel、Cloudflare Pages等多种现代部署方式,功能也延续了聚合搜索、断点续播、多用户支持等特点。部署需准备配置文件。
- DecoTV:同样是基于MOONTV(或LibreTV)二次开发,部署方式非常丰富(Docker、Cloudflare Pages、Vercel、Netlify等)。UI设计经过优化,体验更现代。
- 月饼TV (MoonCakeTV):基于MOONTV二次开发,界面简洁美观。支持Docker、Vercel等多种部署方式,在多端适配上有一定优化。
原项目LibreTV:这个项目有时会和MOONTV一起被提及,可以作为基础选项了解。
🚀 开箱即用的聚合播放器
这类项目与MOONTV的核心功能(聚合搜索与播放)高度一致,部署简单,上手容易。
- KVideo:现代化的聚合播放应用,UI采用Next.js 16和React 19,设计感和视觉体验突出。亮点包括整合豆瓣信息(自动获取豆瓣评分、演员信息)、深度优化的移动端播放体验。可Docker部署,支持密码访问控制。
- Tbox:一款多功能APP空壳(支持安卓/iOS),支持导入直播源、影视和听书源。支持嗅探网页播放,尤其针对各类网盘资源(如夸克、UC、天翼云盘)的播放做了优化。
🏠 自建媒体中心(媒体服务器)
这类项目更侧重于管理和播放你本地存储的电影、电视剧等媒体文件,功能更专业。
- Jellyfin:Emby和Plex的开源替代品,功能强大的家庭媒体服务器,是目前社区最主流的媒体中心方案之一。
- Lunarr (Lunarr-Go):一个较新的自托管媒体流服务器,目标也是成为Plex的替代品,可在无头服务器上监控和管理影视文件。
- ErsatzTV:非常独特的项目,能把你的本地媒体库(或Plex、Jellyfin里的内容)变成一个直播电视频道。支持IPTV和HDHomeRun模拟,非常适合有本地资源但又怀念传统“电视”感觉的用户。
📡 IPTV / 直播流处理工具
如果你的需求偏向网络电视直播源的管理和转播,以下工具更为专业。
- iptvnator:为IPTV设计的开源播放器,采用现代Web技术(Tauri + Angular)开发,界面美观,功能全面。支持Docker部署和多平台兼容,提供了EPG电子节目指南等高级功能。
- Tvheadend:开源电视流媒体服务器,适合拥有电视调谐器(如HDHomeRun)或希望通过网络分发IPTV内容的用户。
- Owncast:专注自建直播,帮你在自己的服务器上运行一个类似Twitch的直播服务,完全掌控直播内容和观众管理。
- Restreamer:自托管视频流媒体服务器,专注于简化直播和多平台推流(同时推流到YouTube、Twitch等)流程。
🏗️ 传统视频CMS(内容管理系统)
这类是传统的、功能更全面的建站系统,适合搭建独立的、带有后台管理的影视门户网站。
- 易酷CMS:基于PHP+MySQL的传统开源影视内容管理系统,功能完善,可承载较大数据量,适合有建站经验的用户。
🛠️ 其他实用工具
- 全部入 (allinone):这个项目主要用于聚合IPTV直播源,而非完整的影视播放器。
- StreamShield Proxy:一个多源流媒体聚合代理工具,主要用于解决因IP限制导致的播放问题。
- LunaTV-config源:一个为LunaTV等应用提供API和配置管理的项目,属于辅助工具。
📝 总结
简单来说,这几个分支项目的侧重点对比如下:
- 直接延续派:KatelyaTV、DecoTV、月饼TV。最适合追求MOONTV原始体验的用户。
- 开箱即用派:KVideo、Tbox。KVideo界面现代,整合豆瓣信息;Tbox则对网盘和APP端支持较好。
- 本地媒体派:Jellyfin、Lunarr、ErsatzTV。适合有本地媒体管理需求,想打造专业家庭影院的用户。
- IPTV专业派:iptvnator、Tvheadend、Owncast、Restreamer。适用于需要处理网络电视源或进行直播流处理的场景。
希望这份梳理能帮你找到心仪的项目。如果你对某个项目感兴趣想了解更多,随时可以再问我~