作者:胡萝虎
链接:https://zhuanlan.zhihu.com/p/1957170280502891504
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

KatelyaTV:又一款影视聚合搜索神器,TVBox党必备!

哈喽,各位影迷朋友们!还在为找资源发愁,被广告打断观影体验吗?今天给大家强烈推荐一款开源免费的影视聚合神器——KatelyaTV!它不仅拥有强大的资源整合能力,还支持多种一键部署方案,让你轻松搭建属于自己的私人影院,告别剧荒!

️ KatelyaTV:你的专属影视中心

KatelyaTV 是基于MoonTV开发的后续之作,是一款开箱即用、跨平台的影视聚合应用,旨在提供极致的观影体验。无论你是技术小白还是资深玩家,都能找到适合自己的部署方案,享受海量资源带来的乐趣。

️ 技术解析:KatelyaTV 的硬核实力

  • 强大的聚合搜索: 整合多个影视资源站,一键搜索全网内容。
  • 高清流畅播放: 基于 ArtPlayer 打造的强大播放器,支持多种格式,给你极致的观影体验。
  • 智能跳过: 自动检测并跳过片头片尾,还支持手动设置跳过时间段。
  • 断点续播: 自动记录播放进度,跨设备同步观看位置,随时随地接着看。
  • 响应式设计: 完美适配手机、平板、电脑各种屏幕,随时随地畅享观影。
  • 多种存储方案: 支持 LocalStorage、Redis、D1、Upstash 等多种存储后端,满足不同需求。
  • 多用户支持: 独立的账户系统,每个用户独享个人数据,保护隐私。
  • 内容过滤: 智能成人内容过滤系统,默认开启安全保护,呵护你的观影体验。
  • 多平台支持: 兼容 Vercel、Docker、Cloudflare Pages 等多种平台,部署灵活。
  • PWA 支持: 可安装为桌面/手机应用,提供更佳的用户体验。
  • TVBox 兼容: 支持 TVBox 配置接口,轻松导入资源到电视盒子。

️ 多种部署方案:总有一款适合你

KatelyaTV 提供了丰富的部署方案,满足不同用户的需求。

方案选择指南

使用场景 推荐方案 存储类型 成人内容过滤 多用户 部署难度
个人使用 Docker 单容器 localstorage
家庭使用 Docker + Redis redis ⭐⭐
免费部署 Vercel + Upstash upstash ⭐⭐⭐
生产环境 Docker + Kvrocks kvrocks ⭐⭐
全球加速 Cloudflare Pages d1 ⭐⭐⭐⭐

重要提示: 成人内容过滤功能需要数据库存储支持,不支持 localstorage 方式。

重要提示: 文末附视频源下载方式。

部署方案

方案一:Docker 单容器(最简单)

  • 特点: 5 分钟部署,个人使用,无多用户功能。
    docker run -d \ –name katelyatv \ -p 3000:3000 \ -e PASSWORD=your_password \ –restart unless-stopped \ ghcr.io/katelya77/katel

    挂载自定义配置(可选):
    docker run -d \ –name katelyatv \ -p 3000:3000 \ -e PASSWORD=your_password \ -v $(pwd)/config.json:/app/config.json:ro \ –restart unless-stopped \ ghcr.io/katelya77/katel

方案二:Docker + Redis(推荐家庭使用)

  • 特点: 完整功能,多用户支持,成人内容过滤。
  1. 创建 docker-compose.yml 文件:
    version: ‘3.8’ services: # KatelyaTV 应用服务 katelyatv: image: ghcr.io/katelya77/katel ports: – “3000:3000” environment: # 数据库配置 – 使用 Redis NEXT_PUBLIC_STORAGE_TYPE: redis REDIS_URL: redis://katelyatv-redis:6379 REDIS_PASSWORD: ${REDIS_PASSWORD:-} REDIS_DATABASE: 0 # 站点访问密码配置 PASSWORD: ${PASSWORD:-} # 其他必要的环境变量 NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000} depends_on: – katelyatv-redis restart: unless-stopped networks: – katelyatv-network # Redis 数据库服务 katelyatv-redis: image: redis:7-alpine container_name: katelyatv-redis command: redis-server –appendonly yes –maxmemory 256mb –maxmemory-policy allkeys-lru volumes: # 持久化数据存储 – katelyatv-redis-data:/data restart: unless-stopped networks: – katelyatv-network healthcheck: test: [“CMD”, “redis-cli”, “ping”] interval: 30s timeout: 10s retries: 3 start_period: 10s volumes: # Redis 数据卷 katelyatv-redis-data: driver: local networks: katelyatv-network: driver: bridge
  2. 启动服务:
    docker-compose up -d

