Plex + Jellyfin Jellyfin+ Emby Emby + Docker+ Docker Compose+ Python 3.x+ TMDb+ Seer+ Trakt

根据媒体服务器观看记录,经TMDb匹配相似内容并自动向Seer发送下载请求

媒体服务器提供观看历史作种子,TMDb负责相似内容检索,Seer执行下载请求,形成自动化闭环

✓ 全流程自动化推荐与请求✓ 支持三家媒体服务器 ✕ Seer仅支持本地用户✕ 需自行申请TMDb API Key

方案简介

SuggestArr 是一个媒体内容自动化推荐与下载请求工具。它通过 API 读取 Jellyfin、Plex 或 Emby 媒体服务器上用户最近观看的内容,以这些观看记录为种子调用 TMDb API 搜索相似的电影和电视剧,然后自动向 Seer 发送下载请求,实现"看完自动推荐、推荐自动请求下载"的闭环。适合已经搭建了自有媒体服务器和自动下载工具链的家庭媒体中心用户。项目支持通过 Docker Compose 一键部署,并提供 Web 界面进行配置管理、定时任务(cron)管理和实时日志查看。

亮点与能力

  • 多媒体服务器支持:支持 Jellyfin、Plex、Emby 获取媒体内容
  • TMDb 集成:在 TMDb 上搜索相似电影和剧集
  • 自动请求:向 Seer 自动发送推荐内容的下载请求
  • Trakt 观看历史:用户可关联自己的 Trakt 账号,用 Trakt 最近观看作为推荐种子并跳过已看内容
  • 待处理请求暂停:Seer 仍有待审批请求时跳过定时/手动任务
  • 未观看建议暂停:用户在可配置天数内未观看请求内容时可暂停定时推荐任务
  • 清理自动化:当用户从未收藏时,自动清理旧的 SuggestArr 请求和文件
  • Web 界面与实时日志:配置管理、按 INFO/ERROR/DEBUG 过滤实时日志、cron 定时管理、配置预校验、按国家流媒体平台排除已有内容、支持 PostgreSQL/MySQL 外部数据库

组成与分工

  • Jellyfin / Plex / Emby:媒体服务器,提供用户观看历史数据,作为推荐种子来源
  • TMDb:内容元数据与相似内容检索 API,根据观看记录找到相似影视
  • Seer:下载请求管理工具,接收 SuggestArr 自动发送的下载请求并执行
  • Trakt(可选):第三方观看记录服务,每位用户可关联自己的 Trakt 账号补充推荐种子
  • Docker / Docker Compose:容器化部署方式
  • SQLite / PostgreSQL / MySQL:内置 SQLite 存储,可选外部数据库提升扩展性与性能

前置要求

  • Python 3.xDocker
  • TMDb API Key
  • 已配置的 JellyfinPlexEmby
  • 已配置的 Seer
  • (可选)外部数据库 PostgreSQL 或 MySQL
  • (可选)Trakt OAuth 应用,用于按用户的 Trakt 观看历史集成

实施步骤

1. 准备各项服务

确保 Jellyfin/Plex/Emby 与 Seer 已配置并可访问,在 TMDb 官网申请 API Key。如需 Trakt 集成,先在 Trakt 创建 OAuth 应用:

Create a Trakt OAuth app at .

2. 编写 Docker Compose 文件

yaml
services:
suggestarr:
image: ciuse99/suggestarr:latest
container_name: SuggestArr
restart: always
ports:

  • "${SUGGESTARR_PORT:-5000}:${SUGGESTARR_PORT:-5000}"

volumes:

  • ./config_files:/app/config/config_files

environment:

Optional: Only needed if something goes wrong and you need to inspect deeper

  • LOG_LEVEL=${LOG_LEVEL:-info}

Optional: Customize the port (defaults to 5000 if not set)

  • SUGGESTARR_PORT=${SUGGESTARR_PORT:-5000}

镜像也可从 GitHub Container Registry 获取:ghcr.io/giuseppe99barchetta/suggestarr:latest

3. 启动容器

bash
docker-compose up

4. 通过 Web 界面完成配置

访问 http://localhost:5000(或自定义端口),选择媒体服务,填入 API Key 与 URL(设置过程会自动校验),并管理 cron 定时任务。

使用与配置要点

指定 Seer 用户发送请求

  1. 在 Web 界面勾选启用用户选择选项
  2. 从下拉列表选择目标用户
  3. 输入该用户密码
  4. 系统此后将以该用户身份发起媒体请求,而非使用管理员或默认配置

注意:目前仅支持 Seer 本地用户。

Trakt 集成启用

  1. 在 Trakt 创建 OAuth 应用
  2. 在 SuggestArr 中进入 Services -> Trakt
  3. 填入 Trakt Client IDClient Secret 并保存
  4. 每位用户进入 Profile -> Trakt Account 点击 Link Trakt
  5. 在 Trakt 激活页面输入 SuggestArr 显示的设备码
  6. 打开 Recent Trakt Preview 验证 Trakt 历史是否正常读取

管理员可在 Users 下使用相同的个人面板;Trakt 绑定与用户关联的媒体服务器账户绑定,因此用户应先关联媒体服务器账户。

审批工作流

新任务遵循全局 "Approve requests before sending them to Seer" 设置(Advanced 下默认关闭);每个任务可继承该设置或覆盖为始终审批/始终自动发送。待审结果出现在 Requests 页面,任务所有者或管理员可发送给 Seer、拒绝或全局拉黑。

注意事项与常见问题

  • 目前 Seer 用户选择功能仅支持本地 Seer 用户("Currently, only local Seer users are supported.")
  • Trakt 是可选项,没有它媒体服务器历史依然可用("Trakt is optional: media-server history still works without it.")
  • 任务暂停选项覆盖定时运行、单任务运行和强制全部运行("This applies to scheduled runs, single job runs, and force-run-all.")
  • LOG_LEVEL 与 SUGGESTARR_PORT 环境变量均为可选,默认 5000 端口、info 日志级别

优缺点

  • ✓ 全流程自动化推荐与请求
  • ✓ 支持三家媒体服务器
  • ✕ Seer仅支持本地用户
  • ✕ 需自行申请TMDb API Key

出处

本方案挖掘自开源项目 giuseppe99barchetta/SuggestArr,方案内容与实施命令均来自其 README 原文。

方案出处
giuseppe99barchetta/SuggestArr:Effortlessly request recommended movies, TV shows and anime to Jellyseer/Oversee
1309 star Effortlessly request recommended movies, TV shows and anime to Jellyseer/Overseer based on your recently watched content on Jellyfin, Plex or Emby—let SuggestArr handle it all automatically, keeping y

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。