Build out some Custom Format features from Radarr Aphrodite

I’ve already discussed this with Markus at a high level, but I thought I would create a post for visibility as well as to organize my thoughts.

The new Custom Format framework was built using Sonarr’s Preferred Words as an inspiration. I will list out the major differences, my thoughts on each, and how each could possibly benefit Sonarr. For the purposes of the discussion, “Formats” and “Preferred Words” will be used interchangeably.

1. Radarr takes the score calculated by the unique Formats that match either the original scene name or the new filename (after rename). Sonarr takes the highest score.
[Thoughts] I think this is not very high priority. There are some unique differences in how edge cases are handled, but we can assume that most cases will be treated the same in both methods. The differences will really apply in the case where negative scores are being used. This can result in cases where one of the names matches more Formats, but results in a lower score. However, we can assume that we wanted to consider the negative score in the impact.

2. Radarr allows labels to be applied to Custom Formats. Sonarr only allows the input of the string being matched.
[Thoughts] I know Markus said that this was not in the plan, but I want to at least indicate why this is useful. It can be used for the next few points, and also give a ton of ease for users when they are examining their Words/Formats. Even if the user is not leveraging regular expressions, the string they are matching may not actually correspond to the purpose of that string, i.e. matching VFI for French

image

3. Radarr displays matched Formats in various UI pages like history and the file page. Sonarr only displays combined score on the Interactive Search page.
[Thoughts] I think this one is huge. There are lots of queries about why an episode was upgraded, and it is incredibly difficult to reverse engineer which Formats/Words matched the original episode and the upgraded episode. By displaying the actual matches, a user would be able to follow and understand whether their Formats/Words are set up correctly. It would also give more context to the files they have downloaded. Of course, if we are using labels, then this becomes much easier to display as per point 2, large messy regex or strings would not necessarily give the best context.

4. Radarr allows users to select which Formats are added into the Custom Format naming token. Sonarr will add all Words into the token.
[Thoughts] I think Radarr’s behavior here is significantly more useful. As soon as you start adding a lot of Formats, the naming token does not become useable in Sonarr. If you have tokens meant purely for grabbing certain audio codecs, those could be included inadvertently even though there are better naming tokens for MediaInfo. While users could set up multiple profiles to handle which Words are included in the naming token or not, this is arguably much messier and complex. The benefit of adding custom formats in the name is immense. Sometimes Sonarr loses episode history due to issues with TVDB. In those scenarios, if certain Words are not in the name, Sonarr will not add those back into the score calculation, and it can result in Sonarr trying to upgrade the file incorrectly. Again, as before, if we are using labels, then those Formats become much more palatable in the name.

For the UI, Sonarr can use the existing Profile modal. Just add a column for label, and move the Include in Custom Format naming token checkbox next to each line.

5. Radarr allows for multiple conditions per Format, with logical operators such as AND, NOT, and OR stringing them together (though they are named a bit differently for UX reasons). Sonarr allows for only a single regex string.
[Thoughts] So, I think this would also be low priority. The flexibility offered by this setup is immense. It allows users to avoid things like negative lookbacks and use much simpler terms. However, it will require a complete overhaul of the UI for setting up Words in Sonarr compared to the rest of these points. Also, it can make the feature seem much more intimidating than the way it is set up right now. You can see below some of the example formats allowed via this method, but I think it is fine if Sonarr ignores it for now.

Below, I match TrueHD (with a simple string for truehd) but also require that Atmos is not found. It is very easy to setup in Radarr, but would be nearly impossible in Sonarr.
image

6. Radarr allows you to set minimum and maximum Format scores per profile. Sonarr has no min/max.
[Thoughts] I think this can be low priority. The min/max actually creates more issues than it solves since users are not fully aware of how the score can be impacted with all the permutations and combinations of matches, and they can set these wrong.

image

7. Radarr maps Custom Format scores per Quality Profile. Sonarr maps it per Release Profile
[Thoughts] I am ambivalent to the treatment of these two. Users can set up multiple profiles if they want to score Formats differently for different items. It is more cumbersome, but it can also lead to more flexibility. For example, I want a completely different and additional set of formats for Anime, even if Anime and Standard shows have the same quality profile. Honestly, I think I prefer Sonarr’s approach here as it suits TV better.