jurialmunkey / plugin.video.themoviedb.helper

GNU General Public License v3.0
208 stars 96 forks source link

[Few Requests] Absolute order for anime? Or option to only add New episodes rather than Missing. Support for Extra Folders in TMDB #404

Closed unkn0wn234 closed 3 years ago

unkn0wn234 commented 3 years ago

Request 1: Absolute order for Anime or setting to turn it on for certain shows I think this one is kinda unlikely but is it possible to use an absolute ordering scheme for anime, or maybe just an option for shows you choose for it be on so its not something youd have to code in for anime specifically? Anime is messy with Kodi so i understand if this is something unlikely/not doable.

Purpose: I would like to rename some of the library shows (anime) in my library to absolute order without TMDBHelpers library being affected. Make it so tmdb doesn’t re-add whole shows (like all their episodes) upon thinking no episodes are there in the absolute Order shows (cause it will not know that the episodes are there just in a different format) And also still being able to add the latest episodes.

Request 1: cont. Absolute Order What I have in mind with the above feature of TMDB Helper supporting absolute is having shows of anime being added in to my library under absolute order, so that when new episodes are added in too instead of re-adding the whole show bc it detected missing episodes, it would just add the latest episode in absolute order.

Request 2: (alternate option to 1) Option to only add new episodes rather than missing Or even just an option to only add new episodes only rather than missing ones would be helpful so that I could just manually rename the new episodes added in, this would be no problem compared to whole shows being re added as it detects none of the show inside the folder bc i renamed it all to absolute order, then me having to delete all the new episodes except the latest, then rename that. With this option I wouldnt mind taking things into my own hands and just converting the shows I want into absolute order.

Tbh I wish someone would just come along and make an AniDBHelper like u did for TMDB lol would solve everything but anime is always tricky with Kodi sadly :/

Request 3: Support for Extra Folders in TMDBHelper In Library Integration is it possible/would you consider adding an option to add extra folders to library sources in TMDBH?

  1. When you press Add to Library it would ask which Folder (if you have more than 1) then add to it , youd have to add it to either Movies or TV ofc as it currently is, Movie and TV are seperate already so u can add extra Movie sources, and TV sources.
  2. When doing library updates, for new episodes and stuff, it would scan in the extra folders you set.

Purpose: I would like to make a seperate folder in my Kodi library for just Anime from the stuff added through TMDBH, but I would also like to keep the feature of adding new episodes when they air to my shows from TMDBH. Which I wouldnt have if i just moved them out into a new folder.

You could also use it to better organize your content maybe into Genres and stuff too but I really jsut want it for anime tbh.

As always, appreciate your work jurial and even if its a no, an explanation on why would be appreciated I do like learning about the limitations of whats possible and not, and learning about kodi and addons in general as an onlooker lol ;P

jurialmunkey commented 3 years ago

Request 1: Absolute order for Anime or setting to turn it on for certain shows

Relevant discussion about episode groups for Anime in these issues: https://github.com/jurialmunkey/plugin.video.themoviedb.helper/issues/170 https://github.com/jurialmunkey/plugin.video.themoviedb.helper/issues/354

Short of it is that inside TMDbHelper episode groupings are already implemented. You can dynamically change ordering of episodes according to various groupings available on TMDb. However, it is far too problematic to implement for the library with some type of automated integration. That level of granular control over library organisation is better handled manually.

The main issue is that if the ordering isn't exactly what the scraper expects then you end up needing to reconfigure things manually anyway. Either you are using TMDb as your scraper, in which case the episodes are already in the expected order; OR you are using TVdb, in which case you can't be certain that some other ordering from TMDb will match.

With TVdb as the scraper, you'd need to check each show individually and then compare all the episode groupings provided by TMDb to find the one matching the ordering that TVdb considers "absolute". Then you'd need to setup bespoke rules on a per show basis. Ultimately, you'd end up spending more time configuring the "automated" rules and double-checking subsequently added episodes than you would have had you simply done it all manually.

Also, what does "absolute" even mean? Is it according to production codes? the script writers? the showrunner? the original tv network? The idea that there is even an "absolute" order is contentious. Considering that when TVdb say "absolute" what they really mean is "the order according to the preference of TVdb moderators", what happens is you end up with a mess of ad-hoc rules attempting to translate how things are ordered on TMDb into what TVdb considers "absolute".

Request 2: (alternate option to 1) Option to only add new episodes rather than missing

TMDbHelper already skips re-adding episodes if the episode had been previously logged as added.

