Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Defaults]: Content Rating US Show Overlay #2270

Open
gopherbutter opened this issue Oct 15, 2024 · 19 comments
Open

[Defaults]: Content Rating US Show Overlay #2270

gopherbutter opened this issue Oct 15, 2024 · 19 comments
Assignees

Comments

@gopherbutter
Copy link

gopherbutter commented Oct 15, 2024

Link to File

https://github.com/Kometa-Team/Kometa/blob/master/defaults/overlays/content_rating_us_show.yml

Version Number

2.1.0

What branch are you on?

master

Describe the Bug

The overlay "TV-Y" seems to be the overlay applied for shows rated: "TV-Y, TV-Y7, TV-Y7-FV, 7, 07, 8, 08, 9, 09, no/5, no/05, no/6, no/06, no/7, no/07". This may give a false impression that items with the "TV-Y" overlay are suitable for all children when in fact it includes other ratings (e.g. TV-Y7). Link to Ratings wiki. Link to reddit post about this. Thanks. Understand this may not be a high priority issue but I noticed it when trying to use this as a tool to filter shows for a child and was surprised by the outcome.... not that this should be a sole source of that decision.

@gopherbutter
Copy link
Author

Updated link had movies instead of shows.

@YozoraXCII
Copy link
Contributor

YozoraXCII commented Oct 15, 2024

Thanks for bringing this to our attention - I'll look to get a fix implemented for this ASAP.

The aim of that file is try and combine different countries content rating systems, so it can be a bit difficult to know exactly where each mapping should fall.

The current system is set up that:
Ages of <6 goes into TV-G
Ages 7-9 goes into TV-Y
Ages 10-13 goes into TV-PG
Ages 14-17 goes into TV-14
Ages 18+ goes into TV-MA

Just so I understand 100% - TV-Y is suggested for children aged between 2-6, whilst TV-Y7 is suggested for children 7+, so TV-Y7 needs moved out of TV-Y and instead makes more sense in TV-PG? or is TV-G more appropriate?

It seems that in some way TV-Y and TV-Y7 need to be split apart.

The difficulty here is that there is little different between TV-Y and TV-G, so TV-Y7 has kind of fallen through the cracks of both of them and I'm not 100% sure on the best way to try and resolve this.

Would it make more sense for the "TV-Y" rating to be moved into "TV-G" and then replacing the current "TV-Y" rating overlay with the "TV-Y7" one like this?

overlays:
  tv-g:
    template:
      - name: standard
      - {name: cr_us, rating: "TV-G, TV-Y, 1, 01, 2, 02, 3, 03, 4, 04, 5, 05, 6, 06, U, G, gb/U, gb/0+, G - All Ages, A, no/A, no/5, no/05, no/6, no/06"}

  tv-y7:
    template:
      - name: standard
      - {name: cr_us, rating: ", TV-Y7, TV-Y7-FV, 7, 07, 8, 08, 9, 09, , no/7, no/07"}

@gopherbutter
Copy link
Author

gopherbutter commented Oct 15, 2024

I guess I don't understand the different countries aspect when talking about the US Show Overlay. Are we talking about a US Show shown in some other country? If it's the other way around and a Show made in county X and shown in the US, I would expect that it would get a US rating before being shown in the US.

I'm not sure what rating system the other ratings are from "7, 07, 8, 08, 9, 09, no/5, no/05, no/6, no/06, no/7, no/07". It doesn't look like any on this page. It sort of looks like the "Common Sense Age Ratings" but that has it's own overlay.

The difference I see between TV-Y (all variants) are that they are designed for children where TV-G is not. I don't know if that is a big enough distinction to make a difference.

@YozoraXCII
Copy link
Contributor

YozoraXCII commented Oct 15, 2024

So the purpose of these Rating overlays is to try and map any other country's rating system into it.

For example UK rating 18 would fall into TV-MA, else users who do not have their Certification Country in Plex set to United States would have to amend that or run a mass content rating update operation for this file to work for them, which is something we want to avoid.

