I love Jellyfin. I did think these recommendations were a bit funny however since they were so off.

Maybe the recommendations need to also look at the movies mpaa rating? Like something PG shouldn’t be recommended after watching an R and especially not vice versa.

I guess it becomes complex quickly if you want to add other rating systems to the mix.

  • bradbeattie
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 months ago

    Hey, I’ve worked in the recommendations/similarity calculations. Could you post a screenshot of the detail page for Inside Out? I suspect your media doesn’t have associated metadata (e.g. tmdb tags) that are used to power similarity calculations.

    • CubitOom@infosec.pubOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 months ago

      I’m not 100% sure what the detail page is but here is the page I see when selected.

      I think I have Jellyfin mostly at the default setings, with one exception. I did change the name of the key for the rating variable in the metadata to be ‘MPAA rating’ instead of the default which I think was ‘rating’ before since I found it confusing. So if the current recommendation calculation is using that variable then I guess it would be null for all my media.

      Also, here is the metadata jellyfin shows.

      Inside Out (2015)
      Container: mkv
      Path: /mnt/ext4/film/film/Movies/Inside Out (2015).mkv
      Size: 5022 MB
      
      Subtitle
      Title: Italiano Forced - Default - SUBRIP
      Language: ita
      Codec: SUBRIP
      Default: Yes
      Forced: Yes
      External: No
      
      Video
      Title: Video 2160p - 4K - HEVC - HDR
      Codec: HEVC
      Profile: Main 10
      Level: 150
      Resolution: 3840x2160
      Aspect ratio: 16:9
      Interlaced: No
      Framerate: 23.976025
      Bitrate: 7401 kbps
      Bit depth: 10 bit
      Video range: HDR
      Video range type: HDR10
      DV title: DV Profile 8.1 (HDR10)
      DV version major: 1
      DV version minor: 0
      DV profile: 8
      DV level: 6
      DV rpu preset flag: 1
      DV el preset flag: 0
      DV bl preset flag: 1
      DV bl signal compatibility id: 1
      Color space: bt2020nc
      Color transfer: smpte2084
      Color primaries: bt2020
      Pixel format: yuv420p10le
      Ref frames: 1
      
      Audio
      Title: Italiano AC-3 5.1 - Dolby Digital - Default
      Language: ita
      Codec: AC3
      Layout: 5.1
      Channels: 6 ch
      Bitrate: 448 kbps
      Sample rate: 48000 Hz
      Default: Yes
      Forced: No
      External: No
      
      Audio
      Title: English AC-3 5.1 - Dolby Digital
      Language: eng
      Codec: AC3
      Layout: 5.1
      Channels: 6 ch
      Bitrate: 640 kbps
      Sample rate: 48000 Hz
      Default: No
      Forced: No
      External: No
      
      Subtitle
      Title: English Forced - SUBRIP
      Language: eng
      Codec: SUBRIP
      Default: No
      Forced: No
      External: No
      
      Subtitle
      Title: Italiano - SUBRIP
      Language: ita
      Codec: SUBRIP
      Default: No
      Forced: No
      External: No
      
      Subtitle
      Title: English - SUBRIP
      Language: eng
      Codec: SUBRIP
      Default: No
      Forced: No
      External: No
      

      PS: I scrape my metadata from themoviedb.org in Kodi and then export that to an xml file of the same name, Jellyfin seems to find and use that.

      • bradbeattie
        link
        fedilink
        English
        arrow-up
        3
        ·
        6 months ago

        https://github.com/jellyfin/jellyfin/blob/31aa44d23d12b5dbb5f9a131242cc82c9ef98f24/Emby.Server.Implementations/Data/SqliteItemRepository.cs#L2279 is what’s discovering similar content. If the InheritedParentalRatingValue is considered zero, it’s only going to match other content with the same value. Can you elaborate on “I did change the name of the key for the rating variable in the metadata to be ‘MPAA rating’ instead of the default which I think was ‘rating’ before since I found it confusing.”? I suspect we’re zeroing (ha ha) in on the problem.

        • CubitOom@infosec.pubOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 months ago

          Digging in a bit. It looks a bit different than I thought it did on my end.

          I periodically use Kodi to backup my metadata to an NFO file. But I guess I forgot to script that and haven’t actually done that in a while. When Kodi scrapes the metadata it preprends the mpaa value with the string MPAA Rated . I did this to make it more obvious if the rating was scraped correctly since I’ve seen kodi attempt to scrape before but then just record the value as null.

          1. Inside Out didn’t have an NFO that Jellyfin was reading from. But Jellyfin is set to scrape its own metadata from all avaliable sources. I just didn’t enable it to write its own NFO file since I want the files that Kodi makes to take precidence and not be overwritten be Jellyfin. So for the case of insde out, it’s pulling the correct rating without any changes. As seen in this desktop screenshot.

          2. A Boy and His Dog, on the other hand does have a nfo from Kodi and it does have that MPAA rating on jellyfin with the prepended string as seen in this screenshot and in this bit from the nfo file.

          <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
          <movie>
              <title>A Boy and His Dog</title>
              <originaltitle>A Boy and His Dog</originaltitle>
              <ratings>
                  <rating name="themoviedb" max="10" default="true">
                      <value>6.300000</value>
                      <votes>309</votes>
                  </rating>
              </ratings>
              <userrating>0</userrating>
              <top250>0</top250>
              <outline>A young man and his telepathic dog wander a post-apocalyptic wasteland.</outline>
              <plot>Set in the year 2024 in post-apocalyptic America, 18-year old Vic and his telepathic dog, Blood, are scavengers in the desolate wilderness ravaged by World War IV, where survivors must battle for food and shelter in the desert-like wasteland. Vic and Blood eke out a meager existence, foraging for food and fighting gangs of cutthroats.</plot>
              <tagline>A rather kinky tale of survival.</tagline>
              <runtime>90</runtime>
              <thumb aspect="poster" preview="https://assets.fanart.tv/preview/movies/4917/movieposter/a-boy-and-his-dog-5e3fe50ad3787.jpg">https://assets.fanart.tv/fanart/movies/4917/movieposter/a-boy-and-his-dog-5e3fe50ad3787.jpg</thumb>
              <mpaa>MPAA Rated R</mpaa>
          

          1. Burning has a nfo file from Kodi. But the MPAA key is null in the NFO file. So there is no prepended string. However jellyfin still scraped the MPAA rating for it’s self and correctly labeled it as seen in this screenshot and nfo.
          <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
          <movie>
              <title>Burning</title>
              <originaltitle>버닝</originaltitle>
              <ratings>
                  <rating name="themoviedb" max="10" default="true">
                      <value>7.400000</value>
                      <votes>1440</votes>
                  </rating>
              </ratings>
              <userrating>0</userrating>
              <top250>0</top250>
              <outline>Jong-su bumps into a girl who used to live in the same neighborhood, who asks him to look after her cat while she&apos;s on a trip to Africa. When back, she introduces Ben, a mysterious guy she met there, who confesses his secret hobby.</outline>
              <plot>An aspiring writer goes to the airport to pick up a high school friend returning from a trip to Africa but is disheartened to see her with another man.</plot>
              <tagline>The truth is all in your head.</tagline>
              <runtime>148</runtime>
              <thumb aspect="poster" preview="https://image.tmdb.org/t/p/w500/kXiF80o74fE9gf3Utf9moAI7ar0.jpg">https://image.tmdb.org/t/p/original/kXiF80o74fE9gf3Utf9moAI7ar0.jpg</thumb>
              <mpaa></mpaa>
          

          So I guess I have 2 questions.

          1. Does the string I put in the rating distort the recommendation system?
          2. Does the recommendation system prioritize a local nfo file even if the value for the MPAA key is null when jellyfin actually has the correct rating in its cache?