What it works with

Last updated applies to v1.12.2

Every service Shortlist can talk to — Plex, TMDB, Sonarr, Radarr, Overseerr, Jellyseerr, Trakt, MDBList, Exa, SearXNG, Tautulli and the AI providers — what each one adds, and which are actually required.

Two things are required: Plex, and a free TMDB key. Everything below that is optional, and Shortlist runs with none of it — no AI account, no download apps, no paid anything.

Required

Service What it does What you need
Plex Where the rows appear, and where watch history comes from Plex Pass, and Plex Media Server 1.43.2 or newer
TMDB Finds titles similar to what someone watched A free API key — no card, takes a minute

Plex Pass is not optional. Private per-person rows depend on a sharing feature Plex only exposes to Plex Pass servers, so without it Shortlist cannot keep one person’s row off everyone else’s screen.

Where extra suggestions come from

Service What it adds What you need
Trakt Titles TMDB misses, from its own lists An API key, which now needs Trakt’s paid VIP plan
MDBList Ratings from IMDb, Rotten Tomatoes, Metacritic and Trakt A free API key

AI providers

Any one of these, or none. A model is used for web search and AI rows only. The reason next to each pick is always written by Shortlist itself, so no provider changes it.

Service What you need
Claude, GPT, Gemini An API key for that provider
Ollama, llama.cpp, LM Studio, vLLM, LocalAI A model you run yourself — no key

If you want a model to search the web before it answers:

Service What you need
Your provider’s own search Nothing extra — Claude, GPT and Gemini can search on their own
Exa A hosted search API and an account
SearXNG Search you host yourself. No account, no key.

A model you run yourself cannot search on its own, so it needs Exa or SearXNG. SearXNG is the option with nothing to sign up for.

Getting missing titles

When a row wants something the server doesn’t have, Shortlist can ask for it. Pick one route:

Service What it does
Radarr / Sonarr Shortlist adds the title directly, using your quality profile and root folder
Overseerr / Jellyseerr Shortlist hands the request over and lets them decide — their profiles, their approvals

Overseerr and Jellyseerr are the same integration; Jellyseerr is a fork and speaks the same API. Use one route or the other, not both. Set it up →

Overseerr is also read the other way round: a Your requests row shows each person the titles they asked for in Overseerr (or that carry their requester tag in Radarr/Sonarr) once they’re on Plex, until they’ve watched them. How the row works →

Everything else

Service What it does
Tautulli Optional. Only used for friendlier display names — Shortlist reads watch history from Plex directly
A webhook Optional. Posts JSON to a URL you choose when something you picked happens, so an overnight failure isn’t silent

The webhook is a JSON POST that works with Discord, Slack, Home Assistant, n8n or anything that accepts one. Add its address on the Webhook card in Settings → Connections, then turn it on and tick what to send in Settings → Connections → Webhook: runs starting, finishing, finishing with some people failed, failing or stopping early, jobs starting, finishing, failing or being skipped, someone able to see a row that isn’t theirs, titles waiting for your approval, and new versions. A failed run and a privacy problem are ticked to begin with. No message names anybody.

If your receiver needs a key (ntfy, Gotify, n8n’s header auth), give a header name and value on the same card. It is sent with every message, the test included. Clear the header name to stop sending it, or remove the card to take the address and the header off together.

What Shortlist does not work with

Jellyfin and Emby. The privacy mechanism is built on a Plex sharing feature that has no equivalent in either, so there is no version of this that works there.

Edit this page on GitHub