Eventually the cache containing the log will expire and it will re-check the entire show. The current expiry is set for 120 days later however you can manually modify the file to change the expiry.

You can find the cache details in the .kodi/userdata/addon_data/plugin.video.themoviedb.helper/pickle folder. The details for each show is a text file called library_autoupdate_tv_{tmdb_id}. Just open the corresponding file in a text editor and change the expires date field (don't confuse it with the 'next_check' field which is when TMDbHelper will next check for new episodes of that show). Change the expiry year to 3000 and it won't ever recheck previously added episodes unless you force the recheck by running the update manually from the settings or re-add the show via the context menu.

EDIT: I just realised that when it next checks for new episodes the expiry date will be updated, so I will need to add an override option to ignore the expiry date completely -- but still for the time being you will be safe since it won't expire for another four months anyway, by which time the override option will definitely have been added.

Request 3: Support for Extra Folders in TMDBHelper

Whilst I appreciate the desire to have more control over organisation on disk, I think this would over complicate things in terms of code management. It is far easy to manage from my side of things if everything is in the one location on disk. I can just imagine issues happening with split folders and the like.

Also, ultimately there's not really much reason to separate the folders as the only way you can play the files is via the Kodi library anyway - it isn't like a normal Kodi source with videos files that you might want to play outside of Kodi.

unkn0wn234 commented 3 years ago

Alright

Request 1: Absolute order for Anime or setting to turn it on for certain shows

Relevant discussion about episode groups for Anime in these issues: #170 #354

Short of it is that inside TMDbHelper episode groupings are already implemented. You can dynamically change ordering of episodes according to various groupings available on TMDb. However, it is far too problematic to implement for the library with some type of automated integration. That level of granular control over library organisation is better handled manually.

The main issue is that if the ordering isn't exactly what the scraper expects then you end up needing to reconfigure things manually anyway. Either you are using TMDb as your scraper, in which case the episodes are already in the expected order; OR you are using TVdb, in which case you can't be certain that some other ordering from TMDb will match.

With TVdb as the scraper, you'd need to check each show individually and then compare all the episode groupings provided by TMDb to find the one matching the ordering that TVdb considers "absolute". Then you'd need to setup bespoke rules on a per show basis. Ultimately, you'd end up spending more time configuring the "automated" rules and double-checking subsequently added episodes than you would have had you simply done it all manually.

Also, what does "absolute" even mean? Is it according to production codes? the script writers? the showrunner? the original tv network? The idea that there is even an "absolute" order is contentious. Considering that when TVdb say "absolute" what they really mean is "the order according to the preference of TVdb moderators", what happens is you end up with a mess of ad-hoc rules attempting to translate how things are ordered on TMDb into what TVdb considers "absolute".

Request 2: (alternate option to 1) Option to only add new episodes rather than missing

TMDbHelper already skips re-adding episodes if the episode had been previously logged as added.

Eventually the cache containing the log will expire and it will re-check the entire show. The current expiry is set for 120 days later however you can manually modify the file to change the expiry.

You can find the cache details in the .kodi/userdata/addon_data/plugin.video.themoviedb.helper/pickle folder. The details for each show is a text file called library_autoupdate_tv_{tmdb_id}. Just open the corresponding file in a text editor and change the expires date field (don't confuse it with the 'next_check' field which is when TMDbHelper will next check for new episodes of that show). Change the expiry year to 3000 and it won't ever recheck previously added episodes unless you force the recheck by running the update manually from the settings or re-add the show via the context menu.

EDIT: I just realised that when it next checks for new episodes the expiry date will be updated, so I will need to add an override option to ignore the expiry date completely -- but still for the time being you will be safe since it won't expire for another four months anyway, by which time the override option will definitely have been added.

Request 3: Support for Extra Folders in TMDBHelper

Whilst I appreciate the desire to have more control over organisation on disk, I think this would over complicate things in terms of code management. It is far easy to manage from my side of things if everything is in the one location on disk. I can just imagine issues happening with split folders and the like.

Also, ultimately there's not really much reason to separate the folders as the only way you can play the files is via the Kodi library anyway - it isn't like a normal Kodi source with videos files that you might want to play outside of Kodi.

Alright thank you for taking the time to explain it to me.

By absolute, i just mean single season from first episode to last. But again as you explained a lot of this stuff to me I understand that it is just a lot of work to have TMDBHelper automate any of this.

So from what I understand, correct me if im wrong. You said TMDBHelper skips adding previously added episodes.

I could download a show ex:One Piece that is currently on like S20E68, (956 total). If i renamed everything to be S01E01-S01E956 (rather than S20E68), when S20E69 comes out it wont add all the episodes before, and all I have to do on my end is just rename S20E69 to S01E957? If this is the case and I hope it is then I guess I dont really need any of the above features I could live with just manually renaming certain episodes.

Or better yet I could make my new folder for Anime only move everything there but leave the original folders in the TMDBLibrary (ex One Piece) so back to my first example when S20E69 comes out all id have to do is just take that episode drag and drop it in my seperate anime folder and rename it. Atleast this way the episodes download automatically and I dont have to go individually adding them through a context menu for every show. Just drag and dropping after it automatically downloads similar to an RSS Feed is good enough!

Although I would like to sometimes just press Update Now from the settings and update only new episodes but I think based on what u said if i use the settings version it will force add all the episodes again? Is there a way to use the settings update when I want to without readding all missing episodes just new ones? Would u consider an extra/seperate update option or is there a way I can work around this? Or is it something you think is unneccesary.

EDIT: Would u consider an extra context option alongside Add show to Library for something like Add Partial show to library where it would bring up like a GUI of some sort and u could just select the specific episodes u want to add? This way without the setting above I could just go to a show and add the episode i want manually, quickly. let me know what u think

unkn0wn234 commented 3 years ago

Also ill just ask here instead of making a useless post unless u think i should, is it possible to add Specials through TMDBHelper to the library?

jurialmunkey commented 3 years ago

By absolute, i just mean single season from first episode to last. But again as you explained a lot of this stuff to me I understand that it is just a lot of work to have TMDBHelper automate any of this.

Keep in mind that Kodi already has a "flatten seasons" option in the settings: https://kodi.wiki/view/Settings/Media/Videos#Flatten_TV_show_seasons

There's also an option for an "All Items" entry which basically appears as its own season but will open as a flattened season of all episodes (useful if sometimes you want to access via seasons and other times view flattened seasons). https://kodi.wiki/view/Settings/Media/Videos#Show_all_items_entry

I know these options aren't quite the same as getting original Japanese TV continuous air order but these are worth exploring before reconfiguring your entire library.

I could download a show ex:One Piece that is currently on like S20E68, (956 total). If i renamed everything to be S01E01-S01E956 (rather than S20E68), when S20E69 comes out it wont add all the episodes before, and all I have to do on my end is just rename S20E69 to S01E957? If this is the case and I hope it is then I guess I dont really need any of the above features I could live with just manually renaming certain episodes.

Yes, that's correct. Any of the episodes that are listed in log file will be considered as added and will be skipped next time around.

Or better yet I could make my new folder for Anime only move everything there but leave the original folders in the TMDBLibrary (ex One Piece) so back to my first example when S20E69 comes out all id have to do is just take that episode drag and drop it in my seperate anime folder and rename it.

Yes, that is also possible. The auto-updater doesn't check physical files (other than the .nfo to know what show it is) - it only checks for existing episodes against the log and library database since those are already loaded into memory (thus faster).

Is there a way to use the settings update when I want to without readding all missing episodes just new ones? Would u consider an extra/seperate update option or is there a way I can work around this?

You can use this command to run it without the force recheck:

RunScript(plugin.video.themoviedb.helper,library_autoupdate,busy_dialog)

You can bind that to a button using a keymap, or if you use a skin with skinshortcuts support you can add it as a custom command to a home screen shortcut etc.

That being said, you shouldn't need to ever run this command because it updates daily -- if you miss the update time, it will run at next startup (well, 15 minutes after start up -- I delay it a bit so that we aren't hammering the CPU immediately).

Would u consider an extra context option alongside Add show to Library for something like Add Partial show to library where it would bring up like a GUI of some sort and u could just select the specific episodes u want to add? This way without the setting above I could just go to a show and add the episode i want manually, quickly. let me know what u think

No point because next time the update runs it will add in all the missing episodes that you didn't add yourself. And if I added something to prevent that then we start creating a complex scenario of needing bespoke update management rules per show.

unkn0wn234 commented 3 years ago

By absolute, i just mean single season from first episode to last. But again as you explained a lot of this stuff to me I understand that it is just a lot of work to have TMDBHelper automate any of this.

Keep in mind that Kodi already has a "flatten seasons" option in the settings: https://kodi.wiki/view/Settings/Media/Videos#Flatten_TV_show_seasons

There's also an option for an "All Items" entry which basically appears as its own season but will open as a flattened season of all episodes (useful if sometimes you want to access via seasons and other times view flattened seasons). https://kodi.wiki/view/Settings/Media/Videos#Show_all_items_entry

I know these options aren't quite the same as getting original Japanese TV continuous air order but these are worth exploring before reconfiguring your entire library.

I could download a show ex:One Piece that is currently on like S20E68, (956 total). If i renamed everything to be S01E01-S01E956 (rather than S20E68), when S20E69 comes out it wont add all the episodes before, and all I have to do on my end is just rename S20E69 to S01E957? If this is the case and I hope it is then I guess I dont really need any of the above features I could live with just manually renaming certain episodes.

Yes, that's correct. Any of the episodes that are listed in log file will be considered as added and will be skipped next time around.

Or better yet I could make my new folder for Anime only move everything there but leave the original folders in the TMDBLibrary (ex One Piece) so back to my first example when S20E69 comes out all id have to do is just take that episode drag and drop it in my seperate anime folder and rename it.

Yes, that is also possible. The auto-updater doesn't check physical files (other than the .nfo to know what show it is) - it only checks for existing episodes against the log and library database since those are already loaded into memory (thus faster).

Is there a way to use the settings update when I want to without readding all missing episodes just new ones? Would u consider an extra/seperate update option or is there a way I can work around this?

You can use this command to run it without the force recheck:

RunScript(plugin.video.themoviedb.helper,library_autoupdate,busy_dialog)

You can bind that to a button using a keymap, or if you use a skin with skinshortcuts support you can add it as a custom command to a home screen shortcut etc.

That being said, you shouldn't need to ever run this command because it updates daily -- if you miss the update time, it will run at next startup (well, 15 minutes after start up -- I delay it a bit so that we aren't hammering the CPU immediately).