The way I generally think of the Content Rating system is what it is appropriate for, rather than what it is designed for. Ultimately we don't want young viewers seeing things that aren't appropriate for their age range (as per the guidelines from the content rating authorities).

With that in mind I would suggest there is no real difference between TV-Y and TV-G and those two should be one and the same, compared to TV-Y and TV-Y7 where the stuff in Y7 is not appropriate for TV-Y viewers, so those should be split - would you agree with this distinction?

@gopherbutter
Copy link
Author

Fair enough. I would say the suggested fix does meet the spirit of what the ratings are intended to do. It may benefit the team here to include some sort of language in the Kometa wiki that explains that the overlay may not match the rating in Plex to avoid repeated questions. Thanks for your help.

*Side note: The Content Rating US Show Overlay page says "based on the MPAA Age Rating" which is not correct for TV shows.

@gopherbutter
Copy link
Author

Not trying to be a pain here but I still don't get it.

For example UK rating 18 would fall into TV-MA, else users who do not have their Certification Country in Plex set to United States would have to amend that or run a mass content rating update operation for this file to work for them, which is something we want to avoid.

Why would a UK user have their Plex Country set to US? There is a UK TV overlay that includes all the UK TV content ratings. And a few other Country ratings (AU, DE, NZ, UK, US). If you are in Singapore then not sure.

Mixing content ratings from already defined different sources/countries seems counter productive. The argument of avoiding mass content changes seems a bit off to me. I expect most people that use this software are enthusiasts and would prefer technically correct and not care so much for extra CPU cycles to make it so.

@planetrocky
Copy link

Why would a UK user have their Plex Country set to US? There is a UK TV overlay that includes all the UK TV content ratings. And a few other Country ratings (AU, DE, NZ, UK, US). If you are in Singapore then not sure.

I have my content rating set to US; but I have shows from a few countries. This is a global setting for the Plex library, there’s no fine-grained control per-show. Unless you setup individual libraries for each country; but then it’s hard to find content.

Plex has a content rating country global per library.
Kometa will run an overlay mapping from the Plex metadata using the mappings specified in the Kometa defaults YAML files. You could create your own overlay, but the limitation of Plex Library global choice remains.

The metadata sources may not always have all countries certifications anyway. It’s all user contributed for TMDb et al. I’ve contributed many to TMDb over the years.

@planetrocky
Copy link

planetrocky commented Oct 17, 2024

A side-issue I’ve noticed with running mass_content_rating_update is that when a certificate rating isn’t available the value N/A is set in the Plex Content Rating field (and then locked). This displays as A in the Plex GUI view.

I wonder if this case where it’s not available, the field should be left empty and not locked?

@chazlarson
Copy link
Contributor

I side-issue I’ve noticed with running mass_content_rating_update is that when a certificate rating isn’t available the value N/A is set in the Plex Content Rating field (and then locked). This displays as A in the Plex GUI view.

I wonder if this case where it’s not available, the field should be left empty and not locked?

What does your config look like? If no rating is found none should be set.

@planetrocky
Copy link

planetrocky commented Oct 17, 2024

Snippet showing mass_content_rating_update from my config.yml

Movies:
    # 🔸MOVIE OPERATIONS🔸
    operations:
        split_duplicates: false
        assets_for_all: true
        mass_content_rating_update:
          - omdb
          - mdb

meta.log:

