Skip to content

Conversation

@gwlsn
Copy link

@gwlsn gwlsn commented Nov 28, 2025

Description

Add Plex watchlist support allowing users to add and remove movies and TV shows from their Plex watchlist directly from Seerr. I have included the button UI element on the Movie/TV show pages instead of the TitleCard (as is found in Jellyfin/Emby) as I find I more frequently want to add things to my Plex watchlist from that screen after seeing score/reviews and description. There is also a blacklist button there so I feel it fits with the overall design language.

The adding/remove from Plex watchlist relies on undocumented API calls as detailed here.

Backend Changes:

  • Implement PlexTvAPI methods for watchlist operations
    • addToWatchlist() and removeFromWatchlist() using Plex Discover API
    • findPlexRatingKeyByTmdbId() with TMDB ID matching via metadata
    • isOnWatchlist() to check current watchlist status
    • Use fresh axios instance to avoid ExternalAPI header conflicts
  • Add /api/v1/plex-watchlist endpoints (POST, DELETE, GET status)
  • Implement duplicate prevention checking before adding items
  • Add cache invalidation after watchlist modifications
  • Extract ratingKey from Plex guid format (plex://movie/ID)
  • Update OpenAPI spec with new Plex watchlist endpoints

Frontend Changes:

  • Add Plex watchlist buttons to MovieDetails and TvDetails pages
  • Position buttons between Blacklist and Trailer buttons
  • Use unfilled amber star icon for add, filled amber star for remove
  • Implement real-time watchlist status checking via useSWR
  • Add state management for watchlist updates and loading states
  • Add i18n support with tooltips for user guidance

This patch addresses request #2082

AI Disclosure

The majority of the code in this patch was generated by Claude Code with human supervision and revision. The above PR/Commit was also summarized by Claude Code.

How Has This Been Tested?

Tested locally with my personal Plex Media Server. Added and removed items from Plex watchlist through Seerr. Removed a watchlist item on Seerr that was added through official Plex app and vice versa to ensure compatibility with underlying Plex system. Tested with blacklisted and non-blacklisted items. As intended, button not visible on blacklisted item.

Screenshots / Logs (if applicable)

Screenshot1 Screenshot2

Checklist:

  • [ x ] I have read and followed the contribution guidelines.
  • [ x ] Disclosed any use of AI (see our policy)
  • [ x ] I have updated the documentation accordingly.
  • [ x ] All new and existing tests passed.
  • [ x ] Successful build pnpm build
  • [ x ] Translation keys pnpm i18n:extract
  • [ N/A ] Database migration (if required)

EDIT: Updated to conform to new pull request template

@gwlsn gwlsn requested a review from a team as a code owner November 28, 2025 05:16
Add comprehensive Plex watchlist support allowing users to add and remove
movies and TV shows from their Plex watchlist directly from Seerr.

Backend Changes:
- Implement PlexTvAPI methods for watchlist operations
  - addToWatchlist() and removeFromWatchlist() using Plex Discover API
  - findPlexRatingKeyByTmdbId() with TMDB ID matching via metadata
  - isOnWatchlist() to check current watchlist status
  - Use fresh axios instance to avoid ExternalAPI header conflicts
- Add /api/v1/plex-watchlist endpoints (POST, DELETE, GET status)
- Implement duplicate prevention checking before adding items
- Add cache invalidation after watchlist modifications
- Extract ratingKey from Plex guid format (plex://movie/ID)

Frontend Changes:
- Add Plex watchlist buttons to MovieDetails and TvDetails pages
- Position buttons between Blacklist and Trailer buttons
- Use unfilled amber star icon for add, filled amber star for remove
- Implement real-time watchlist status checking via useSWR
- Add state management for watchlist updates and loading states
- Add i18n support with tooltips for user guidance
- Hide Jellyfin watchlist button for Plex users on TitleCard

API Documentation:
- Update OpenAPI spec with new Plex watchlist endpoints
- Document request/response schemas for watchlist operations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@gwlsn gwlsn force-pushed the feat-plex-watchlist branch from 4cb9369 to a912f56 Compare November 29, 2025 21:14
@buzdriver
Copy link

Hi,
Not sure what happend here but I got like 50 re-requests of items already available from people that requested already requested material.
/BR

@gwlsn
Copy link
Author

gwlsn commented Dec 1, 2025

Hi, Not sure what happend here but I got like 50 re-requests of items already available from people that requested already requested material. /BR

Hi,

Thanks reporting this! This PR only adds the ability to manually add/remove items from your Plex watchlist via buttons on the movie/TV details pages. It adds a couple new endpoints but it doesn't interact with the request system, database, or the existing Plex watchlist sync job, so the re-requests you're seeing are likely unrelated to these changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants