Ability to add freetext/regex blocklist entry per movie #9243

Closed
opened 2026-02-20 00:11:59 -05:00 by deekerman · 8 comments
Owner

Originally created by @joachimtingvold on GitHub (Aug 2, 2025).

Is there an existing issue for this?

  • I have searched the existing open and closed issues

Sometimes a lot of similar releases are matched for download, even if these are not a correct match for the movie. Sometimes this might be an error within Radarr, and other times it might be because of incorrect matching on indexers. Whatever the cause, it would be a useful addition to combat such scenarios.

Example releases being downloaded for the F1 movie. All of them are wrong, but could be easily be excluded if we had a way to add regex blocklist entries for the movie.

Formula1.2025.Austrian.Grand.Prix.Practice.One…
Formula1 2025 Round11 Austria FP1 F1TV…
Formula1.2025.Round12.Great.Britain.Race…
Formula1.2025.Round14.Hungary.FP1.SKY.F1TV…
Formula1.2025.Round14.Hungary.FP2.F1TV…

Describe the solution you'd like

Be able to add freetext/regex blocklist entry for any given movie. Either from the blocklist page (where you have to select the movie), and/or from within the movie details pages.

Describe alternatives you've considered

The existing "blocklist per release" is not really feasible here, as there are numerous similar releases, but with completely different release names. Common for them all, though, is that they start with "Formula1". Being able to blocklist them with a simple "^Formula1.*$" regex blocklist entry would be very nice.

Anything else?

N/A

Originally created by @joachimtingvold on GitHub (Aug 2, 2025). ### Is there an existing issue for this? - [x] I have searched the existing open and closed issues ### Is your feature request related to a problem? Please describe Sometimes a lot of similar releases are matched for download, even if these are not a correct match for the movie. Sometimes this might be an error within Radarr, and other times it might be because of incorrect matching on indexers. Whatever the cause, it would be a useful addition to combat such scenarios. Example releases being downloaded for the F1 movie. All of them are wrong, but could be easily be excluded if we had a way to add regex blocklist entries for the movie. ``` Formula1.2025.Austrian.Grand.Prix.Practice.One… Formula1 2025 Round11 Austria FP1 F1TV… Formula1.2025.Round12.Great.Britain.Race… Formula1.2025.Round14.Hungary.FP1.SKY.F1TV… Formula1.2025.Round14.Hungary.FP2.F1TV… ``` ### Describe the solution you'd like Be able to add freetext/regex blocklist entry for any given movie. Either from the blocklist page (where you have to select the movie), and/or from within the movie details pages. ### Describe alternatives you've considered The existing "blocklist per release" is not really feasible here, as there are numerous similar releases, but with completely different release names. Common for them all, though, is that they start with "Formula1". Being able to blocklist them with a simple "^Formula1.\*$" regex blocklist entry would be very nice. ### Anything else? N/A
Author
Owner

@bakerboy448 commented on GitHub (Aug 2, 2025):

This can already be accomplished with release profiles and tags. No plans beyond that.

For this specific issue rather than trying to workaround the indexer's wrong releases - report the mismatched ids for those releases to your indexer for them to correct them.

@bakerboy448 commented on GitHub (Aug 2, 2025): This can already be accomplished with release profiles and tags. No plans beyond that. For this specific issue rather than trying to workaround the indexer's wrong releases - report the mismatched ids for those releases to your indexer for them to correct them.
Author
Owner

@joachimtingvold commented on GitHub (Aug 2, 2025):

This can already be accomplished with release profiles and tags.

Which is way more cumbersome than just being able to blocklist them. 90% of the logic is already there. The only difference would be "specific release" blocklist entries versus a generic/regex one.

For this specific issue rather than trying to workaround the indexer's wrong releases - report the mismatched ids for those releases to your indexer for them to correct them.

Which again is more cumbersome. Without having researched this, I bet that many indexers have the same issue, so you would have to debug what indexers have the issue, and then report this to potentially multiple indexers, and then wait for them to fix it. Rather than just being able to fix it in one place quickly, and be done with it.

@joachimtingvold commented on GitHub (Aug 2, 2025): > This can already be accomplished with release profiles and tags. Which is way more cumbersome than just being able to blocklist them. 90% of the logic is already there. The only difference would be "specific release" blocklist entries versus a generic/regex one. > For this specific issue rather than trying to workaround the indexer's wrong releases - report the mismatched ids for those releases to your indexer for them to correct them. Which again is more cumbersome. Without having researched this, I bet that many indexers have the same issue, so you would have to debug what indexers have the issue, and then report this to potentially multiple indexers, and then wait for them to fix it. Rather than just being able to fix it in one place quickly, and be done with it.
Author
Owner

