YAMJ / yamj-v2

Yet Another Movie Jukebox (YAMJ) v2
GNU General Public License v3.0
28 stars 11 forks source link

Director and cast sometimes not populating from IMDB #2798

Closed AuggieIHD closed 6 years ago

AuggieIHD commented 7 years ago

It appears that the Director and Cast information does not populate from IMDB under certain scenarios.

I believe it involves existing videos in database that may have changed or may belong to a collection:

1) I changed a video that was formatted as a TV series into a Movie: e.g. DreamWorks Spooky Stories 2009 TV series to 2012 Movie 2) Part of collection, but only one or a small subset of a collection, such as The Hunger Games Mockingjay Part 1

No matter how many times I delete the jukebox files and rerun YAMJ, these problematic scenarios continue and I have to resort to manually typing this information.

AuggieIHD commented 7 years ago

Some further observations: some situations where no amount of re-running YAMJ (after deleting the appropriate jukebox files) would resolve the director/writer/cast issues that also prevented the poster and fan art from being populated, if I manually enter the director, writer, and cast, this also resolves the poster and fan art issue.

An example I have is a set consisting of all the Ice Age releases, including the Christmas TV special: Ice Age, Ice Age The Meltdown, Ice Age Dawn of the Dinosaurs, Ice Age A Mammoth Christmas, Ice Age Collision Course, and Ice Age Continental Drift.

Most of the videos would suffered from the director/writer/cast issue, and rerunning YAMJ would then result in the poster and fan art issue, with this error regarding the poster:

Processing library #1558/3910Error processing the dummy poster file: /Applications/YAMJ/Moviejukebox/temp/Jukebox/Ice Age The Meltdown (2006).jpg java.io.FileNotFoundException: Image file '/Applications/YAMJ/Moviejukebox/temp/Jukebox/Ice Age The Meltdown (2006).jpg' does not exist at com.moviejukebox.tools.GraphicTools.loadJPEGImage(GraphicTools.java:73) at com.moviejukebox.MovieJukebox.createPoster(MovieJukebox.java:2401) at com.moviejukebox.MovieJukebox$7.call(MovieJukebox.java:1535) at com.moviejukebox.MovieJukebox$7.call(MovieJukebox.java:1525) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) at com.moviejukebox.tools.ThreadExecutor$ScheduledThread.run(ThreadExecutor.java:129)

Simply providing the directors, writers, and cast via an NFO file would also magically resolve this poster error.

Omertron commented 7 years ago

This can sometimes happen where there are a lot of small files being written by YAMJ, often the case when a jukebox is refreshed.

How big is the jukebox? Quantity of files?

AuggieIHD commented 7 years ago

My main jukebox has over 3,000 videos and resides on a NAS, but my “pre-screening” library has only 164 videos and resides on shared folder on my computer. This bug affects both.

Just today I added a new video to my “pre-screening” library (computer) that was grouped in a set (this bug primary affects videos in sets, though it does happen to individual videos now and then):

I first ran YAMJ without putting the above video in a set and all information from IMDB was downloaded, but when I grouped it via an NFO file and re-ran YAMJ, I got the frustrating (mostly) empty IMDB data set (it’s usually just the director and cast that is missing); no errors were listed. I deleted its jukebox files and re-ran YAMJ again and this time it got all the IMDB data.

On Nov 9, 2017, at 7:56 AM, Stuart Boston notifications@github.com wrote:

This can sometimes happen where there are a lot of small files being written by YAMJ, often the case when a jukebox is refreshed.

How big is the jukebox? Quantity of files?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/YAMJ/yamj-v2/issues/2798#issuecomment-343199246, or mute the thread https://github.com/notifications/unsubscribe-auth/ASmmn84dQUEK-DMjpg8F67Q4dhsrnXOmks5s0yC5gaJpZM4QC_uz.

AuggieIHD commented 6 years ago

I think the primary source of this bug starts with this error (which eventually results in all the missing IMDB info and posters/fanart):

java.util.concurrent.ExecutionException: java.lang.NullPointerException

The full text of the errors is thusly:

java.util.concurrent.ExecutionException: java.lang.NullPointerException at java.util.concurrent.FutureTask.report(FutureTask.java:122) at java.util.concurrent.FutureTask.get(FutureTask.java:192) at com.moviejukebox.tools.ThreadExecutor.waitForValues(ThreadExecutor.java:276) at com.moviejukebox.tools.ThreadExecutor.waitFor(ThreadExecutor.java:292) at com.moviejukebox.MovieJukebox.generateLibrary(MovieJukebox.java:1067) at com.moviejukebox.MovieJukebox.main(MovieJukebox.java:499) Caused by: java.lang.NullPointerException at com.moviejukebox.tools.DateTimeTools.convertDateToString(DateTimeTools.java:105) at com.moviejukebox.tools.DateTimeTools.parseDateToString(DateTimeTools.java:199) at com.moviejukebox.model.Movie.setReleaseDate(Movie.java:1652) at com.moviejukebox.plugin.ImdbPlugin.updateInfoCommon(ImdbPlugin.java:700) at com.moviejukebox.plugin.ImdbPlugin.updateImdbMediaInfo(ImdbPlugin.java:311) at com.moviejukebox.plugin.ImdbPlugin.scan(ImdbPlugin.java:196) at com.moviejukebox.plugin.DatabasePluginController.scan(DatabasePluginController.java:118) at com.moviejukebox.MovieJukebox.updateMovieData(MovieJukebox.java:1996) at com.moviejukebox.MovieJukebox$3.call(MovieJukebox.java:964) at com.moviejukebox.MovieJukebox$3.call(MovieJukebox.java:945) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) at com.moviejukebox.tools.ThreadExecutor$ScheduledThread.run(ThreadExecutor.java:129)

There are numerous instances of people inquiring about this NullPointerException error in other Java applications, the gist of most of them involves the scope of a variable (declaration) or instances.

Essentially, it's a bug within YAMJ itself, which is manifested under certain conditions (i.e. certain movie titles). For example, "American Made (2017)" is one such movie in the IMDB database that constantly gets this error. If I name something known to "work", such as "2001 A Space Odyssey (1968)" there is no error, but if I change the name or add an NFO to that movie that uses an IMDB ID tag for American Made (i.e. tt3532216), bam, the bug hits. This has been reproducible in all these certain videos that constantly throw up this error, so I can provide a list of those videos if need be. So there's something different about these videos in the IMDB database that YAMJ gags on.

Pipoguest commented 6 years ago

Hi AuggieIHD,

I hit on your comment because i had also the strange behaviour with the film "American Made (2017)" I found a work around for this film and others with same behaviour.

I have a directory "WORK" and in this dirctory a new directory for "American Made (2017)" and an other directory for a random film which works with YAMJ correct. First a run YAMJ only on the working movie directory. Check if outcome is oke. Than whitout closing YAMJ i change the settings for YAMJ to run the WORK directory with the 2 sub directory's ("American Made (2017)" and the random working movie directory) and voilá both have now correct information with pictures.

Why... don't ask me but it works.

Ps i have also same strange behaviour on films with ondly VIDEO.TS and AUDIO.TS But the work around also works for them.

bye Pipo

AuggieIHD commented 6 years ago

Wow.... IT WORKS!

I tried on my pre-screening library of new videos before I add them to my permanent (and LARGE) library and so far so good.

I just don't know how viable this workaround is for my permanent library because it has approximately 3,000 titles and takes on average 30, 45, some times 60 minutes to run depending upon how many new titles were added since the last run.

Pipoguest commented 6 years ago

I'm happy i could help you

Merry Christmas