# Trakt Agent：基于本地LLM的隐私优先影视推荐系统

> 一个结合Trakt.tv观影历史与本地大语言模型的智能推荐工具，在保护隐私的同时提供个性化内容发现

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-07T08:13:53.000Z
- 最近活动: 2026-04-07T08:29:19.893Z
- 热度: 159.7
- 关键词: Trakt.tv, 影视推荐, 隐私保护, 本地LLM, Obsidian, Python, 开源工具, 观影记录
- 页面链接: https://www.zingnex.cn/forum/thread/trakt-agent-llm
- Canonical: https://www.zingnex.cn/forum/thread/trakt-agent-llm
- Markdown 来源: ingested_event

---

# Trakt Agent：基于本地LLM的隐私优先影视推荐系统

## 项目背景与核心价值

在流媒体时代，我们面临着一个矛盾：一方面，算法推荐已经成为发现新内容的必备工具；另一方面，将个人观影数据交给大型科技公司引发了越来越多的隐私担忧。Trakt Agent 正是为解决这一矛盾而诞生的开源项目。

这个项目由 Shiva108 开发，它巧妙地将 Trakt.tv 的观影记录管理与本地运行的大语言模型相结合，创造出一个既智能又私密的影视推荐系统。用户的详细观影历史始终保存在本地，所有推理过程都由用户自己控制的GPU完成，无需将敏感数据发送给任何第三方AI服务。

## 系统架构与工作流程

Trakt Agent 的设计理念是将整个推荐流程分解为几个清晰的步骤，每个步骤都有明确的功能边界：

**数据获取层**：通过 Trakt.tv API 拉取用户的观影历史和待看清单。Trakt.tv 本身就是一个隐私友好的平台，它只记录用户主动标记的内容，不会追踪实际的观看行为。

**口味分析层**：系统会分析用户的观影历史，生成一份"心理画像"——这不是简单的统计标签，而是对用户审美偏好的深度理解，包括喜欢的叙事风格、视觉美学、角色类型等维度。

**推荐生成层**：本地LLM基于用户的口味画像和候选内容池，生成个性化的推荐列表。这个过程完全在本地完成，推荐的理由也是由AI根据用户的具体偏好动态生成的。

**输出与同步层**：推荐结果以Markdown格式保存，特别针对 Obsidian 用户优化了输出格式。同时，系统支持将已观看的内容标记回 Trakt.tv，形成闭环。

## 隐私保护的技术实现

Trakt Agent 的隐私保护不是营销话术，而是架构层面的设计选择：

首先，系统使用兼容 OpenAI API 格式的本地LLM服务器（如 LM Studio 或 Ollama + OpenWebUI），这意味着所有的推荐推理都在本地硬件上完成。用户的观影历史、口味偏好、甚至生成的推荐内容都不会离开用户的设备。

其次，Trakt.tv 本身的设计就相对隐私友好。它不像某些流媒体平台那样持续追踪用户的观看行为，而是依赖用户主动标记。Trakt Agent 只读取这些数据，不会上传任何额外的分析结果。

最后，项目的代码完全开源，用户可以审查每一行代码，确认没有隐藏的数据收集行为。这种透明度是商业推荐系统无法提供的。

## 功能特性深度解析

**智能过滤**：系统会自动排除用户已经观看过的内容，支持按发行年份筛选，还能根据用户设置的类型黑名单过滤掉不感兴趣的类别（如"音乐剧"、"纪录片"等）。

**种子推荐**：用户可以指定特定的影片作为"种子"，影响当前批次的推荐方向。例如，输入《盗梦空间》和《星际穿越》，系统会推荐风格相似的科幻或悬疑作品。

**评分过滤**：可以设置最低IMDb评分阈值，确保推荐内容的质量底线。

**Obsidian集成**：输出格式针对 Obsidian 知识库优化，推荐结果可以直接导入个人笔记系统，方便长期追踪和回顾。

**手动标记**：支持通过命令行直接将影片标记为已观看，这些标记会同步回 Trakt.tv，确保数据的一致性。

## 安装与配置指南

Trakt Agent 的安装过程设计得非常用户友好，提供了自动安装脚本和交互式设置向导：

**快速安装**：运行 `./install.sh` 脚本，它会自动检查Python版本、创建虚拟环境、安装依赖、创建必要的目录结构。整个过程通常不超过5分钟。

**Trakt API配置**：用户需要在 Trakt.tv 创建API应用，获取 client_id 和 client_secret。设置向导会引导完成OAuth认证流程，生成访问令牌。

**本地LLM配置**：在 `config.py` 中设置LLM服务器的地址（默认是 http://127.0.0.1:1234/v1）和模型名称。确保本地LLM服务器（如LM Studio）已经启动并加载了模型。

**偏好设置**：复制 `preferences.json.example` 为 `preferences.json`，设置偏好的最低年份、排除的类型、最低IMDb评分等参数。

## 典型使用场景

**周末观影计划**：周五晚上运行 `python cli.py fetch` 更新观影历史，然后运行 `python cli.py recommend` 生成推荐列表，在Markdown文件中浏览AI的推荐理由，选择今晚的观影内容。

**主题观影马拉松**：使用种子推荐功能，输入几部风格相似的电影，让AI推荐一个完整的观影清单。例如，输入几部黑色电影，获得一个经典 noir 片单。

**长期口味追踪**：定期导出推荐结果到 Obsidian，建立自己的观影偏好档案。随着时间的推移，可以回顾自己的口味是如何演变的。

**跨设备同步**：由于 Trakt.tv 本身支持多设备同步，用户可以在任何设备上标记观影状态，Trakt Agent 下次运行时会自动获取最新数据。

## 技术亮点与实现细节

Trakt Agent 的代码结构清晰，模块化程度高：

- `cli.py` 提供统一的命令行入口
- `core/` 目录包含核心业务逻辑：数据获取、口味分析、推荐生成、标记同步
- `scripts/` 提供辅助工具：OAuth认证、LLM连接测试
- 数据缓存机制避免重复调用API
- 完善的错误处理和重试逻辑

项目使用 Python 3.8+ 开发，依赖管理清晰，代码风格统一（使用 Black 格式化）。

## 局限性与改进方向

作为一个相对年轻的开源项目，Trakt Agent 还有一些可以改进的地方：

**推荐多样性**：目前主要依赖LLM的推理能力，未来可以考虑引入协同过滤等经典推荐算法作为补充。

**用户界面**：目前只有命令行界面，对于非技术用户可能不够友好。

**多语言支持**：当前版本主要针对英文内容，对其他语言影视内容的推荐支持有限。

## 总结

Trakt Agent 是一个非常有价值的开源项目，它证明了"智能"和"隐私"并非不可兼得。通过将现代LLM技术与成熟的观影记录平台相结合，它为用户提供了一种全新的内容发现方式——既享受AI的便利，又保持对个人数据的完全控制。

对于重视隐私的影视爱好者、Obsidian用户、以及想要探索"本地AI应用"可能性的开发者来说，Trakt Agent 都是一个值得尝试的项目。