[2024-10-17 23:48:09,617] [operations.py:904]         [INFO]     |========================================== Batch Updates ===========================================|
[2024-10-17 23:48:09,617] [operations.py:905]         [INFO]     |                                                                                                    |
[2024-10-17 23:48:09,617] [operations.py:926]         [INFO]     | Batch Audience Rating Update (1/3): 1 Movie updated to 3.0                                         |
[2024-10-17 23:48:09,643] [operations.py:926]         [INFO]     | Batch Audience Rating Update (2/3): 1 Movie updated to 4.2                                         |
[2024-10-17 23:48:09,691] [operations.py:926]         [INFO]     | Batch Audience Rating Update (3/3): 1 Movie updated to 4.6                                         |
[2024-10-17 23:48:09,735] [operations.py:926]         [INFO]     | Batch Audience Rating Update (4/3): 1 Movie updated to 4.7                                         |
[2024-10-17 23:48:09,776] [operations.py:926]         [INFO]     | Batch Audience Rating Update (5/3): 1 Movie updated to 5.1                                         |
[2024-10-17 23:48:09,817] [operations.py:926]         [INFO]     | Batch Audience Rating Update (6/3): 1 Movie updated to 5.3                                         |
[2024-10-17 23:48:09,917] [operations.py:926]         [INFO]     | Batch Audience Rating Update (7/3): 1 Movie updated to 5.4                                         |
[2024-10-17 23:48:09,968] [operations.py:926]         [INFO]     | Batch Audience Rating Update (8/3): 1 Movie updated to 6.3                                         |
[2024-10-17 23:48:10,035] [operations.py:926]         [INFO]     | Batch Audience Rating Update (9/3): 1 Movie updated to 6.6                                         |
[2024-10-17 23:48:10,091] [operations.py:926]         [INFO]     | Batch Audience Rating Update (10/3): 1 Movie updated to 6.7                                        |
[2024-10-17 23:48:10,117] [operations.py:926]         [INFO]     | Batch Critic Rating Update (1/3): 1 Movie updated to 5.7                                           |
[2024-10-17 23:48:10,143] [operations.py:926]         [INFO]     | Batch User Rating Update (1/3): 1 Movie updated to 4.1                                             |
[2024-10-17 23:48:10,184] [operations.py:926]         [INFO]     | Batch User Rating Update (2/3): 1 Movie updated to 5.7                                             |
[2024-10-17 23:48:10,191] [operations.py:926]         [INFO]     | Batch User Rating Update (3/3): 1 Movie updated to 8.4                                             |
[2024-10-17 23:48:10,309] [operations.py:933]         [INFO]     | Batch Content Rating Update (1/1): 1 Movie updated to N/A                                          |
[2024-10-17 23:48:10,351] [operations.py:1062]        [INFO]     |                                                                                                    |
[2024-10-17 23:48:10,351] [operations.py:1063]        [INFO]     |====================================== Collection Operations =======================================|

For that movie above, mdb is returning from the API:

{
  "certification": "NR",
  "commonsense": {},
  "age_rating": 18,
}

and omdb is the one returning N/A:

{
    "Rated": "N/A",
}

I've just changed my config.yml to add commonsense, and a fallback of NR:

Movies:
    # 🔸MOVIE OPERATIONS🔸
    operations:
        split_duplicates: false
        assets_for_all: true
        mass_content_rating_update:
          - mdb
          - mdb_commonsense
          - omdb
          - NR

@chazlarson
Copy link
Contributor

chazlarson commented Oct 17, 2024

OMDB returning a value ["N/A"], so Kometa doesn't fall through to anything else in the list.

If I just paste your operation into my test config I get:

...
| Batch Content Rating Update (3/17): 111 Movies updated to N/A                                      |
...

The first of those 111 is:

| Processing: 9/1686 12th Fail                                                                       |
| Update Content Rating (Batched) | N/A                                                              |

If I look at that movie on OMDB, it has rating "N/A":

{"Title":"12th Fail","Year":"2023","Rated":"N/A",". ...

On mdblist, it shows "Certification: NR / 13+".

If OMDB returned no rating at all, Kometa would fall through to mdb.

If I reverse the order of the two in the config:

| Processing: 9/1686 12th Fail                                                                       |
| Item Edits                                                                                         |
| Update Content Rating (Batched) | NR                                                               |

Which matches the rating as shown at MDB

@planetrocky
Copy link

@chazlarson thank you! We both debugged the same thing together :)

BTW I copied the mass content rating update from one of the examples

@chazlarson
Copy link
Contributor

In this case:

        mass_content_rating_update:
          - omdb
          - mdb
          - mdb_commonsense
          - NR

If OMDB returns a rating Kometa won't fall through to any of those other three.