Would u consider an extra context option alongside Add show to Library for something like Add Partial show to library where it would bring up like a GUI of some sort and u could just select the specific episodes u want to add? This way without the setting above I could just go to a show and add the episode i want manually, quickly. let me know what u think

No point because next time the update runs it will add in all the missing episodes that you didn't add yourself. And if I added something to prevent that then we start creating a complex scenario of needing bespoke update management rules per show.

Alright that all sounds good, ill probably use that command to a keybind, thanks as always for the work you put in this addon, and the time you take to patiently explain things to me. Much appreciated.

unkn0wn234 commented 3 years ago

Before you or I close this would you mind answering my question about if its possible to, or would u make it so we can add Specials to the library through TMDBHelper? I asked here cause I dont want to make redundant posts or bog down your issues on github Ik you probably get a lot, i did make a search through the closed issues but I dont think I saw anything related to it.

jurialmunkey commented 3 years ago

Before you or I close this would you mind answering my question about if its possible to, or would u make it so we can add Specials to the library through TMDBHelper? I asked here cause I dont want to make redundant posts or bog down your issues on github Ik you probably get a lot, i did make a search through the closed issues but I dont think I saw anything related to it.

Ah sorry, I meant to answer that and then forgot to add it to the end of my comment.

Short answer is no.

