独立项目,不代表第三方
TraktoSearch 与豆瓣、Trakt、TMDB、OMDb、PanSou、PanHub、ZReso、任何网盘服务、GitHub 以及 Chiikawa 权利人之间没有隶属、合作或官方背书关系。页面出现的服务名称、商标和接口名称仅用于说明兼容对象。
应用主要提供本地管理、接口调用和结果展示,不承诺第三方数据的完整性、准确性、持续可用性或某个资源一定存在。
从发现一部作品,到标记、同步、记录和回顾。观影管理是一条完整的链路,而不是几个孤立的页面。
输入片名,汇总多个搜索源,再按资源类型筛选,直接进入详情查看。
直接搜索电影和剧集,结果来自 PanSou、PanHub、ZReso 与自定义搜索源。详情页会并行使用中文片名与原片名搜索,PanHub 插件 / 频道和自定义搜索源也可配置。资源结果集中呈现,可以直接打开资源,或长按复制链接;磁力链接还会尝试交给系统应用处理。
热门趋势、即将上映、推荐、豆瓣热门和个人观影列表集中在发现入口。电影与剧集可以分开浏览,先找到想看的,再决定加入哪张清单。
登录豆瓣后,把想看和已看带进 TraktoSearch;首次出现的作品由 Trakt 保存为你的观影记录。同步过程中,已经完成的条目会被记住,下次直接继续未完成部分。
怎么分工:Trakt 是用于保存观影记录的同步服务;豆瓣账号负责导入和写回。暂时匹配不到豆瓣条目的作品会进入失败项,手动修正后可以重试。
影视详情把各平台评分、简介、评论、演职员、视频和相关推荐放在一起。电视剧继续下钻到季集与单集观看进度;对于已匹配豆瓣条目的作品,在这里改完标记、评分或短评,就能同步写回豆瓣。
TraktoSearch 不接入广告或分析 SDK。平时的观影记录、进度和历史先保存在手机;只有当你登录豆瓣或观影记录同步、查影视信息、搜资源,或主动开启崩溃反馈时,应用才发出完成这件事所需的请求。
手机本地:令牌、豆瓣凭据和历史使用 EncryptedSharedPreferences;片单、同步记录、评分和进度保存在 SQLCipher 数据库;Android Keystore 保护本地密钥与不可导出的设备私钥。
联网请求:需要上游服务的请求先经过 HTTPS 和网关 JWT 鉴权,客户端不携带 Worker Secret。
服务端:云端失败数据由 Worker 使用服务端密钥透明加密;密钥不随 APK 分发。
数据从手机出发:本地数据留在设备,联网请求经过安全网关。
从手机出发,沿着数据包看一遍:导入豆瓣标记、保存观影记录、从详情页写回豆瓣,以及其他联网请求分别怎么走。你可以等待动画播放,也可以点选某条流程单独查看。
片单、进度和历史先留在手机,不需要联网。
App 的联网请求会经过 Cloudflare 网关。按目前的缓存策略和 Service Binding 链路,公共服务每天大约可容纳 450~750 名中等强度用户,所以采用邀请码控制规模并留出余量。
这个数字是估算值:按一个人每天浏览发现页、观影记录、影视详情和人物详情,偶尔搜索资源或同步记录,约 80~150 次 App API 请求;频繁同步或连续查找资源时会更高。保留约 30% 的余量后,按每天 10 万次的免费额度计算,先按中等强度用户控制在约 450~750 人/天。
按 Cloudflare 的外部入口计数,一次 App API 请求先进入 Pages 网关,随后通过 Service Binding 调用 auth-worker;缓存未命中时,再由它通过 Service Binding 调用 douban-movie-api,或请求 Trakt、TMDB、OMDb 等上游服务。Service Binding 不会额外增加公网入口请求。
flowchart LR
app["Android App<br/>入口:1 次"] -- "公网入口:1 次" --> gateway["tracktosearch-gateway<br/>Pages 网关"]
gateway -- "Service Binding<br/>+0 次公网请求" --> auth["auth-worker<br/>鉴权 / 请求代理"]
gateway -- "Service Binding<br/>+0 次公网请求" --> feedback["feedback-worker<br/>用户主动反馈"]
auth -- "Service Binding<br/>+0 次公网请求" --> douban["douban-movie-api Worker"]
auth -- "上游 fetch" --> upstream["Trakt / TMDB / OMDb /<br/>GitHub 等"]
admin["app-config Pages Function<br/>管理 / 崩溃日志"] -. "Service Binding<br/>+0 次公网请求" .-> auth
admin -. "Service Binding<br/>+0 次公网请求" .-> feedback
classDef app fill:#d95532,color:#fff,stroke:#a83e27,stroke-width:1.5px;
classDef gateway fill:#e9e2d4,color:#1d1c19,stroke:#a83e27,stroke-width:1.5px;
classDef worker fill:#f6f2e9,color:#1d1c19,stroke:#c9c0b2;
classDef output fill:#efe6db,color:#6d685f,stroke:#c9c0b2;
class app app;
class gateway gateway;
class auth,feedback,admin worker;
class douban,upstream output;
Trakt 可以理解为一个专门记录“看过什么、想看什么”的影视服务。它不是视频网站,也不是资源下载站,而是帮你保存观影记录、评分、短评、观看进度,并提供推荐和影视资料。
在 TraktoSearch 里,Trakt 主要负责保存观影空间:你可以把豆瓣想看、已看、评分和短评导入进来,也可以在 App 里更新标记、评分或短评,再同步写回已经匹配的豆瓣条目。第一次听说 Trakt 也没关系,App 会把它当作背后的观影记录服务来用。
一方面,希望把一个真实可用的 Android 项目放回开源社区:代码可以被阅读、讨论、改进,也方便中文用户和开发者一起补齐体验。
另一方面,邀请码机制意味着服务不适合无限扩大。开源就是另一种“把选择交给你”:如果公共网关名额有限,你也可以研究代码、自己部署或继续开发属于自己的版本。
开发者原本习惯用豆瓣发现感兴趣的影视、标记想看,再慢慢建立自己的片单。但在实际使用中,豆瓣广告逐渐增多,与书影音无关的功能也越来越多,想专注于影视发现和观影记录时,干扰也随之增加。豆瓣通常只会跳转到国内有版权的平台;想找更多可用资源时,还要自己打开搜索工具,在多个 App 之间来回切换。
所以才有了 TraktoSearch:支持导入豆瓣标记,并在后续持续同步想看 / 看过状态变化;再从影视详情页集中查看资料、相关推荐和资源搜索入口,尽量减少在多个 App 之间来回切换。(本项目无意替代豆瓣,也不以与豆瓣形成竞争为目的;TraktoSearch 本身是非营利项目。)
如果只使用国产大模型,并把开发过程控制在 Trae 每周提供的免费对话额度内,AI 工具的现金成本可以接近 0。真正需要另外计算的,是域名、第三方 API、Cloudflare 超出免费额度后的费用,以及开发者投入的时间。
所以“接近 0 成本”指的是工具支出,不代表部署、服务和维护永远没有成本。
前期框架搭建、主功能开发和 UI 界面设计,几乎都使用国产大模型:按开发者的对话使用记录粗略估算,约 80% 来自 GLM-5.1 / GLM-5.2,约 20% 来自 GLM-5V-Turbo。
这个比例是对对话使用量的估算,不是代码行数,也不是精确成本核算。后期的 UI 润色、后台部署和视觉问题,主要交给 GPT 处理。
BOUNDARIES · RIGHTS · REQUESTS
TraktoSearch 是独立开发的 Android 工具,不是影视平台、网盘或内容分发服务。本页是项目的使用边界与数据处理说明,不构成针对任何具体情况的法律意见。
TraktoSearch 与豆瓣、Trakt、TMDB、OMDb、PanSou、PanHub、ZReso、任何网盘服务、GitHub 以及 Chiikawa 权利人之间没有隶属、合作或官方背书关系。页面出现的服务名称、商标和接口名称仅用于说明兼容对象。
应用主要提供本地管理、接口调用和结果展示,不承诺第三方数据的完整性、准确性、持续可用性或某个资源一定存在。
豆瓣导入、详情页写回和相关请求由你主动发起,并可能受到豆瓣账号权限、访问策略、验证码、接口变化和服务条款的限制。请只使用自己的账号,只提交完成当前功能所需的信息,不要提供他人的凭据。
你不得借助本应用绕过访问控制、批量抓取、压垮服务、收集他人数据,或以违反豆瓣规则、适用法律及第三方条款的方式使用同步功能。相关功能随时可能因上游限制而停止或改变。
PanSou、PanHub、ZReso、自定义搜索源以及网盘、浏览器和磁力处理能力只负责查询或打开第三方返回的链接。TraktoSearch 不上传、托管、缓存或分发这些影视文件,也不对链接指向的内容、来源、授权状态和安全性作保证。
请你自行核实内容授权和所在地区的法律要求,不要下载、保存、传播或使用未经授权的作品;自定义资源源由使用者自行配置并承担相应责任。
TMDB:影视资料可能来自 TMDB。页面和应用中的归属信息不表示 TMDB 认可本项目。
This product uses TMDB and the TMDB APIs but is not endorsed, certified, or otherwise approved by TMDB.
Trakt:观影记录、评分、进度和同步能力受 Trakt 的服务条款与可用性约束。Trakt 账号用于保存观影记录,豆瓣账号用于导入和写回豆瓣标记。
官网部分角色装饰由 AI 生成,采用 Chiikawa 风格,仅用于非官方的界面装饰和说明。它们不等同于官方素材,不代表已获得权利人授权、合作或背书;如权利人认为某项素材需要调整,请通过右侧请求表单联系项目维护者。
AI-GENERATED · NON-OFFICIAL DECORATION本项目自有原创代码采用 GNU GPLv3。GPLv3 只覆盖项目明确标注为本项目代码的部分;影视资料、第三方 API 返回内容、第三方依赖、Logo、海报、截图和角色素材不因代码开源而自动获得 GPL 授权。
发布修改版时,请同时遵守 GPLv3、依赖自身许可证、上游服务条款以及素材的具体授权条件。完整许可证、第三方声明和素材清单见 GitHub 仓库中的 LICENSE、THIRD-PARTY-NOTICES.md 与 ASSET-LICENSES.md。
隐私边界:本地观影记录优先留在设备;登录、同步、影视资料、资源搜索和你主动开启的反馈会产生必要的联网请求。法律/隐私请求表单本身只处理本表单提交的数据。
第三方条款、接口策略和适用法律可能变化;使用新版本前请重新核对相关服务的最新要求。
填写昵称和邮箱,提交后邀请码会直接发送到你的收件箱。
由于应用未上架应用商店且未经备案,部分手机的安全检查可能会提示风险,安装前可能需要暂时关闭安全检测。