@planetrocky
Copy link

Yes. I snipe edited my reply above :)

OMDB shouldn't return "N/A"; or perhaps operations.py should treat N/A as not available and fall-through the the next?

@chazlarson
Copy link
Contributor

chazlarson commented Oct 17, 2024

Take it up with OMDB, I suppose. Or perhaps with IMDB, since that's where their data comes from. I'm not sure Kometa should get into the business of deciding what data is "valid", but it's not my call. perhaps a feature request.

@planetrocky
Copy link

planetrocky commented Oct 17, 2024

I'll make a local edit to operations.py to fix it:

                if self.library.mass_content_rating_update or self.library.content_rating_mapper:
                    new_rating = None
                    extra_option = None
                    if self.library.mass_content_rating_update:
                        for option in self.library.mass_content_rating_update:
                            if option in ["lock", "unlock", "remove", "reset"]:
                                extra_option = option
                                break
                            try:
                                if option == "omdb":
                                    _rating = omdb_obj().content_rating # noqa
                                    if not _rating:
                                        new_rating = None
                                    elif _rating == "N/A":
                                        new_rating = None
                                    else:
                                        new_rating = _rating
                                elif option == "mdb":

It's now perfect

@gopherbutter
Copy link
Author

gopherbutter commented Oct 18, 2024

I have my content rating set to US; but I have shows from a few countries. This is a global setting for the Plex library, there’s no fine-grained control per-show. Unless you setup individual libraries for each country; but then it’s hard to find content.

Plex has a content rating country global per library.
Kometa will run an overlay mapping from the Plex metadata using the mappings specified in the Kometa defaults YAML files. You could create your own overlay, but the limitation of Plex Library global choice remains.

So lets say I am in UK. ...but I want to set my XYZ Plex library to US and get the Plex content ratings (in plex) that way. Why would I then want an overlay to map US content ratings to UK content ratings and display that overlay? There is a UK overlay for content ratings. Why mix them?

@planetrocky
Copy link

I have my content rating set to US; but I have shows from a few countries. This is a global setting for the Plex library, there’s no fine-grained control per-show. Unless you setup individual libraries for each country; but then it’s hard to find content.

Plex has a content rating country global per library.
Kometa will run an overlay mapping from the Plex metadata using the mappings specified in the Kometa defaults YAML files. You could create your own overlay, but the limitation of Plex Library global choice remains.

So lets say I am in UK. ...but I want to set my XYZ Plex library to US and get the Plex content ratings (in plex) that way. Why would I then want an overlay to map US content ratings to UK content ratings and display that overlay? There is a UK overlay for content ratings. Why mix them?

Is every item in your XYZ Plex Library from the US, or at least, has a certification rating in the US? What if you had a movie or show from another country, other than the US? As I said above, if you have movies or shows from other countries in your Plex XYZ library, you will get certificate ratings from various countries (unless that movie/show had a US release and a US certificate rating).

There is a single field per movie for the certification content rating (contentRating) in Plex. There is a per-library setting to choose the Certification Country.

Maybe the Plex user would prefer all ratings to be mapped to Common Sense, or maybe others might wish to use the Kijkwijzer.

If you look at the metadata agents that are available for use here; you will discover that many have incomplete information - unless you are going to manually edit and maintain each entry by hand, you might find various ratings systems in your libraries. Especially if you use the community built databases.

Notwithstanding all of this; releases in different countries are often different versions. Ranging from small edits for scheduling slots, to completely changing all the music. I have some shows with two versions; the original broadcast country; and then the Netflix edition.

@gopherbutter
Copy link
Author

I have a stupid number of libraries to make it more granular. Like 20 (TV shows, TV shows classic, TV shows kids, TV shows food...ect) Maybe that's the difference for me. I understand most may not use Plex/Kometa this way. I did try to edit the file to remove the stuff I didn't need but get on error about missing template and ran out of talent/give a crap. Thanks for all your help...I'll be happy with the TV-Y fix.

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

No branches or pull requests

6 participants