Long answer is:

I just skip the specials when adding to library because I've found the experience with them is pretty inconsistent. The numbering almost never syncs up between services because there is rarely an official source. Which makes it fairly hit and miss when it comes to playing them. I've found it isn't worth the trouble if you don't have a physical file to link to them.

There is rarely any order or rules to what is considered a special - they just get dumped on there in order of whoever bothered to add some. Just have a look at Breaking Bad special season for an example: https://www.themoviedb.org/tv/1396-breaking-bad/season/0

Specials 1-5 are "minisode" web episodes from when Season 1 aired, Specials 6-11 are from Season 5 blu-ray, Specials 12-40 are unnamed specials with no metadata, then Special 41 is the El Camino movie on Netflix.

If you compare these to TVdb, there is barely any sync between the two sources https://thetvdb.com/series/breaking-bad/seasons/official/0

On TVdb, the only thing that matches up in that Special 1-5 are also the minisodes. Beyond that, nothing matches. Specials 6-17 are completely different (they aren't even the same specials that are on TMDb in different order, they are completely different specials that TMDb doesn't have - both sites have specials that the other doesn't have), Special 18 is a "making of" documentary, and Special 19 is El Camino.

I include the specials inside TMdbHelper because it doesn't really hurt to have them (plus theres an option to disable in the settings) - but for the library you just end up with all this random stuff that clutters up the library and probably for the most part isn't going to play anyway, so I don't think there is much point to adding them (and definitely not all of them considering how many are practically empty place holders!)

unkn0wn234 commented 3 years ago

I see thanks for explaining ! Happy New years!