Profile
Back to NewsBack
GitHub Trending 1 min
Reader Mode
CHANTXU64/MoviePilot-TV: MoviePilot Apple TV Client

CHANTXU64/MoviePilot-TV: MoviePilot Apple TV Client

14 hours ago

MoviePilot-TV

release MoviePilot Backend Version Platform Language UI Framework License GitHub issues

基于 Swift 和 SwiftUI 开发的 MoviePilot Apple TV 原生客户端。为大屏幕和 Siri Remote 遥控器交互而设计。

界面预览

首页 推荐页 探索页 详情页 详情页2 演职员详情页 订阅设置 搜索页 合集页 种子结果 添加下载 状态页

核心特性

专为大屏幕和家庭观影设计,提供从浏览、搜索到订阅的完整闭环体验。

  • 为家庭设计: 聚焦核心观影功能,摒弃复杂的管理员后台设置,交互简洁,适合所有家庭成员。
  • 原生沉浸体验: 基于 Swift & SwiftUI 原生开发,遵循 tvOS 设计规范,提供流畅的动效和沉浸式详情页。
  • Siri Remote 完整支持: 所有功能均可通过 Siri Remote 直观操作,支持长按海报进行订阅、搜索等快捷操作。
  • 聚合搜索: 一键搜索电影、电视剧、合集及演职人员。
  • 高效订阅: 优化订阅流程,在订阅时直接完成配置,一步到位。
  • 无缝浏览: 通过详情页预加载和持久化登录,消除等待,实现无缝切换和快速访问。

⚠️ 兼容性与已知问题

  • tvOS 版本: 支持 tvOS 18.0+。本项目主要在 tvOS 26.0+ 环境下开发,建议使用最新的 tvOS 系统获得最佳体验。
  • MoviePilot 版本: 当前测试兼容的后端版本为 v3.0.4,媒体业务按 MoviePilot Web v3.0.4 对齐。低于该版本不在兼容范围;App 启动时会提示版本过低风险。
  • 兼容原则: TV 端以 MoviePilot Web 前端和 MoviePilot 后端当前行为为准;如果 Web 本来也不显示,或后端/第三方数据源同样异常,本项目通常不会在 TV 端额外兜底修复。
  • 更新节奏: 本应用更新频率可能低于 MoviePilot 原版,不保证长期兼容旧版 API 或旧版后端已知问题。
  • 账号登录: 不支持已开启双因素认证 (MFA/2FA) 的账号,请在关闭双因素认证后再登录。
  • 密码安全: 请勿将 MoviePilot 密码与其他服务的密码设为相同值。Apple 钥匙串不可用时,本 App 会自动降级为明文持久化密码;即使 Apple TV 环境相对封闭,仍存在密码泄露风险。

安装指南

方式一:下载 IPA 并自签侧载

前往项目的 Releases,下载最新版本中的:

MoviePilot-TV-unsigned.ipa

该文件为未签名 IPA,不能直接安装,需要使用自己的 Apple 账号或证书重新签名后侧载到 Apple TV。

可使用支持 tvOS 应用签名和侧载的工具进行安装,例如:

  • ATVloadly
  • 其他支持 tvOS IPA 重签名及侧载的工具
Issue#1 中已有用户确认,通过部署在 NAS 上的 ATVloadly,可以正常完成安装并使用。

方式二:社区 TestFlight 苹果测试渠道

社区用户 EricCartman9969 提供了个人 TestFlight,可通过以下链接加入:

https://testflight.apple.com/join/UK3qEnVU

[!WARNING]
该 TestFlight 由社区用户自行维护,并非本项目官方发布渠道。
> 不保证长期更新、持续可用或与最新源码版本保持一致;测试名额、构建有效期及后续维护均由提供者决定。

方式三:通过 Xcode 源码构建

准备工作

  • macOS 26.0+
  • Xcode 26.0+

构建步骤

  1. 克隆项目代码:
git clone --filter=blob:none https://github.com/CHANTXU64/MoviePilot-TV.git

# 切到最新 tag (例如 v0.3.8) git checkout tags/v0.3.8

  1. 使用 Xcode 打开 MoviePilot-TV.xcodeproj
  2. 选择你的真实 Apple TV 设备(需在同一局域网并已配对)。
  3. Signing & Capabilities 中选择你的开发者账号,修改 Bundle Identifier 为一个唯一的名称(例如 com.yourname.MoviePilot-TV)。
  4. 点击 Run (或 Cmd + R) 编译并安装。
  5. 自动续签 (可选): 免费账号签名的应用有效期通常为 7 天,可使用 Sideloadly 或项目内的 scripts/apple-tv-renew.sh 续签:
BUNDLE_ID="com.yourname.MoviePilotTV" bash scripts/apple-tv-renew.sh
   BUNDLE_ID="com.yourname.MoviePilotTV" bash scripts/apple-tv-renew.sh --force

注意: 脚本默认只检查本机 DerivedData 中构建产物的 embedded.mobileprovision,不会确认 Apple TV 设备端是否仍安装成功;如果本机构建产物里的签名配置仍未过期,脚本会直接跳过。--force 会忽略这个本地未过期检查,直接重新构建并安装到已配对的 Apple TV,适合放进 crontab 定时保活或怀疑设备端安装状态异常时使用。

--force 只强制执行构建和安装流程,不代表 Xcode/Apple 一定会在旧的 Xcode-managed provisioning profile 过期前签发新的 profile;如果 Apple 仍复用未过期的 profile,应用的实际到期时间不会被提前延长。

开发与测试

后端兼容性测试

如需使用自己的 MoviePilot 后端验证 TV 端接口、图片和功能兼容性,请先阅读 后端兼容性测试文档。真实后端测试可能包含副作用套件,运行前请确认测试范围。

UI 预览测试分支

UI 预览测试请切到 ai/ui-preview-mode 分支,该分支不计划合并到 main。Debug 构建运行时添加启动参数 -uiPreviewMode

反馈与贡献

  • 提交 Bug:请务必提供 MoviePilot 版本号、相关截图和复现步骤。
  • 功能建议:本项目专注提供基础的客厅浏览和订阅体验,过于复杂的后端配置管理等需求暂不考虑。
  • 贡献代码:代码采用纯 Swift 编写。提交 PR 前请确保在真实 Apple TV 上测试过。

协议声明

本项目原创代码基于 CC0 1.0 Universal 协议发布(公有领域)。可自由复制、修改、发布和商业使用。

鸣谢

界面及交互设计参考了 MoviePilot-Frontend 与 Apple TV 官方应用,对相关开发者表示感谢。原项目的相关参考代码和逻辑遵循原作者的 MIT License

Our Related Projects
Farm Fresh Kikapu

An e-commerce platform for farm-fresh produce - an online st...

View Project
Chat with me