【开源发布】冬瓜TV —— 打造你的私人 Netflix!TMDb 智能刮削 + 全网聚合 + 极速播放

【开源发布】冬瓜TV —— 打造你的私人 Netflix!TMDb 智能刮削 全网聚合 极速播放

📽️ 前言

折腾了一段时间,基于Gemini3生成,使用 Node.js 和 Vue3 手搓了一个聚合影视站。起因是受不了市面上采集站那种满屏广告、封面图全是裂开(404)的糟糕体验。

参考了 MoonTV 的思路,我重构了整套 UI,并加入了一套**“强力纠错”**的封面匹配逻辑,让它看起来更像是一个成熟的流媒体平台(Netflix/Apple TV 风格)。

现将源码分享给大家,部署非常简单,适合挂在自己的 NAS 或 VPS 上。


核心特性(为什么选择它?)

1. 🖼️ TMDb 深度集成 & 智能搜图(核心亮点)

很多采集站的接口返回的图片经常失效,或者全是低清图。本项目完全接管了图片展示:

  • 智能清洗逻辑:在调用 TMDb API 搜图前,后端会自动通过正则剔除片名中的“第X季”、“S01”、“4K”、“高清”等干扰字符。
  • 100% 匹配率:即使采集站给的名字很乱,也能精准匹配到 TMDb 的高清海报和剧照。
  • 视觉分级:优先加载高清图,加载失败自动回退到 CSS 纯色渐变卡片,绝不显示丑陋的“裂图”图标。

2. 🎬 首页实时热门(Netflix 风格 Hero Banner)

  • 动态数据:首页顶部的全屏轮播图(Hero Carousel)不再是死数据,而是直接调用 TMDb 的 /trending/all/week 接口。
  • 全球同步:实时展示全球本周最火的电影和剧集,拥有超清的横版背景图(Backdrop),视觉冲击力拉满。

3. 聚合搜索 & 节点测速

  • 海量资源:后端内置了 30 个主流采集站接口(非凡、暴风、量子等),一次搜索,全网聚合。
  • 真实测速:在播放详情页,会自动对所有可用线路进行 HTTP 延迟检测,通过红/黄/绿呼吸灯直观展示线路速度,告别卡顿。

4. 🎨 沉浸式 UI/UX 设计

  • 暗黑玻璃拟态:全站采用 Deep Dark 配色 Glassmorphism(毛玻璃)设计。
  • 影院级播放页:重构了播放界面,左侧大屏播放,右侧独立控制面板(网格化选集 胶囊式线路切换),支持一键投屏(调用浏览器原生 AirPlay/Cast)。
  • 响应式布局:完美适配 PC、平板和手机端。

🛠️ 部署教程

本项目基于 Node.js (后端代理) HTML/Vue3 (前端渲染),部署非常轻量。

第一步:环境准备

确保你的服务器或本地电脑安装了 Node.js (建议 v16 )。

第二步:文件结构

在你的目录下新建文件夹(例如 movie-site),下载最下面打包的文件:

movie-site/
├── package.json      # 配置文件
├── server.js         # 后端核心文件
└── public/
    └── index.html    # 前端主页

第三步:安装依赖

movie-site 目录下打开终端,运行以下命令安装必要的库:

npm install express axios cors body-parser

第四步:配置文件

  1. 创建 package.json (如果没自动生成,可手动创建):
    {
      "name": "movie-proxy",
      "version": "1.0.0",
      "main": "server.js",
      "dependencies": {
        "axios": "^1.6.0",
        "body-parser": "^1.20.2",
        "cors": "^2.8.5",
        "express": "^4.18.2"
      }
    }
    
  2. 放入源码:将分享的 server.js 放入根目录,将 index.html 放入 public 文件夹。

第五步:️ 关键配置 (必看!)

由于 api.themoviedb.org 在国内通常是被墙的,为了方便大家使用,我搭建了一个反代服务并内置在代码里了。

打开 public/index.html,406行左右 找到以下配置:

// 1. 设置 TMDb API Key
// 请去 themoviedb.org 申请一个你自己的 API Key (v3 auth) 替换下面这个
const TMDB_API_KEY = "你的_TMDB_API_KEY"; 

> **注意**:如果不替换 Key,可能会因为请求超限导致搜不到图;建议大家使用自己的 API Key。

### 第六步:启动服务
```bash
node server.js

启动成功后,访问 http://你的IP:3000 即可开始观影!

(建议使用 PM2 进行后台保活:pm2 start server.js)


🙏 致谢 & Credits

  • 灵感来源:感谢 MoonTV 项目提供的设计灵感,本项目在其基础上进行了大量的 UI 重构和逻辑优化。
  • 接口来源:感谢网络上无私维护苹果 CMS 采集接口的大佬们。
  • 数据支持:The Movie Database (TMDb)。感谢Gemini3

https://github.com/Minerchu/dongguaTV

求个赞/回复!如有 bug 请在评论区反馈,我会持续优化!


点赞
  1. 哆啦D夢DuolaD说道:

    好东西

  2. EdNovas说道:

    @我才不吃冬瓜 #53

    大概更新的一些功能,可能不全,我也是用antigravity快速修改和添加的功能,可能也有bug欢迎反馈

    • 因为视频站国内服务器部署很容易侵权,除非是本地部署,所以我把CDN都改成cloudflare的了
    • 加了个无限向右懒加载,电脑端也更新了个箭头不然点不动。
    • 新增 search_cache.json 和 detail_cache.json,对热门搜索结果进行持久化缓存(几百几千个用户应该够用json缓存就够用了)
    • 搜索缓存可以分别设置老电影为永久,新电影设置1小时过期
    • 自动过滤掉延迟过高或失效的线路(>600ms)
    • 前端 fetchAllLists 实现了请求跨步(Staggering),每隔 250ms 加载一个榜单,规避了 TMDb API 的速率限制(429 Errors)。
    • 加了几个分类
    • 加了个总的跳转分类栏
    • 加了视频剧集简介
    • 搜索框向下滚动时也会存在,加了个一键返回顶部
    • 搜索页面改为返回首页方式了(个人偏好),手机端只显示返回按钮
    • 明文显示后台地址和后台密码很不安全,就改为手动修改js文件了,否则需要连接数据库,但考虑到只是简单修改采集站地址就直接hard code了
    • 主页的更多信息现在能正确显示简介了
    • 搜索功能加速,忽略反应很慢的站点
    • 。。。可能还有一些改动的功能忘了

回复 哆啦D夢DuolaD 取消回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