方案三:Docker + Kvrocks(生产环境)

  • 特点: 极高可靠性,数据持久化到磁盘,节省内存。
  1. 创建 docker-compose.yml 文件:
    version: ‘3.8’ services: # KatelyaTV 应用服务 katelyatv: image: ghcr.io/katelya77/katel ports: – “3000:3000” environment: # 数据库配置 – 使用 Kvrocks NEXT_PUBLIC_STORAGE_TYPE: kvrocks KVROCKS_URL: redis://kvrocks:6666 KVROCKS_PASSWORD: ${KVROCKS_PASSWORD:-} KVROCKS_DATABASE: 0 # 管理员账号配置(必填) USERNAME: ${USERNAME:-admin} PASSWORD: ${PASSWORD} # 站点配置 NEXT_PUBLIC_ENABLE_REGISTER: ${NEXT_PUBLIC_ENABLE_REGISTER:-true} # 其他必要的环境变量 NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000} depends_on: – kvrocks restart: unless-stopped networks: – katelyatv-network # Kvrocks 数据库服务 kvrocks: image: apache/kvrocks:latest ports: – “6666:6666” environment: # Kvrocks 配置 KVROCKS_BIND: 0.0.0.0 KVROCKS_PORT: 6666 KVROCKS_DIR: /var/lib/kvrocks/data KVROCKS_LOG_LEVEL: info volumes: # 持久化数据存储 – kvrocks-data:/var/lib/kvrocks/data # 挂载配置文件 – ./docker/kvrocks/kvrocks.conf:/etc/kvrocks/kvrocks.conf:ro restart: unless-stopped networks: – katelyatv-network healthcheck: test: [“CMD”, “redis-cli”, “-h”, “localhost”, “-p”, “6666”, “ping”] interval: 30s timeout: 10s retries: 3 start_period: 30s volumes: # Kvrocks 数据卷 kvrocks-data: driver: local networks: katelyatv-network: driver: bridge
  2. 启动服务:
    docker-compose up -d

方案四:Vercel + Upstash(免费推荐)

  • 特点: 完全免费,自动 HTTPS,全球 CDN。
  1. 基础部署:
  • Fork 项目到你的 GitHub 仓库。
  • 部署到 Vercel:登录 Vercel,导入刚 Fork 的仓库,添加环境变量 PASSWORD=your_password,然后点击 Deploy。
    1. 多用户配置:
  • 创建 Upstash 数据库:访问 Upstash 并创建免费 Redis 数据库。
  • 获取 UPSTASH_URLUPSTASH_TOKEN
  • 添加环境变量:
    # 存储配置 NEXT_PUBLIC_STORAGE_TYPE=upstash UPSTASH_URL=xxx.upstash.io UPSTASH_TOKEN=your_token # 管理员账号 USERNAME=admin PASSWORD=your_password # 功能开关 NEXT_PUBLIC_ENABLE_REGISTER=true
  • 重新部署:Vercel Dashboard → Redeploy

方案五:Cloudflare Pages + D1(全球加速)

  • 特点: 全球 CDN,无限带宽,免费 SSL。
  1. 快速部署:
  • Fork 项目到你的 GitHub 仓库。
  • 创建 Pages 项目:登录 Cloudflare Dashboard,选择 Pages -> Connect to Git -> 选择仓库。
  • 构建设置:
    • Build command: pnpm install --frozen-lockfile && pnpm run pages:build
    • Build output directory: .vercel/output/static
    • 兼容性标志:nodejs_compat
      • 环境变量配置:
        # 管理员账号 USERNAME=admin PASSWORD=your_password # 存储配置 NEXT_PUBLIC_STORAGE_TYPE=d1 # 功能开关 NEXT_PUBLIC_ENABLE_REGISTER=true
    1. 创建 D1 数据库(多用户支持):
      # 安装Wrangler CLI npm install -g wrangler wrangler auth login # 创建数据库 wrangler d1 create katelyatv-db # ⚠️ 重要:确保在项目根目录下运行此命令 # 如果遇到文件路径错误,请参考 D1_MIGRATION.md 排查指南 wrangler d1 execute katelyatv-db –file=./scripts/d1-init.sql
  • 配置数据库绑定:在 wrangler.toml 中添加数据库 ID。

