MoonTV - 免费开源的跨平台影视聚合播放器

MoonTV - 免费开源的跨平台影视聚合播放器
壹拾贰同学🎥 MoonTV 是一款即开即用的跨平台影视聚合播放器,基于 Next.js 14, Tailwind CSS, 和 TypeScript 打造。它集成了多源搜索、在线播放、收藏同步、播放记录以及本地/云端存储功能,让你随时随地畅享海量免费影视资源。
🌟 核心功能
🔍 多源聚合搜索整合数十个免费资源站点,一键搜索即可获取全网结果。
📄 详尽影视信息提供剧集列表、演员信息、年份、简介等完整详情展示。
▶️ 流畅在线播放集成 HLS.js 和 ArtPlayer,确保顺畅的播放体验。
❤️ 收藏与播放进度同步支持 Redis 或 D1 存储,实现多端同步收藏和播放进度。
📱 PWA 支持提供离线缓存功能,可安装到桌面或手机主屏,带来原生应用般的体验。
🌗 响应式设计桌面端侧边栏与移动端底部导航自适应,适配各种屏幕尺寸。
🚀 简易部署支持一键 Docker 部署,或免费部署到 Vercel 和 Cloudflare。
👿 智能广告过滤实验性功能,自动跳过视频中的广告片段,提升观看体验。
🚀 部署指南
MoonTV 支持多种部署方式,包括 Vercel, Cloudflare, 和 Docker,满足不同使用场景。
1. Vercel 部署
简单易用,适合零运维成本的个人用户,免费额度足以满足日常需求。
Fork MoonTV 仓库 到你的 GitHub 账户。
登录 Vercel,点击 Add New → Project,选择你 Fork 的仓库。
(推荐)在环境变量中设置 PASSWORD,增强安全性。
保持默认配置,完成首次部署。
如需自定义配置,修改 Fork 仓库中的 config.json 文件。
每次推送到 main 分支将自动触发重新构建。
部署完成后,可通过 Vercel 提供的域名访问,或绑定自定义域名。
2. Cloudflare 部署
支持本地存储或 D1 数据库,推荐使用密钥型环境变量以提升安全性。
本地存储部署
Fork MoonTV 仓库 到你的 GitHub 账户。
登录 Cloudflare,进入 Workers and Pages,点击 Create。
选择 Pages,导入 Fork 的仓库。
设置构建命令:
1 | pnpm install --frozen-lockfile && pnpm run pages:build |
框架预设:无
输出目录:
1 | .vercel/output/static |
部署后,在设置中启用 nodejs_compat 兼容性标志。
(推荐)在 Settings → Variables and Secrets 中添加 PASSWORD 密钥,重新部署。
如需自定义,修改 config.json 文件。
推送至 main 分支将触发自动构建。
D1 数据库支持
在 Cloudflare 的 D1 SQL 数据库 中创建新数据库,名称任意。
进入数据库的 Explore Data,粘贴 D1 初始化脚本,点击 Run All 执行。
返回 Pages 项目,在 Settings → Bindings 中绑定 D1 数据库,变量名设为 DB。
添加环境变量:
NEXT_PUBLIC_STORAGE_TYPE=d1
USERNAME 和 PASSWORD(站长账号)。
重新部署项目。
3. Docker 部署
适合自建服务器、NAS 或群晖等场景,部署简单高效。
拉取预构建镜像:
1 | docker pull ghcr.io/senshinya/moontv:latest |
运行容器:
1 | docker run -d --name moontv -p 3000:3000 ghcr.io/senshinya/moontv:latest |
访问 http://服务器IP:3000(需确保服务器防火墙已开放 3000 端口)。
📌 注意事项
安全性:强烈建议设置 PASSWORD 环境变量以保护你的部署。
自定义配置:根据需求修改 config.json,例如调整资源站点或播放设置。
网络要求:在中国使用可能需要代理访问部分资源站点,建议配置可靠代理。
法律合规:MoonTV 仅为播放器工具,用户需遵守所在地区的法律法规。
🎉 总结
MoonTV 提供了一个功能强大、部署简单的影视聚合平台,无论是开发者还是普通用户,都能轻松上手。立即 Fork MoonTV 仓库 开始你的免费影视之旅!
原文参考:零度博客