External integration - Overseerr / Jellyseerr

cover-seerr

Hi everyone!

Another one for the self-hosting series, for those who have a NAS or a home server. I loved setting up Sonarr & Radarr, and the next logical step is what’s in front: Overseerr or Jellyseerr, where the whole family requests their movies and series. Seerr is also supported.

What it does

  • One device per server, up to two (one 4K instance, or a Jellyseerr next to an Overseerr): pending approval requests, approved in progress, available, failed, total, open issues, the last request and its author, the version and « update available ».
  • Three triggers: « New Request », « Request Available » (the movie has arrived, or all requested seasons of a series) and « New Issue Reported » (video, audio, subtitles…).
  • Two actions « Approve / Reject the Last Request », disabled by default (to be checked in the configuration).
  • A « Media Requests » widget: posters, requester, status, and Approve / Reject buttons with confirmation.
  • In French, English, German, and Spanish.

The cool part

Alice’s request is available → message to Alice: « Your movie has arrived, enjoy watching! »
New request from the kids between 9 a.m. and 8 p.m. → automatically approved
Subtitle issue reported → notification with the message

Installation

:warning: Gladys 5.1 minimum.

It will arrive in the store at the next indexer update. In the meantime: Integrations → Install from GitHub, with GitHub - guim31/gladys-seerr: Overseerr and Jellyseerr media requests for Gladys Assistant · GitHub

  1. In Overseerr, Jellyseerr, or Seerr: Settings → General → API Key, and copy the key.
  2. In Gladys: the server address with its port (5055 by default) and the key, then Test the connection. Check Allow approval and rejection only if you want to control requests from Gladys.
  3. Discovery tab: add the server.

Honest small reservations

  • The API key acts as the administrator of the server: that’s why approval and rejection are disabled by default. A rejection never deletes anything, but Seerr then refuses to approve a rejected request (Overseerr and Jellyseerr accept it).
  • No webhook (Gladys does not open a port): an event arrives at the next refresh (1 minute by default), and the arrival of a season in 10 minutes at most.
  • The 50 most recent requests are tracked, and the filter on the requester compares the exact name.
  • Tested against real Overseerr 1.35.0, Jellyseerr 2.7.3, and Seerr 3.5.0, launched for the occasion from their official images: reading, bad key, reported issue, approval, arrival of a media. But without Plex, Jellyfin, Sonarr, Radarr, or TMDB behind: the real titles and posters were not seen in real-time. Not yet tried in a real Gladys installation, your feedback is welcome.

Like the previous ones, developed with Claude Code. Independent project, not affiliated with Overseerr, Jellyseerr, or Seerr.

Repository: GitHub - guim31/gladys-seerr: Overseerr and Jellyseerr media requests for Gladys Assistant · GitHub