️ 享用方法

  • 访问 KatelyaTV: 在浏览器中输入你的部署地址(例如 http://localhost:3000 或你的域名)即可访问 KatelyaTV。
  • 设置密码: 如果你设置了 PASSWORD 环境变量,则需要输入密码才能访问。
  • 开始探索: 现在你可以尽情探索 KatelyaTV 的各种功能,搜索你喜欢的影视资源,打造你的专属影院!

️ 高级功能使用指南

  • 成人内容过滤: 智能识别和过滤成人内容资源站,提供安全浏览体验。
  • 跳过片头片尾: 自动识别并跳过片头片尾,节省时间。
  • TVBox 兼容模式: 支持 TVBox 配置接口,可以在电视盒子应用中使用。
  • 多设备数据同步: 通过 Redis/Upstash/D1 实现观看历史、收藏夹等多设备同步。
  • 界面自定义: 支持主题切换、界面布局调整,打造个性化观影体验。

️ TVBox 配置接口使用指南

KatelyaTV 现在支持 TVBox 配置接口,可以将您的视频源直接导入到 TVBox 应用中使用,在大屏幕上畅享观影乐趣!这个功能会自动同步 KatelyaTV 中配置的所有视频源,并提供标准的 TVBox JSON 格式配置。

快速开始

  1. 访问配置页面:
    在 KatelyaTV 网站中,点击左侧导航栏的 “TVBox 配置” 菜单,或直接访问:
    your-domain.com/config
  2. 生成配置链接:
    在配置页面中:
  • 选择格式类型:
    • JSON 格式(推荐): 标准的 JSON 配置文件,便于调试和查看
    • Base64 格式: 编码后的配置,适合某些特殊环境
  1. 导入到 TVBox:
  • 打开 TVBox 应用
  • 进入设置 → 配置地址
  • 粘贴复制的配置链接
  • 点击确认导入

配置说明

  • ️ 配置页面功能:
    KatelyaTV 提供了直观的 TVBox 配置管理界面:

    • 格式切换:支持 JSON 和 Base64 两种格式切换
    • 一键复制:点击复制按钮快速获取配置链接
    • 实时生成:根据当前网站配置实时生成最新的 TVBox 配置
    • 使用指南:页面内置详细的使用说明和功能介绍
  • 支持的功能:
    • ✅ 自动同步 KatelyaTV 的所有视频源
    • ✅ 支持搜索功能
    • ✅ 支持快速搜索
    • ✅ 支持分类筛选
    • ✅ 内置视频解析接口
    • ✅ 广告过滤规则
    • ✅ CORS 跨域支持
  • 内置解析接口:
    KatelyaTV 提供内置的视频解析服务:
    your-domain.com/api/par{视频地址}

    • 支持的平台:不可说!
    • 解析接口参数:
      • url: 要解析的视频地址(必填)
      • parser: 指定解析器名称(可选)
      • format: 返回格式(可选,默认 json
    • API 端点说明:
      • TVBox 配置接口:GET /api/tvbox
        • 参数:format
          • json(默认):返回 JSON 格式配置
          • base64:返回 Base64 编码的配置
        • 响应:
          { “sites”: […], // 影视源列表 “parses”: […], // 解析源列表 “flags”: […], // 播放标识 “ads”: […], // 广告过滤规则 “wallpaper”: “…”, // 壁纸地址 “lives”: […] // 直播源(可选) }
      • 视频解析接口:GET /api/parse
        • 参数:url, parser, format
        • 响应:
          { “success”: true, “data”: { “original_url”: “…”, “platform”: “qq”, “parse_url”: “…”, “parser_name”: “…”, “available_parsers”: […] } }

️ 项目地址

github.com/katelya77/Ka

️ 视频源下载

链接:pan.baidu.com/s/1Xjjj4r
提取码:4qez
提示:使用百度网盘手机 App 体验更佳