[Feature Request] Do not automatically download huge shows
Problem: A user watchlists a TV Show with a lot of seasons. The server doesn't have the capacity to download that all at once, so gets overwhelmed with that download request.
Solution: Query the server for the number of seasons a show has, and if it's above a certain configured threshold, do not automatically download. Ideally, log this somewhere / send an alert to the server owner (using e-mail/Telegram/...). Adding a setting to alert the server owner instead of downloading automatically when a user requests a show that has ended could also be useful.
If you don't have the capacity to implement this, I wouldn't mind giving it a try. I'm a software engineer but never touched any Scala code, so if that's the case and you don't mind giving me some pointers, I'd be grateful! :)
Hello! Sorry for the delayed response, it's been a busy week! This is certainly a great idea. I'm happy to implement this but if you wanted to give it a shot as well, I'm happy to help support your efforts :)
It would also be a good test that my CI/CD pipelines work beyond just me, I have a feeling the way it's set up only I can use it, because it's pushing to my docker repo.
You probably want to implement this in two steps:
-
Set a limit for number of seasons to download, if the limit is exceeded then print something to console and do not send to Sonarr (or send, but disable the search for missing episodes)
-
Alerting system to send alerts to a platform of choice. I wouldn't want to re-invent the wheel here, so if there's an easy webhook or something I can attach without too much additional manual instrumentation, then that would be ideal. I'll do some research here
Feel free to reach out to me on discord (@ nylonee) if you're interested in helping out and I can help you get a dev environment set up :) You shouldn't need the Scala compiler if you're comfortable letting docker do the building, but a JVM-compatible IDE like IntelliJ or VSCode is a must.
It would be great if we could add single episodes or seasons to the Plex watchlist 😔
As an alternative that can be implemented today:
- Turn on Plex notifications for new content added to your Plex library (can be configured via the Plex phone app)
- Set Watchlistarr to download only the first season (by setting the sonarr monitorType to
firstSeason
The first season of any show will download, you'll get a notification and you can go in and decide to trickle-download the rest of the season
@nylonee That gave me an idea for my use case - add everything with a monitorType of none, then have another external script look for added shows on Sonarr and decide what to do. Works for me, hopefully it works for others too, and makes watchlistarr simpler. :)
I think firstSeason is good addon.
As someone who also wants this, I voted for the following Plex forum threads. Maybe we could raise the attention for this with more votes
https://forums.plex.tv/t/watchlist-allow-adding-single-tv-episodes-not-just-the-full-show/858078
https://forums.plex.tv/t/support-tv-shows-seasons-on-watchlist/788112
@glensc Actually firstSeason is already implemented.
I can't seem to link nicely to this, but if you go to the Sonarr API Docs and do a search for MonitorTypes, you'll see the full list of available monitor types:
[ unknown, all, future, missing, existing, firstSeason, lastSeason, latestSeason, pilot, recent, monitorSpecials, unmonitorSpecials, none, skip ]
Setting the string in Watchlistarr directly sends the monitor type to Sonarr and lets Sonarr handle what to do. It's going to be a bit harder for Watchlistarr to do any middle-ware logic on these, as we'll need to fetch more than just the TVDB id for shows, we'll also need to fetch the number of seasons of a show. In the case of anime, sometimes they're advertised as one season with 500 episodes.
Given the complexity, I agree that the solution should be implemented on a service that has better knowledge of show structure, such as Sonarr or Plex.
That being said, allowing some user-written middleware functions for filtering your requests doesn't seem that out of scope for Watchlistarr's capabilities...
Closing this for now to do some tidying up of tickets