nova-video-player / aos-AVP

NOVA opeN sOurce Video plAyer: main repository to build them all
Apache License 2.0
3.49k stars 201 forks source link

v6.0.17 does not separate TV shows with a reboot/revival with a different year with TMDB, which TVDB did fine #479

Closed Pentaphon closed 3 years ago

Pentaphon commented 3 years ago

Let's say you have all episodes of a TV show that has had a revival like iCarly.

Here's the TVDB for that show and the subsequent revival.

https://thetvdb.com/series/icarly <-- original

https://thetvdb.com/series/icarly-2021 <-- 2021 revival

Your episodes would be named for iCarly (Original)...

iCarly.S01E01.mkv and so on

Your episodes would be named for iCarly (2021)...

iCarly.2021.S01E01.mkv and so on

Nova v5 would recognize these as 2 different shows and give them their own entry and poster in your library because TVDB would make the year very explicit in their metadata.

However, because we switched to TMDB in v6, Nova just presses them these same files together into one library entry with the most recent show (iCarly 2021) and seem to ignore the year of the shows entirely. You can easily reproduce this by putting some naming some random files the same way I did up there on a share and watching Nova v6 treat all the files as the latest revival of the show. It seems like something that could be easily fixed by putting a high priority on the year the show began.

Here's the TMDB entires for iCarly Original and iCarly 2021 for reference.

https://www.themoviedb.org/tv/5371 <-- original

https://www.themoviedb.org/tv/119243 <-- 2021 revival

Any way to fix this? Revivals are becoming more and more common these days due to streaming providers and nostalgic fans who demand their old show come back since so many new shows are...terrible lol.

courville commented 3 years ago

I just checked with fake files iCarly.S01E01.mkv and iCarly.2021.S01E01.mkv and it gets scraped correctly on my side. I did implemented the year detection part of the filename cleaning and it should be passed correctly to tmdb API used. What could interfere in the process are some existing NFO files that would be parsed not correctly. Could you check if prior to the scrape process there are not in the way?

Capture d’écran 2021-09-16 à 10 32 03
ghost commented 3 years ago

Just as a sidenote: I have the 'issue' that for movies the year only gets detected when put into brackets, but not if it is just somewhere in the name.is it meant to be this way? Maybe it's the same for TV shows.

courville commented 3 years ago

Just as a sidenote: I have the 'issue' that for movies the year only gets detected when put into brackets, but not if it is just somewhere in the name.is it meant to be this way? Maybe it's the same for TV shows.

it is not the same issue than for TV shows. Note that I tried to implement a fallback on movies for v6.xx only addressing this problem. The tricky part for movies is that a date can be part of the name of the movie (hence the bracket convention that sometimes is not respected).

Pentaphon commented 3 years ago

Just cleared data on my v6.0.17 install to try again and I have 2 scraping errors with 2 shows with revivals. I definitely do not have any .nfo files, either.

More importantly, Nova v6.0.17 doesn't seem to label revival shows with the correct year. It's showing me the revival shows with the artwork and metadata, but no year after the title to show that it is a revival or anything to differentiate "iCarly" from "iCarly (2021)", for example. I'm not sure why it's showing you the year of the revivals on your end, because it doesn't on mine.

The error with iCarly persists. You can see from my screenshot that Nova says I have a 2nd season of iCarly (2021), but that obviously hasn't aired yet. It doesn't exist. It's mistaking iCarly for iCarly (2021).

icarlys2_proc

I have another issue with Amazing Stories.

https://thetvdb.com/series/amazing-stories aka https://www.themoviedb.org/tv/1026 https://thetvdb.com/series/amazing-stories-2020 aka https://www.themoviedb.org/tv/98178

My filenames are Amazing.Stories.S02E01.mkv and so on yet you can see from my screenshot it picks up only the Amazing Stories (2020) show and says that has a 2nd season, which it does not. It doesn't exist. It's mistaking Amazing Stories for Amazing Stories (2020).

amazing-2-seasons amazing_proc

courville commented 3 years ago

@Pentaphon can you please provide the exact file names that you want me to test for which you encounter the issue so that I can replicate on my side? I assume that your locale is english.

Pentaphon commented 3 years ago

Sure, the last 2 screenshots I gave you were created by the following files. I don't have the entire seasons. Just those episodes. I have the entire iCarly episodes, with the same type of filenames, title-year.blahblah.mkv, etc. The fact that it's not showing you the year of the revival show while showing you the poster and metadata, etc, should be troubling enough.

Edit: I just tried with v5 with a clean install and the TVDB scraper worked just fine on that version for both iCarly and Amazing Stories.

amazing

courville commented 3 years ago

I will check but amazing stories can be based on the fact that I sort the results by popularity which could bring 2020 show first though it helps in many other cases (not complying with the year convention for reboots). And for iCarly, the problem could come from some caching strategies applied in order to boot performance and avoid requeries to tmdb backend. These are just speculations that I will probe whenever I can.

courville commented 3 years ago

I know it will be frustrating: fake files,

Amazing_stories-s01e06.mkv iCarly.2021.S01E01.mkv iCarly.S01E01.mkv iCarly.S02E03.mkv

Result:

Capture d’écran 2021-09-16 à 14 07 39

Please let me know what I did wrong to reflect your setup.

Pentaphon commented 3 years ago

Those iCarly filenames should be fine and what I currently have but the Amazing Stories filename is not at all what I showed in my screenshot.

I just did a clean install of v6.0.17 on my phone and got the same result I do on my FireTV and tablet. Why doesn't it give me the year for iCarly 2021 and Amazing Stories 2020 when its showing me the poster for the new revivals?

Screenshot_20210916-051655-804 Screenshot_20210916-051634-306

courville commented 3 years ago

Did a full rescrape and I get now your issue. I can proceed now.

courville commented 3 years ago

Little update on the issue. It turns out that nova does store in SHOW Scrapertables ShowTags with a contraint in the name of the show to be unique instead of s_online_id to be unique. This results in an auto merging of shows to have the same name. Correcting the db scheme with sqlite involves unfortunately (removing the UNIQUE constraint) a cumbersome migration process. In order to avoid that, an acceptable workaround is to store reboot show names with the date in their title. Implementation will be pushed shortly.

courville commented 3 years ago

Note that now the algorithm is to chose shows sorted by date picked via Levenshtein metric. This insures that the oldest show is preferred to a reboot one in case of similar names if the date is not present in the title.

courville commented 3 years ago

Amazing stories mixup is solved by setting aside shows without airdate in themoviedb search result.

Pentaphon commented 3 years ago

I can confirm that v6.0.22 has fixed this issue. Reboots are correctly indexed separately from the older versions and the reboot year is finally showing in front of the reboot title. Amazing Stories is also identified correctly as the older show.

courville commented 3 years ago

Thanks for the testing and confirmation of the fix.