@mynameisbogdan commented on GitHub (Aug 12, 2025):

You should be able to use this custom format with -10000 scoring to get the same result in blocking titles that container either Round01 or R01.

{
  "name": "Unwanted Sport",
  "includeCustomFormatWhenRenaming": false,
  "specifications": [
    {
      "name": "F1 Rounds",
      "implementation": "ReleaseTitleSpecification",
      "negate": false,
      "required": false,
      "fields": {
        "value": "\\bR(ound)?\\d{2,4}\\b"
      }
    }
  ]
}
@mynameisbogdan commented on GitHub (Aug 12, 2025): You should be able to use this custom format with -10000 scoring to get the same result in blocking titles that container either `Round01` or `R01`. ```json { "name": "Unwanted Sport", "includeCustomFormatWhenRenaming": false, "specifications": [ { "name": "F1 Rounds", "implementation": "ReleaseTitleSpecification", "negate": false, "required": false, "fields": { "value": "\\bR(ound)?\\d{2,4}\\b" } } ] } ```
Author
Owner

@joachimtingvold commented on GitHub (Aug 12, 2025):

You should be able to use this custom format with -10000 scoring to get the same result in blocking titles that container either Round01 or R01.

Thanks for a potential workaround, which I guess would solve some scenarioes. The problem with that approach is that it blocks releases for all movies (rather than just a single one).

@joachimtingvold commented on GitHub (Aug 12, 2025): > You should be able to use this custom format with -10000 scoring to get the same result in blocking titles that container either `Round01` or `R01`. Thanks for a potential workaround, which I guess would solve _some_ scenarioes. The problem with that approach is that it blocks releases for _all_ movies (rather than just a single one).
Author
Owner

@mynameisbogdan commented on GitHub (Aug 13, 2025):

Even a native implementation with a decision spec would've been globally in same way this custom format behaves. There's no per specific movie functionality in the decision logic.

@mynameisbogdan commented on GitHub (Aug 13, 2025): Even a native implementation with a decision spec would've been globally in same way this custom format behaves. There's no per specific movie functionality in the decision logic.
Author
Owner

@joachimtingvold commented on GitHub (Aug 13, 2025):

So the content of the blocklist (/activity/blocklist) where it has the Movie Title column that tells you what movie triggered the blacklist, this is not used in the actual blocklist process? (so if a blocklisted release is hypothetically matched for two movies, it would be blocked for both, and not just the one it was originally blocklisted from?).

@joachimtingvold commented on GitHub (Aug 13, 2025): So the content of the blocklist (`/activity/blocklist`) where it has the `Movie Title` column that tells you what movie triggered the blacklist, this is not used in the actual blocklist process? (so if a blocklisted release is hypothetically matched for two movies, it would be blocked for both, and not just the one it was originally blocklisted from?).
Author
Owner

@mynameisbogdan commented on GitHub (Aug 13, 2025):

That blocking functionality blocks releases using the full name or by infohash.

When you have custom formats or release profiles with must not contain, there's no point to refactor the blocklisting to support regex to add a third way to block releases.

@mynameisbogdan commented on GitHub (Aug 13, 2025): That blocking functionality blocks releases using the full name or by infohash. When you have custom formats or release profiles with must not contain, there's no point to refactor the blocklisting to support regex to add a third way to block releases.
Author
Owner

@joachimtingvold commented on GitHub (Aug 13, 2025):

So if you have the following entry in the blocklist:

Movie Title Source Title
Crash (1996) Crash.1996.DVD-f00bar

When Radarr considers releases for the movie Crash (2004), it would block "Crash.1996.DVD-f00bar" even if its not for the same movie? (i.e. its basically a global block regardless of what movie it's processing?).

edit: And the Movie Title is basically just "extra information" to tell you what movie originally triggered the blacklist? And it's actually never used in the context of the actual blocklist process?

@joachimtingvold commented on GitHub (Aug 13, 2025): So if you have the following entry in the blocklist: | Movie Title | Source Title | | ------------- | ------------- | | Crash (1996) | Crash.1996.DVD-f00bar | When Radarr considers releases for the movie Crash (2004), it would block "Crash.1996.DVD-f00bar" even if its not for the same movie? (i.e. its basically a global block regardless of what movie it's processing?). edit: And the `Movie Title` is basically just "extra information" to tell you what movie originally triggered the blacklist? And it's actually never used in the context of the actual blocklist process?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Radarr#9243
No description provided.