Git Product home page Git Product logo

updatetool's Introduction

Rating update tool for IMDB ratings in Plex libraries

A tool to update the IMDB ratings for Plex libraries that contain movies via the IMDB, TMDB and TVDB agents.

GitHub GitHub issues GitHub release (latest by date) GitHub top language Docker Image Size (tag) Docker Pulls PayPal donate button

Important

If you get rating updates on your episodes but not on your TV Shows, you'll have to get access to a TVDB API key. This is because the tool finds IMDB IDs that are associated with the episodes in the database, but for the TV Shows it only finds TVDB IDs that have to be resolved into IMDB IDs by calling their API. Unless you have a key, this is not possible and means that no updates are processed for these items. You can get a key for free by using their points system.

This tool works with the new Plex TV Show agent. The fallback support however is limited and only supports TVDB v4 and not TMDB v3 right now. This feature is a opt-in so please read more here! Else the libraries using the new Plex TV Show agent will not be processed by the tool!


Make sure to set USE_PLEX_SQLITE_BINARY_FOR_WRITE_ACCESS to true in your docker configuration (or if using the GUI, set the path to the Plex SQLite binary) and use at least v1.6.0! Plex non-standard SQLite3 version diverged so strongly from vanilla SQLite3 that not using this feature can cause database corruptions in rare cases. Read more in the environment variable guide! => This is now enforced via the docker instead of being an opt-in in order to protect users from accidental database corruptions. You can still opt-out by setting it to false.

To run this without docker on Linux in a headless mode check out this issue!

While the DB issues are fixed now and using this tool is likely safe to use and never caused issues for myself and a large part of the user base it shall still be noted that this tool should be used with caution and that I'm not responsible for any damages within your PMS database. The database interaction of this tool is minimal and within the milliseconds realm and the queries are executed cleanly by using SQLite's transactions.

This tool could in theory break if either the Plex database schema changes or IMDB stops providing a public rating dataset! This would not be dangerous tho as it stops when something goes wrong.

If you want to run this on Windows without docker look here! There is also a GUI for the tool that is discussed here.

TV Show updates are done by aired season / aired episode. If you use DVD order for some reason please create an issue and I will implement a flag for you to switch the tool between. Plex uses aired season / aired episode by default tho!

What does this do?

The Plex IMDB agent is kind of meh... Sometimes it is not able to retrieve the ratings for newly released movies even tho it matches the IMDB ID with them. It is impossible to comfortable add the rating manually from the users perspective.

This tool allows you to update the database that stores this data with the correct IMDB ratings. It will correct outdated and missing ratings and also set a flag to display the IMDB badge next to the ratings. The source used to retrieve the ratings is the official IMDB dataset that is updated daily and free for non-commercial use. Its download and refreshment will be handled automatically by this tool.

An advantage is that it works outside Plex by manipulating the local Plex database. Thus, no metadata refresh operations have to be done within Plex. It is faster and will not lead into the unforeseen consequences that one sometimes experiences with a Plex metadata refresh (missing or changed posters if not using a custom poster).

Before (Not IMDB matched) After Match

Above are two different movies, that why the genres changed

This tool processes the following libraries:

Type Description Agent
MOVIE Plex Movie Agent with IMDB com.plexapp.agents.imdb
MOVIE TMDB Movie Agent (if TMDB API key set) com.plexapp.agents.themoviedb
MOVIE New Plex Movie Agent (if IMDB as ratings source set) tv.plex.agents.movie
TV SHOW New Plex TV Show Agent (currently only for items that have the IMDB ID embedded in the Plex database and have been opted-in via a special environment variable) tv.plex.agents.series
TV SHOW TMDB Series Agent (if TMDB API key set) com.plexapp.agents.themoviedb
TV SHOW TVDB Series Agent (if TVDB auth string set) com.plexapp.agents.thetvdb

In my library with 1800 movies it transformed entries for 698 items and 1000+ entries for series. If it is left running, every few days when a new IMDB data set is pulled a few ratings will update as well.

Docker

Docker is on dockerhub | UnRaid instructions

Environment Variables Guide

Name Description
RESTART_ON_CRASH Automatically restarts the tool within the docker in case a crash is encountered. This must be set to true to have any effect. Once a crash is encountered, the docker container will not stop anymore but instead wait 10 seconds before trying to launch the tool again.
USE_PLEX_SQLITE_BINARY_FOR_WRITE_ACCESS Allows to use the non-standard Plex SQLite3 version that diverged so strongly from the vanilla flavour that write operations with vanilla SQLite3 can cause database corruptions! Set this to true in the docker when using a version >= 1.6.0! This is the only way to be safe from corruptions as Plex continues to diverge from compatibility with vanilla SQLite3! If you're not using a docker version make sure that this points to the Plex Media Server/Plex SQLite binary that is located in the main Plex folder next to the Plex Media Server executable.
OVERRIDE_DATABASE_LOCATION Overrides the path where UpdateTool looks for the Plex database. The database needs to be contained in this folder. Useful if a docker container uses a volume and a different path structure. (more here)
TMDB_API_KEY Enables TMDB Movie/Series library processing
TVDB_API_KEY Enables TVDB Series library processing using either the v3 legacy key or the v4 pin
UNLOCK_FOR_NEW_TV_AGENT Opt-in for libraries using the new TV Show agent. All libraries that are opted-in this way will have their ratings changed to IMDB ratings by this tool (more here)
IGNORE_LIBS Ignore libraries with certain IDs (more here)
CAPABILITIES Custom flags for the tool (more here)
JVM_MAX_HEAP Only relevant for the docker. Specify max. heap allocatable by the JVM (default 256m). Can be useful if you have a really large library (40000+ items) and you run in memory related crashes. Must be specified in bytes (i.e. 256m, 1g, 2g, 512m)

Deprecated variables can still be used although their usage is discouraged.

Deprecated Environment Variables

Name Description Deprecation
TVDB_AUTH_STRING Enables TVDB Series library processing API Key is enough for this tool to work

Docker on UnRaid

There is a template repository available now: https://github.com/mynttt/unraid-templates

You can add that repository under Template repositories: in the UnRaid Docker section, hit save and thus will be able to add UpdateTool via the Add Container button.

A configuration skeleton will be added and you will have to set up the Plex Media Server directory and optionally your TVDB / TMDB API Keys in case you want to use TMBD / TVDB resolvement.

After completing the configuration steps, you can start the container. If it has errors, it will stop. The log in the config folder shows you what it does or why it crashed if that happens.

TMDB and TVDB are optional settings that are not required for base movie imdb operations! TMDB unlocks matching for movies that have a TMBD match for whatever reason, TMDB matched series libraries and TVDB allows to update series as well!

To run your docker without UnRaid templates:

docker pull mynttt/updatetool

# Without TMDB fallback

docker run -dit -e RUN_EVERY_N_HOURS=12 \
    -v "/mnt/data/Plex Media Server":/plexdata \
    -v "/mnt/data/imdpupdaterconfig":/config \
    mynttt/updatetool

# With TMDB fallback

docker run -dit -e RUN_EVERY_N_HOURS=12 \
    -e TMDB_API_KEY=yourkey \
    -v "/mnt/data/Plex Media Server":/plexdata \
    -v "/mnt/data/imdpupdaterconfig":/config \
    mynttt/updatetool
    
# With TMDB fallback and TVDB resolvement for series

docker run -dit -e RUN_EVERY_N_HOURS=12 \
    -e TMDB_API_KEY=yourkey \
    -e TVDB_API_KEY=tvdbapikey \
    -v "/mnt/data/Plex Media Server":/plexdata \
    -v "/mnt/data/imdpupdaterconfig":/config \
    mynttt/updatetool

Explained:

docker run -dit 
     # Invoke every 12h
    -e RUN_EVERY_N_HOURS=12 \
     # Optional parameter: will try to get an IMDB ID from TMDB matched items
    -e TMDB_API_KEY=yourkey \
    -e TVDB_API_KEY=tvdbapikey \
     # The plex data root (that contains Plug-ins, Metadata, ...
     # https://support.plex.tv/articles/202915258-where-is-the-plex-media-server-data-directory-located/
    -v "/mnt/data/Plex Media Server":/plexdata \
     # A path where you want to store the log and state files
    -v "/mnt/data/imdpupdaterconfig":/config \
    mynttt/updatetool

Where is the data folder of the Plex Media Server located on my system?

TVDB API Key

"/mnt/data/Plex Media Server" and "/mnt/data/imdpupdaterconfig" are just sample paths! Set your own paths there or it will probably not work!

On windows the \ syntax to make the command multiline will not work. You have to remove those and make the command a single line command!

Other configuration values

Opt-in for libraries using the new TV Show agent

Because the new agent only allows to choose between TVDB/TMDB ratings via the Plex UI libraries that shall be touched by UpdateTool have to be explicitly opted-in. This is a safety feature to not accidentally wreck libraries of users who wish to not have UpdateTool change their new TV Show agent libraries to IMDB ratings. Until you can set IMDB via the UI this will be the to-go way of having UpdateTool process these libraries.

UNLOCK_FOR_NEW_TV_AGENT takes a list of library ids as a semicolon seperated string. You can find the id of a plex library by starting the tool and looking at the beginning of the log. It reports the name, type and ID of all detected libraries.

[INFO ] - 2022-01-18 15:21:47 @ ImdbDockerImplementation$ImdbBatchJob.lambda$run$0: Found library [MOVIE] Movies (ID=1) with agent: com.plexapp.agents.imdb and 1831 item(s).
[INFO ] - 2022-01-18 15:21:47 @ ImdbDockerImplementation$ImdbBatchJob.lambda$run$0: Found library [SERIES] TV Shows (ID=7) with agent: com.plexapp.agents.thetvdb and 2382 item(s).

Examples:

Opting-in only the new TV Show agent library with ID 1:

UNLOCK_FOR_NEW_TV_AGENT="1"

Opting-in the new TV Show agent libraries with the IDs 1, 5, 8:

UNLOCK_FOR_NEW_TV_AGENT="1;5;8"

Ignore libraries from being updated

You can ignore libraries by setting the environment variable IGNORE_LIBS.

IGNORE_LIBS takes a list of library ids as a semicolon seperated string. You can find the id of a plex library by opening it in plex and then looking at the URL in the browser.

The way of finding the matching IDs is by looking at the log when the tool starts - it will report the name, type and ID of the detected libraries:

[INFO ] - 2022-01-18 15:21:47 @ ImdbDockerImplementation$ImdbBatchJob.lambda$run$0: Found library [MOVIE] Movies (ID=1) with agent: com.plexapp.agents.imdb and 1831 item(s).
[INFO ] - 2022-01-18 15:21:47 @ ImdbDockerImplementation$ImdbBatchJob.lambda$run$0: Found library [SERIES] TV Shows (ID=7) with agent: com.plexapp.agents.thetvdb and 2382 item(s).

Examples:

Ignoring only the library with ID 1:

IGNORE_LIBS="1"

Ignoring the libraries with the IDs 1, 5, 8:

IGNORE_LIBS="1;5;8"

Supply custom capability flags

You can apply custom flags to the tool via the CAPABILITIES environment variable.

Currently the following flags exist:

Flag Description
NO_TV Ignore all TV Show libraries
NO_MOVIE Ignore all Movie libraries
DONT_THROW_ON_ENCODING_ERROR Supress forced quits if decoding errors of extra data are encountered due to corrupt items in the library
IGNORE_NO_MATCHING_RESOLVER_LOG Supresses printing items that have no matching resolver to the log
IGNORE_SCRAPER_NO_RESULT_LOG Supresses printing web scraper no-match results that either have no rating on the IMDB website or are not allowed to be rated by anyone on the IMDB website and thus will never have ratings
DISABLE_SCREEN_SCRAPE Disables the screen scraping unit (extracts IMDB ratings from the website if not in dataset) in case that there are issues with the IMDB web page such as 503 errors and timeouts that cause unsuccessful results and slow down the metadata lookup process immensely.
PRINT_SQLITE_BINARY_EXECUTE_STATEMENTS Prints out the SQLite binary execute statements for diagnostic purposes
ON_DEMAND Quit after running once, ignoring the (n) hour scheduling
DONT_STRIP_OTHER_RATING_PROVIDERS Skips the step where rating labels provided by other providers such as TMDB/Rotten Tomatoes are removed

Multiple flags can be supplied as a semicolon separated string.

Examples:

Don't process TV libraries

CAPABILITIES="NO_TV"

Render the tool useless by skipping TV and Movie libraries

CAPABILITIES="NO_TV;NO_MOVIE"

Override the database location

In some cases it might be required to override the location of the database file as the local folder structure is different from the standardized Plex Media Folder/Plug-in Support/Databases/*.db pattern.

The Plex database file (com.plexapp.plugins.library.db) has to be in the supplied folder in order for UpdateTool to recognize it.

OVERRIDE_DATABASE_LOCATION="/opt/myspecialpath/theplexdb"

Technical details

Technical Runtime requirements

  • Java >= 11

This tool supplies one mode at the moment:

imdb-docker

Provides a watchdog for scheduled IMDB update operations that once started will run every N hours over all IMDB supported libraries. The tool is supplied with its parameters via environment variables.

It can then be invoked with:

  • no args (every 12h)
  • the schedule arg (every n hour(s))
java -jar UpdateTool-xxx.jar imdb-docker {}
java -jar UpdateTool-xxx.jar imdb-docker {schedule=12}

Example:

# Export variables if on Linux/Mac
PLEX_DATA_DIR="/mnt/user/Plex Media Server"
export PLEX_DATA_DIR

# Export variables if on Windows
set PLEX_DATA_DIR=C:\User\Data\Plex Media Server

# Default start
java -jar UpdateTool-xxx.jar imdb-docker {}
# Run every 5 hours
java -jar UpdateTool-xxx.jar imdb-docker {schedule=5}

GUI

There is also a GUI to assist users that feel uncomfortable with the CLI way of interacting with the tool. It supports Windows, MacOS and Linux and only requires the Java 11+ runtime and can be downloaded here.

To use the GUI just double click on the jar file. The GUI will automatically download and update the used version of UpdateTool. You are only required to set the path to the Plex Media Server data folder and submit a path to your java executable. If you want to enable TMDB/TVDB resolvement simply tick the boxes and supply the API keys via the text fields. To start and stop the tool use the respective buttons.

updatetool's People

Contributors

kurtzpt avatar mynttt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

updatetool's Issues

SQLiteException

Hi,

I´m trying to run it but I keep getting the error below.
I´m using win 10 pro with docker desktop.
Can you help me ?
Thank you

[ERROR] - 2020-01-10 22:26:50 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2020-01-10 22:26:50 @ ImdbDockerImplementation$ImdbBatchJob.run: org.sqlite.SQLiteException: [SQLITE_IOERR_SHMOPEN] I/O error within xShmMap while trying to open a new shared memory segment (disk I/O error)
at org.sqlite.core.DB.newSQLException(DB.java:941)
at org.sqlite.core.DB.newSQLException(DB.java:953)
at org.sqlite.core.DB.throwex(DB.java:918)
at org.sqlite.core.NativeDB.prepare_utf8(Native Method)
at org.sqlite.core.NativeDB.prepare(NativeDB.java:134)
at org.sqlite.core.DB.prepare(DB.java:257)
at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:73)
at updatetool.common.SqliteDatabaseProvider.queryFor(SqliteDatabaseProvider.java:24)
at updatetool.common.DatabaseSupport.requestLibraries(DatabaseSupport.java:39)
at updatetool.imdb.ImdbDockerImplementation$ImdbBatchJob.run(ImdbDockerImplementation.java:142)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
[ERROR] - 2020-01-10 22:26:50 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================

Full log
log.txt

More a question on xml entries in log vs issue

So see these for both movies and shows
[WARN ] - 2020-09-09 21:24:59 @ ImdbPipeline.updateXML: 16 XML file(s) have failed to be updated due to them not being present on the file system.
[WARN ] - 2020-09-09 21:24:59 @ ImdbPipeline.updateXML: This is not an issue as they're not important for Plex as it reads the ratings from the database.

Is there a way to clean these up, or add the missing XMLs? Clearly most everything has them since the numbers are minor, 16 out of 2500 some movies.. And 154 for tv shows, while there are 13K some episodes and 337 actual shows, etc.

Is there something to I can do to remove said warnings? Related to that, if not really an issue - why log it at all?

no valid rating when rating available

Message

[WARN ] - 2021-03-12 18:37:35 @ ImdbTransformer.needsUpdate: Ignoring: 'Queen: Live at the Rainbow' with IMDB ID: tt4135970 supplies no valid rating := 'null'

Yet IMDB shows rating of 8.4 with 203 votes.

Not processing TV shows?

Thx for this - it's awesome!

For me, with a TMDB key (but no TVDB key), it works for movies but not for TV.
Are there any settings I need to check w/ Plex agents?
Thx in advance!

My logs:
imdb-update | **** Invoking tool! Logs in /config ****
imdb-update | [INFO ] - 2020-12-17 16:32:57 @ Main.loadImplementation: Loaded implementation << imdb-docker << updatetool.imdb.ImdbDockerImplementation
imdb-update | [INFO ] - 2020-12-17 16:32:57 @ Main.main: Running version: 1.4.5
imdb-update | [INFO ] - 2020-12-17 16:32:57 @ Main.main: Args: {imdb-docker={schedule=12}}
imdb-update | [INFO ] - 2020-12-17 16:32:57 @ Main.main: << INIT: imdb-docker @ {schedule=12} >>
imdb-update | [INFO ] - 2020-12-17 16:32:57 @ Main.testApiTmdb: Testing TMDB API key: xxxxxxxxxxxxxxxxxxxxx
imdb-update | [INFO ] - 2020-12-17 16:32:58 @ Main.genericApiTest: Test passed. API Key is valid.
imdb-update | [INFO ] - 2020-12-17 16:32:58 @ ImdbDockerImplementation.bootstrap: TMDB API key enabled TMDB <=> IMDB matching. Will process TMDB backed Movie and TV Series libraries and TMDB orphans.
imdb-update | [INFO ] - 2020-12-17 16:32:58 @ ImdbDockerImplementation.bootstrap: No TVDB API authorization string detected. Will process TVDB backed TV Series libraries.
imdb-update | [INFO ] - 2020-12-17 16:32:58 @ ImdbDockerImplementation.bootstrap: Starting IMDB Watchdog
imdb-update | [INFO ] - 2020-12-17 16:32:58 @ ImdbDockerImplementation.bootstrap: Plex data dir: /plexdata
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ ImdbDockerImplementation.bootstrap: Capabilities: [TMDB, VERBOSE_XML_ERROR_LOG]
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ Main.main: << INIT SUCCESS >>
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ Scheduler.go: Scheduler is loading tasks... Blocking until completely set-up and ready to go.
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ Scheduler.go: Scheduling tasks...
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ Scheduler.lambda$go$0: Scheduled imdb-docker task to run @ every 12 hour(s).
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ Scheduler.lambda$go$1: Queued task imdb-docker for immediate execution.
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ Scheduler.go: Running supplied tasks immediately NOW!
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ TaskWrapper.run: ================================================
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ TaskWrapper.run: Starting task: imdb-docker | Execution count: 0
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ TaskWrapper.run: ================================================
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ ImdbDatabaseSupport.updateNewAgentMetadataMapping: Associated and cached tmdb://567604 with new movie agent guid plex://movie/5d7770a996b655001fe9bc1d (Once Upon a Deadpool).
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ ImdbDockerImplementation$ImdbBatchJob.run: Library IDs on ignore list: []
imdb-update | [INFO ] - 2020-12-17 16:32:59 @ ImdbRatingDatasetFactory.readData: Reading data...
imdb-update | [INFO ] - 2020-12-17 16:33:04 @ ImdbRatingDatasetFactory.readData: 1103064 lines read.
imdb-update | [INFO ] - 2020-12-17 16:33:04 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Movies has 1438 item(s)
imdb-update | [INFO ] - 2020-12-17 16:33:04 @ ImdbDockerImplementation$ImdbBatchJob.run: Processing [MOVIE] Movies with UUID ac7f1eb0-517e-4971-bc32-60d0180f526d at stage: CREATED
imdb-update | [INFO ] - 2020-12-17 16:33:04 @ ImdbPipeline.analyseDatabase: Resolving IMDB identifiers for items. Only warnings and errors will show up...
imdb-update | [INFO ] - 2020-12-17 16:33:04 @ ImdbPipeline.analyseDatabase: Items that show up here will not be processed by further stages of the pipeline.
imdb-update | [WARN ] - 2020-12-17 16:33:04 @ DefaultResolvement.resolve: Item: 'Classic Albums Pink Floyd the Dark Side of the Moon' has no matching IMDB resolver and will be ignored. (guid=local://1058)
imdb-update | [WARN ] - 2020-12-17 16:33:05 @ TmdbMovieToImdbResolvement.lambda$new$1: TMDB Movie item Once Upon a Deadpool with id 567604 does not have an IMDB id associated.
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbPipeline.analyseDatabase: Filtered 2 invalid item(s).
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbPipeline.transformMetadata: 1389 item(s) need no update.
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbPipeline.transformMetadata: Transforming 0 item(s)
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbPipeline.transformMetadata: Transformed entries for 0 items(s).
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbPipeline.updateDatabase: Nothing to update. Skipping...
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbPipeline.updateXML: Updating XML fallback files for 0 item(s).
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbPipeline.updateXML: Completed updating of XML fallback files.
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned PASS : Job finished correctly
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbDockerImplementation$ImdbBatchJob.run: Job finished successfully for [MOVIE] Movies with UUID ac7f1eb0-517e-4971-bc32-60d0180f526d
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ ImdbDockerImplementation$ImdbBatchJob.run: Completed batch successfully.
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ TaskWrapper.run: ================================================
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ TaskWrapper.run: Suggesting JVM to run the GC as soon as possible (Request might be ignored!)
imdb-update | [INFO ] - 2020-12-17 16:33:05 @ TaskWrapper.run: Completed imdb-docker in 6.55288s. - Invoking next task or going to sleep. It is safe to suspend execution if no other task is being invoked immediately.

request to contact developer

As to your own request I guess :-)

[WARN ] - 2021-02-02 04:13:45 @ NewPlexMovieAgentToImdbResolvement.resolve: Unhandled external id (tvdb://132869). Please contact the author of the tool.

[WARN ] - 2021-02-02 04:13:45 @ NewPlexMovieAgentToImdbResolvement.resolve: Unhandled external id (tvdb://93322). Please contact the author of the tool.

(Request) Age rating

Please can you update the tool to include age ratings from the tmdb api for movies with no age rating as this is another problem with plex's data.

504 error from TVDB causes container to shutdown?

It looks like I lost the log unfortunately, but the container has been shutting down about every other day due to a 504 from the TVDB? I'll follow up with the logs next time it happens.

Given how spotty the TVDB is, this might not be the best default behavior?

TVDB Can't find any associated IMDB ID

I'm watching the scan on Windows, and it's trying to search for an IMDB ID for every episode rather than the series, is that expected?

[WARN ] - 2020-02-21 16:43:44 @ TvdbToImdbResolvement.resolveEpisode: TVDB item FBI with id 278596/2/1 does not have an IMDB id associated.

Option for verbose output in log

I am still getting the 200 errors with accessing OMDB. I am wondering if the UpdateTool is just getting stuck on a single item in my library and failing to return data from OMDB for that single item. Can you enable a flag that will output the item being processed by the OMDB API so I can see if there is some problem with it's metadata or entry in the Plex database? thanks.

NullPointerException exception encountered

[INFO ] - 2019-12-29 15:01:52 @ Main.testApiImdb: Test passed. API Key is valid.
[INFO ] - 2019-12-29 15:01:52 @ ImdbDockerImplementation.invoke: Starting IMDB Watchdog
[INFO ] - 2019-12-29 15:01:52 @ ImdbDockerImplementation.invoke: Plex data dir: /plexdata
[INFO ] - 2019-12-29 15:01:52 @ ImdbDockerImplementation.invoke: Invoke every 12 hour(s)
[INFO ] - 2019-12-29 15:01:52 @ ImdbDockerImplementation.invoke: Purge cache every 14 day(s)
[INFO ] - 2019-12-29 15:01:52 @ ImdbDockerImplementation.invoke: Running first task...
[INFO ] - 2019-12-29 15:01:52 @ ImdbDockerImplementation.invoke: Scheduling next tasks to run @ every 12 hour(s)
[INFO ] - 2019-12-29 15:01:53 @ ImdbDockerImplementation$ImdbBatchJob.run: Library: Movies has 2493 item(s)
[INFO ] - 2019-12-29 15:01:53 @ ImdbDockerImplementation$ImdbBatchJob.run: Processing library: Movies with UUID 545ce49a-3e1d
-4504-b870-8ae9a98edf85 at stage: CREATED
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Detected items with invalid guid. These items will be ignored a
s they do not provide IMDB IDs.
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: The Expedition to the End of the World has non matching i
mdb guid: com.plexapp.agents.themoviedb://168164?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Alienated has non matching imdb guid: com.plexapp.agents.
themoviedb://353314?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Den of Darkness has non matching imdb guid: com.plexapp.a
gents.themoviedb://398470?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Evidence of Truth has non matching imdb guid: com.plexapp
.agents.themoviedb://400252?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Adventures in Babysitting has non matching imdb guid: com
.plexapp.agents.themoviedb://360606?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Ghostumentary has non matching imdb guid: com.plexapp.age
nts.themoviedb://415087?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Chevalier has non matching imdb guid: com.plexapp.agents.
themoviedb://314220?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Medicine of the Wolf has non matching imdb guid: com.plex
app.agents.themoviedb://397334?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Miles To Go Before I Sleep has non matching imdb guid: co
m.plexapp.agents.themoviedb://409341?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Maigret in Montmartre has non matching imdb guid: com.ple
xapp.agents.themoviedb://548462?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Backstabbing for Beginners has non matching imdb guid: co
m.plexapp.agents.themoviedb://476678?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: An Actor Prepares has non matching imdb guid: com.plexapp
.agents.themoviedb://434596?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: To Catch a Serial Killer has non matching imdb guid: com.
plexapp.agents.themoviedb://551936?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: My Dad Wrote a Porno has non matching imdb guid: com.plex
app.agents.themoviedb://545021?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Stockholm has non matching imdb guid: com.plexapp.agents.
themoviedb://437626?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Above the Shadows has non matching imdb guid: com.plexapp
.agents.themoviedb://609734?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Above the Best has non matching imdb guid: com.plexapp.ag
ents.themoviedb://605364?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: The Only Living Boy in New York has non matching imdb gui
d: com.plexapp.agents.themoviedb://95608?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: LEGO DC: Batman - Family Matters has non matching imdb gu
id: com.plexapp.agents.themoviedb://602307?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: I, Dolours has non matching imdb guid: com.plexapp.agents
.themoviedb://521703?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Big Family: The Story of Bluegrass Music has non matching
imdb guid: com.plexapp.agents.themoviedb://626304?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Death of Dick Long, The has non matching imdb guid: local
://236559
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: American Confederate has non matching imdb guid: com.plex
app.agents.themoviedb://631691?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: Daniel Isn't Real has non matching imdb guid: com.plexapp
.agents.themoviedb://537788?lang=en
[WARN ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Item: The Aeronauts has non matching imdb guid: com.plexapp.age
nts.themoviedb://514921?lang=en
[INFO ] - 2019-12-29 15:01:53 @ ImdbPipeline.analyseDatabase: Filtered 25 invalid item(s).
[INFO ] - 2019-12-29 15:01:53 @ ImdbPipeline.accumulateMetadata: Items: 2392
[INFO ] - 2019-12-29 15:01:53 @ ImdbPipeline.accumulateMetadata: Metadata missing for: 2392
[INFO ] - 2019-12-29 15:01:53 @ ImdbPipeline.accumulateMetadata: Retrieving metadata...
[INFO ] - 2019-12-29 15:01:58 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned ERROR : null
[ERROR] - 2019-12-29 15:01:58 @ ImdbDockerImplementation$ImdbBatchJob.run: NullPointerException exception encountered...
[ERROR] - 2019-12-29 15:01:58 @ ImdbDockerImplementation$ImdbBatchJob.run: Please contact the maintainer of the application w
ith the stacktrace below if you think this is unwanted behavior.
[ERROR] - 2019-12-29 15:01:58 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2019-12-29 15:01:58 @ ImdbDockerImplementation$ImdbBatchJob.run: java.lang.NullPointerException
at updatetool.imdb.ImdbOmdbWorker.call(ImdbOmdbWorker.java:65)
at updatetool.imdb.ImdbOmdbWorker.call(ImdbOmdbWorker.java:17)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
[ERROR] - 2019-12-29 15:01:58 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2019-12-29 15:01:58 @ ImdbDockerImplementation$ImdbBatchJob.run: The application will terminate now.

"No matching imdb resolver"

so, i only have TMDB as my agent for both series and movies

2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'Black Water' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/11?lang=en)
2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'Heart Break' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/8?lang=en)
2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'Call of Silence' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/7?lang=en)
2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'Forced Entry' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/9?lang=en)
2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'Terminal Leave' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/6?lang=en)
2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'Lt. Jane Doe' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/4?lang=en)
2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'Vanished' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/3?lang=en)
2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'The Good Wives Club' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/2?lang=en)
2020-11-04 17:05:42 stdout [WARN ] - 2020-11-04 17:05:42 @ DefaultResolvement.resolve: Item: 'See No Evil' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.thetvdb://72108/2/1?lang=en)
2020-11-04 17:05:42 stdout [INFO ] - 2020-11-04 17:05:42 @ ImdbPipeline.analyseDatabase: Items that show up here will not be processed by further stages of the pipeline.
2020-11-04 17:05:42 stdout [INFO ] - 2020-11-04 17:05:42 @ ImdbPipeline.analyseDatabase: Resolving IMDB identifiers for items. Only warnings and errors will show up...
2020-11-04 17:05:42 stdout [INFO ] - 2020-11-04 17:05:42 @ ImdbDockerImplementation$ImdbBatchJob.run: Processing [SERIES] TV Shows with UUID 1bc517ea-d85b-4b3f-829b-d89c6f70a573 at stage: CREATED
2020-11-04 17:05:42 stdout [INFO ] - 2020-11-04 17:05:42 @ ImdbDockerImplementation$ImdbBatchJob.run: [SERIES] TV Shows has 11476 item(s)
2020-11-04 17:05:42 stdout [INFO ] - 2020-11-04 17:05:42 @ ImdbRatingDatasetFactory.readData: 1087300 lines read.
2020-11-04 17:05:37 stdout [INFO ] - 2020-11-04 17:05:37 @ ImdbRatingDatasetFactory.readData: Reading data...
2020-11-04 17:05:37 stdout [INFO ] - 2020-11-04 17:05:37 @ ImdbRatingDatasetFactory.extractData: Extraction completed.
2020-11-04 17:05:37 stdout [INFO ] - 2020-11-04 17:05:37 @ ImdbRatingDatasetFactory.extractData: Extracting dataset...
2020-11-04 17:05:37 stdout [INFO ] - 2020-11-04 17:05:37 @ ImdbRatingDatasetFactory.downloadData: Download succeeded @ ./__tmp_rating.gz
2020-11-04 17:05:36 stdout [INFO ] - 2020-11-04 17:05:36 @ ImdbRatingDatasetFactory.downloadData: Downloading IMDB rating set from: https://datasets.imdbws.com/title.ratings.tsv.gz
2020-11-04 17:05:36 stdout [INFO ] - 2020-11-04 17:05:36 @ ImdbRatingDatasetFactory.requestSet: IMDB Dataset has the timestamp: 0 and violates the update every 86400000 ms constraint. Refreshing dataset...
2020-11-04 17:05:36 stdout [INFO ] - 2020-11-04 17:05:36 @ ImdbDockerImplementation$ImdbBatchJob.run: Library IDs on ignore list: []
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ TaskWrapper.run: ================================================
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ TaskWrapper.run: Starting task: imdb-docker | Execution count: 0
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ TaskWrapper.run: ================================================
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ Scheduler.go: Running supplied tasks immediately NOW!
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ Scheduler.lambda$go$1: Queued task imdb-docker for immediate execution.
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ Scheduler.lambda$go$0: Scheduled imdb-docker task to run @ every 12 hour(s).
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ Scheduler.go: Scheduling tasks...
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ Scheduler.go: Scheduler is loading tasks... Blocking until completely set-up and ready to go.
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ Main.main: << INIT SUCCESS >>
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ ImdbDockerImplementation.bootstrap: Capabilities: [TMDB, NO_MOVIE, VERBOSE_XML_ERROR_LOG]
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ ImdbDockerImplementation.bootstrap: Plex data dir: /plexdata
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ ImdbDockerImplementation.bootstrap: Starting IMDB Watchdog
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ ImdbDockerImplementation.bootstrap: No TVDB API authorization string detected. Will process TVDB backed TV Series libraries.
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ ImdbDockerImplementation.bootstrap: TMDB API key enabled TMDB <=> IMDB matching. Will process TMDB backed Movie and TV Series libraries and TMDB orphans.
2020-11-04 17:05:35 stdout [INFO ] - 2020-11-04 17:05:35 @ Main.genericApiTest: Test passed. API Key is valid.
2020-11-04 17:05:33 stdout [INFO ] - 2020-11-04 17:05:33 @ Main.testApiTmdb: Testing TMDB API key: a8acccczzzz
2020-11-04 17:05:33 stdout [INFO ] - 2020-11-04 17:05:33 @ Main.main: << INIT: imdb-docker @ {schedule=12} >>
2020-11-04 17:05:33 stdout [INFO ] - 2020-11-04 17:05:33 @ Main.main: Args: {imdb-docker={schedule=12}}
2020-11-04 17:05:33 stdout [INFO ] - 2020-11-04 17:05:33 @ Main.main: Running version: 1.4.5

DB field to be updated

Hi.
I noticed now that Plex is using Audience rating instead of Critic Rating when populating the Score field. Will you change update tool to use this field as well? IMDB score is an audience score after all.

Rating feature request

Not sure if this is the right place to request, but I couldn't find anywhere else.

I would love to see an option to select Metacritic ratings as source.
Maybe even store them in the "critics rating", as that's not used when using IMDB as source and sorting by it, sorts by title.

TVDb v3

I'm having issues trying to use TVDb v3 still? It looks like my TVDb v3 creds pass but then the TVDb v4 failed test stops the container

*** VERSION 1.5.3 IS UP TO DATE! ***

MAX JVM HEAP: -Xmx256m
**** Invoking tool! Logs in /config ****
[INFO ] - 2021-03-17 10:51:56 @ Main.loadImplementation: Loaded implementation << imdb-docker << updatetool.imdb.ImdbDockerImplementation
[INFO ] - 2021-03-17 10:51:56 @ Main.main: Running version: 1.5.3

[INFO ] - 2021-03-17 10:51:56 @ Main.main: Args: {imdb-docker={schedule=12}}
[INFO ] - 2021-03-17 10:51:56 @ Main.main: << INIT: imdb-docker @ {schedule=12} >>
[INFO ] - 2021-03-17 10:51:56 @ TmdbApiV3.<init>: Testing TMDB API (v3) key: *****
[INFO ] - 2021-03-17 10:51:56 @ TmdbApiV3.<init>: Test passed. API Key is valid.
[INFO ] - 2021-03-17 10:51:56 @ ImdbDockerImplementation.bootstrap: TMDB API key enabled TMDB <=> IMDB matching. Will process TMDB backed Movie and TV Series libraries and TMDB orphans.
[INFO ] - 2021-03-17 10:51:56 @ TvdbApiV4.auth: Testing TMDB API (v4) pin: *****
[ERROR] - 2021-03-17 10:51:56 @ TvdbApiV4.auth: TVDB v4 authorization failed with code 401 and status failure

[ERROR] - 2021-03-17 10:51:56 @ TvdbApiV4.auth: This could be due to the TVDB API v4 having issues at the moment or your credentials being wrong.

[ERROR] - 2021-03-17 10:51:56 @ TvdbApiV4.auth: This is the received response:

[ERROR] - 2021-03-17 10:51:56 @ TvdbApiV4.auth: Payload:{"status":"failure","message":"InvalidAPIKey: pin invalid","data":null}


[ERROR] - 2021-03-17 10:51:56 @ TvdbApiV4.auth: Pin (v4) available under: https://www.thetvdb.com

[ERROR] - 2021-03-17 10:51:56 @ TvdbApiV4.auth: ===================================================

No libraries found

I'm using the docker component on linux https://hub.docker.com/r/mynttt/updatetool
The tool is only able to identify my TV library when the TVDB option environment is activated and got all the imdb ratings. but for movie it doesn't identify any library. below the logs when i deactivate the tvdb option.

**** Invoking tool! Logs in /config ****
[INFO ] - 2020-03-21 10:31:39 @ ImdbDockerImplementation.invoke: Running version: 1.3.5
[INFO ] - 2020-03-21 10:31:39 @ Main.testApiTmdb: Testing TMDB API key: xremovedx
[INFO ] - 2020-03-21 10:31:39 @ Main.genericApiTest: Test passed. API Key is valid.
[INFO ] - 2020-03-21 10:31:39 @ ImdbDockerImplementation.invoke: TMDB API key enabled TMDB <=> IMDB matching. Will fetch IMDB ratings for non matched IMDB items.
[INFO ] - 2020-03-21 10:31:39 @ ImdbDockerImplementation.invoke: No TVDB API authorization string detected. Will not attempt to update IMDB ratings for TV Series with the TVDB agent.
[INFO ] - 2020-03-21 10:31:39 @ ImdbDockerImplementation.invoke: Starting IMDB Watchdog
[INFO ] - 2020-03-21 10:31:39 @ ImdbDockerImplementation.invoke: Plex data dir: /plexdata
[INFO ] - 2020-03-21 10:31:39 @ ImdbDockerImplementation.invoke: Invoke every 12 hour(s)
[INFO ] - 2020-03-21 10:31:39 @ ImdbDockerImplementation.invoke: Running first task...
[INFO ] - 2020-03-21 10:31:39 @ ImdbDockerImplementation.invoke: Scheduling next tasks to run @ every 12 hour(s)
[INFO ] - 2020-03-21 10:31:40 @ ImdbDockerImplementation$ImdbBatchJob.run: Library IDs on ignore list: []
[INFO ] - 2020-03-21 10:31:40 @ ImdbDockerImplementation$ImdbBatchJob.run: No libraries found. Sleeping until next invocation...

API call failed with code 200 after + 5 attempt(s)

I have a large collection of movies. The updatetool fails to complete after at least 5 of my movies receives "OMDB_API_FAIL". I've checked each of those movies and some are unclear why OMDB fails to fetch, but at least 2 is because it's set as In Development.

Using the docker container.

[ERROR] - 2020-01-19 23:28:53 @ ImdbOmdbWorker.call: OMDB_API_FAIL := TITLE -> The Ice Dragon | IMDB_ID -> tt8451934 | GUID -> com.plexapp.agents.imdb://tt8451934?lang=en | RESPONSE_CODE -> 200 | RESPONSE_BODY -> {"Response":"False","Error":"Error getting data."},
[ERROR] - 2020-01-19 23:30:34 @ ImdbOmdbWorker.call: OMDB_API_FAIL := TITLE -> ReMastered: Who Shot the Sheriff | IMDB_ID -> tt9046548 | GUID -> com.plexapp.agents.imdb://tt9046548?lang=en | RESPONSE_CODE -> 200 | RESPONSE_BODY -> {"Response":"False","Error":"Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression."},
[ERROR] - 2020-01-19 23:32:03 @ ImdbOmdbWorker.call: OMDB_API_FAIL := TITLE -> Wake | IMDB_ID -> tt3876910 | GUID -> com.plexapp.agents.imdb://tt3876910?lang=en | RESPONSE_CODE -> 200 | RESPONSE_BODY -> {"Response":"False","Error":"Error getting data."},
[ERROR] - 2020-01-19 23:33:03 @ ImdbOmdbWorker.call: OMDB_API_FAIL := TITLE -> Jackson | IMDB_ID -> tt7923350 | GUID -> com.plexapp.agents.imdb://tt7923350?lang=en | RESPONSE_CODE -> 200 | RESPONSE_BODY -> {"Response":"False","Error":"Error getting data."},
[ERROR] - 2020-01-19 23:34:33 @ ImdbOmdbWorker.call: OMDB_API_FAIL := TITLE -> Love Dot Com: The Social Experiment | IMDB_ID -> tt9238392 | GUID -> com.plexapp.agents.imdb://tt9238392?lang=en | RESPONSE_CODE -> 200 | RESPONSE_BODY -> {"Response":"False","Error":"Error getting data."},

Plex database corruption

Hi there,

Just wanna say i love this script!
Sadly for me, after a second run, my database of plex got corrupted

Aug 24, 2020 20:05:14.920 [0x7fbf6209b180] ERROR - SQLITE3:(nil), 11, database corruption at line 65066 of [bf8c1b2b7a]
Aug 24, 2020 20:05:14.920 [0x7fbf6209b180] ERROR - SQLITE3:(nil), 11, statement aborts at 10: [select max(max(metadata_items.changed_at),max(metadata_items.resources_changed_at)) from metadata_items] database disk image is malformed
Aug 24, 2020 20:05:14.920 [0x7fbf6209b180] ERROR - Database corruption: sqlite3_statement_backend::loadOne: database disk image is malformed

Is there something I can provide to try to tackle the issue?

Agent Changer

I hope you don't mind feature requests. I've been trying to find a tool that would do this and have not been able to fix my library fully yet due to the various agent changes I made in the past, 2017-2018.

Force Rematch as an option to this script would be a huge time saver.
There was this very useful feature being developed for Plex Web Tools when it was still active that would help a common problem with libraries.
github.com/ukdtom/WebTools.bundle/issues/509 explains the feature a bit. I've noticed it too where even if I change around the order or enable sub-agents in the main one, then you'd have to force a rematch to get correct metadata. Simply refreshing would not work, and as of right now you must force rematch one by one, movies and tv shows, there is no way to batch force rematch or unmatch and match inside of plex.

WebTools has been the only thing I could find that tried to do it, however it's not a part of the UI and must be run over the API but there's no documentation and I couldn't get it working myself, although I can't read python very well so that's probably why.
github.com/ukdtom/WebTools.bundle/blob/%23509/Contents/Code/changeagent.py

The problem is that when you change the library agent, all existing matched movies/tv shows will not change and remain the same even after refreshing the metadata in their agent. However in the sqlite db, each show has the agent its matched to and the id of the movie/show, so it can't be changed simply by replacing the agent name, it has to be rematched in plex to get the new //t02192 like id.

What do you think of this feature request?

Using UpdateTool with Plex docker

Wondering if this tool works with Plex in Docker. I am using the following command to run Plex currently:

sudo docker create \
--name plex \
--net=host \
--restart=always \
--device /dev/dri/card0:/dev/dri/card0 \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
-e LD_LIBRARY_PATH=/usr/lib/plexmediaserver \
-e PUID=1000 -e PGID=1000 \
-e PLEX_CLAIM="claim-xyz" \
-p 32400:32400 \
-v /etc/localtime:/etc/localtime:ro \
-v /docker/containers/plex/config:/config \
-v /docker/containers/plex/transcode:/transcode \
-v /mnt/movies:/data/movies:shared \
plexinc/pms-docker:plexpass

I do see a folder named Plex Media Server at /docker/containers/plex/config/Library/Application Support/Plex Media Server.

Can you please indicate how the docker command for UpdateTool will look like? Thanks!

[Suggestion] Use the official iMDB datasets that are more updated than OMDB.

Using the official datasets of IMDB (https://datasets.imdbws.com/) only has advantages:

  • Updated every day (Not sure of this, but certainly updated way more frequently than OMDB, it's easy to check this by comparing recent movies rating in both sides)
  • No need to add an API key
  • You only need to download the title.ratings.tsv.gz each time you run the app. Every single rating in IMDB is in that file so you don't need to have multiple calls to OMDB API.

The only "cons" is that you need to implement a CSV type of parser to read the file after extracting it.

Crash while using unraid docker - SAXParseException exception encountered

First time running this tool, it seems to run for awhile but then crashes before it can finish its xml updates.

*** VERSION 1.4.4 IS UP TO DATE! ***

MAX JVM HEAP: -Xmx256m
**** Invoking tool! Logs in /config ****
[INFO ] - 2020-10-15 18:41:21 @ Main.loadImplementation: Loaded implementation << imdb-docker << updatetool.imdb.ImdbDockerImplementation
[INFO ] - 2020-10-15 18:41:21 @ Main.main: Running version: 1.4.4

[INFO ] - 2020-10-15 18:41:21 @ Main.main: Args: {imdb-docker={schedule=24}}
[INFO ] - 2020-10-15 18:41:21 @ Main.main: << INIT: imdb-docker @ {schedule=24} >>
[INFO ] - 2020-10-15 18:41:21 @ ImdbDockerImplementation.bootstrap: No TMDB API key detected. Will not process TMDB backed Movie and TV Series libraries and TMDB orphans.
[INFO ] - 2020-10-15 18:41:21 @ ImdbDockerImplementation.bootstrap: No TVDB API authorization string detected. Will process TVDB backed TV Series libraries.
[INFO ] - 2020-10-15 18:41:21 @ ImdbDockerImplementation.bootstrap: Starting IMDB Watchdog
[INFO ] - 2020-10-15 18:41:21 @ ImdbDockerImplementation.bootstrap: Plex data dir: /plexdata
[INFO ] - 2020-10-15 18:41:21 @ ImdbDockerImplementation.bootstrap: Capabilities: [VERBOSE_XML_ERROR_LOG]
[INFO ] - 2020-10-15 18:41:21 @ Main.main: << INIT SUCCESS >>
[INFO ] - 2020-10-15 18:41:21 @ Scheduler.go: Scheduler is loading tasks... Blocking until completely set-up and ready to go.
[INFO ] - 2020-10-15 18:41:21 @ Scheduler.go: Scheduling tasks...
[INFO ] - 2020-10-15 18:41:21 @ Scheduler.lambda$go$0: Scheduled imdb-docker task to run @ every 24 hour(s).
[INFO ] - 2020-10-15 18:41:21 @ Scheduler.lambda$go$1: Queued task imdb-docker for immediate execution.
[INFO ] - 2020-10-15 18:41:21 @ Scheduler.go: Running supplied tasks immediately NOW!
[INFO ] - 2020-10-15 18:41:21 @ TaskWrapper.run: ================================================
[INFO ] - 2020-10-15 18:41:21 @ TaskWrapper.run: Starting task: imdb-docker | Execution count: 0
[INFO ] - 2020-10-15 18:41:21 @ TaskWrapper.run: ================================================
[INFO ] - 2020-10-15 18:41:22 @ ImdbDockerImplementation$ImdbBatchJob.run: Library IDs on ignore list: []
[INFO ] - 2020-10-15 18:41:22 @ ImdbRatingDatasetFactory.readData: Reading data...
[INFO ] - 2020-10-15 18:41:23 @ ImdbRatingDatasetFactory.readData: 1082987 lines read.
[WARN ] - 2020-10-15 18:41:23 @ NewPlexMovieAgentToImdbResolvement.<init>: No TMDB fallback set. Will not resolve new plex movie agent items if they only have a TMDB id associated.
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Movies has 1492 item(s)
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Documentary Movies has 234 item(s)
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Anime Movies has 26 item(s)
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Stand-up has 263 item(s)
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] UHD Movies has 52 item(s)
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: Processing [MOVIE] Movies with UUID f4eb9c28-6e74-486e-a4fc-e3600725f027 at stage: CREATED
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Resolving IMDB identifiers for items. Only warnings and errors will show up...
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Items that show up here will not be processed by further stages of the pipeline.
[WARN ] - 2020-10-15 18:41:23 @ DefaultResolvement.resolve: Item: 'After Life (1998)' has no matching IMDB resolver and will be ignored. (guid=com.plexapp.agents.none://376845842fa88de4aff45f8e2784aaf634dbe4e8?lang=xn)
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Filtered 1 invalid item(s).
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: 1490 item(s) need no update.
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: Transforming 0 item(s)
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: Transformed entries for 0 items(s).
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateDatabase: Nothing to update. Skipping...
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateXML: Updating XML fallback files for 0 item(s).
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateXML: Completed updating of XML fallback files.
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned PASS : Job finished correctly
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: Job finished successfully for [MOVIE] Movies with UUID f4eb9c28-6e74-486e-a4fc-e3600725f027
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: Processing [MOVIE] Documentary Movies with UUID b3bfe476-7961-4527-96d9-b97c739f3ffd at stage: CREATED
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Resolving IMDB identifiers for items. Only warnings and errors will show up...
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Items that show up here will not be processed by further stages of the pipeline.
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Filtered 0 invalid item(s).
[WARN ] - 2020-10-15 18:41:23 @ ImdbTransformer.needsUpdate: Ignoring: 'The Great Hack' with IMDB ID: tt9358204 supplies no valid rating := 'null'
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: 234 item(s) need no update.
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: Transforming 0 item(s)
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: Transformed entries for 0 items(s).
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateDatabase: Nothing to update. Skipping...
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateXML: Updating XML fallback files for 0 item(s).
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateXML: Completed updating of XML fallback files.
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned PASS : Job finished correctly
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: Job finished successfully for [MOVIE] Documentary Movies with UUID b3bfe476-7961-4527-96d9-b97c739f3ffd
[INFO ] - 2020-10-15 18:41:23 @ ImdbDockerImplementation$ImdbBatchJob.run: Processing [MOVIE] Anime Movies with UUID 8cee3e53-9260-4b72-910d-b0c7b281ebb8 at stage: CREATED
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Resolving IMDB identifiers for items. Only warnings and errors will show up...
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Items that show up here will not be processed by further stages of the pipeline.
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.analyseDatabase: Filtered 0 invalid item(s).
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: 8 item(s) need no update.
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: Transforming 18 item(s)
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 7.9 -> 8.0 for Perfect Blue
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 7.8 -> 8.0 for Ghost in the Shell: Stand Alone Complex - Solid State Society
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Ghost in the Shell: Stand Alone Complex - Solid State Society
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 9.7 -> 8.5 for Grave of the Fireflies
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Grave of the Fireflies
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Grave of the Fireflies
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 7.9 -> 8.3 for Ghost in the Shell: Stand Alone Complex - The Laughing Man
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Ghost in the Shell: Stand Alone Complex - The Laughing Man
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 8.1 -> 8.4 for Ghost in the Shell: Stand Alone Complex - Individual Eleven
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Ghost in the Shell: Stand Alone Complex - Individual Eleven
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 10.0 -> 7.1 for Penguin Highway
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Penguin Highway
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Penguin Highway
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 8.1 -> 7.3 for Dragon Ball Z: Resurrection 'F'
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Dragon Ball Z: Resurrection 'F'
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Dragon Ball Z: Resurrection 'F'
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 7.6 -> 6.4 for Superman: Man of Tomorrow
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Superman: Man of Tomorrow
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 6.4 -> 7.5 for Ghost in the Shell 2: Innocence
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Ghost in the Shell 2: Innocence
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Ghost in the Shell 2: Innocence
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 7.7 -> 8.0 for Batman: The Dark Knight Returns
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Batman: The Dark Knight Returns
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 8.1 -> 8.0 for Castle in the Sky
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 8.7 -> 8.0 for Akira
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Akira
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Akira
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 9.7 -> 8.6 for Spirited Away
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Spirited Away
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Spirited Away
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 8.8 -> 7.7 for The Girl Who Leapt Through Time
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: The Girl Who Leapt Through Time
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: The Girl Who Leapt Through Time
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 9.6 -> 8.0 for Ghost in the Shell
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Ghost in the Shell
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Ghost in the Shell
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 9.4 -> 8.2 for My Neighbor Totoro
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: My Neighbor Totoro
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: My Neighbor Totoro
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 3.9 -> 6.4 for Batman: The Killing Joke
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Batman: The Killing Joke
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: Adjust rating: 8.3 -> 7.9 for Dragon Ball Super: Broly
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Dragon Ball Super: Broly
[INFO ] - 2020-10-15 18:41:23 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Dragon Ball Super: Broly
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.transformMetadata: Transformed entries for 18 items(s).
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateDatabase: Updating 18 via batch request...
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateDatabase: Batch request finished successfully. Database is now up to date!
[INFO ] - 2020-10-15 18:41:23 @ ImdbPipeline.updateXML: Updating XML fallback files for 18 item(s).
[Fatal Error] :1:1: Premature end of file.

[INFO ] - 2020-10-15 18:41:24 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned ERROR : Premature end of file.

[ERROR] - 2020-10-15 18:41:24 @ ImdbDockerImplementation$ImdbBatchJob.run: SAXParseException exception encountered...

[ERROR] - 2020-10-15 18:41:24 @ ImdbDockerImplementation$ImdbBatchJob.run: Please contact the maintainer of the application with the stacktrace below if you think this is unwanted behavior.

[ERROR] - 2020-10-15 18:41:24 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================

[ERROR] - 2020-10-15 18:41:24 @ ImdbDockerImplementation$ImdbBatchJob.run: org.xml.sax.SAXParseException: Premature end of file.

at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at java.xml/javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at updatetool.imdb.ImdbXmlWorker.transformXML(ImdbXmlWorker.java:58)
at updatetool.imdb.ImdbXmlWorker.call(ImdbXmlWorker.java:45)
at updatetool.imdb.ImdbXmlWorker.call(ImdbXmlWorker.java:21)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
[ERROR] - 2020-10-15 18:41:24 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================

[ERROR] - 2020-10-15 18:41:24 @ ImdbDockerImplementation$ImdbBatchJob.run: The application will terminate now.

Revert Changes to TV Show Libraries

This works perfectly for movies (thank you!), but ratings completely disappear for TV shows in Plex IOS apps. Is there a way to revert the changes in order to remove IMDB ratings from the TV Show libraries?

New TV agent beta

So plex now includes their new TV agent in the latest release.. 1.22.0.4136

This seems to have broken TV ratings like when they released their new Movie agent. Is there someway to get this to work, or will there be an update coming that fixes this? I sure hope so - I love my consistent and current rating using this..

I have tvdb set as ratings in the new agent.. But the few shows I have refreshed metadata on, and then ran the update tool doesn't seem to get back the imdb ratings.. Blacklist is one example. It shows a new tvdb icon and 87% as the rating..

[SQLITE_ERROR] SQL error or missing database (no such table: library_sections)

Hey firstly thank you for making this tool (plex couldnt care less about fixing this huge flaw)
I am trying to run this on Windows 10 (2004), I have tried running the bat file as admin also but it gives the same error.
PMS Version:1.19.4.2935
This is the log:
[INFO ] - 2020-07-18 23:21:18 @ Main.loadImplementation: Loaded implementation << imdb-docker << updatetool.imdb.ImdbDockerImplementation
[INFO ] - 2020-07-18 23:21:18 @ Main.main: Running version: 1.3.9b
[INFO ] - 2020-07-18 23:21:18 @ Main.main: Args: {imdb-docker={schedule=12}}
[INFO ] - 2020-07-18 23:21:18 @ Main.main: << INIT: imdb-docker @ {schedule=12} >>
[INFO ] - 2020-07-18 23:21:18 @ Main.testApiTmdb: Testing TMDB API key: REDACTED
[INFO ] - 2020-07-18 23:21:20 @ Main.genericApiTest: Test passed. API Key is valid.
[INFO ] - 2020-07-18 23:21:20 @ ImdbDockerImplementation.bootstrap: TMDB API key enabled TMDB <=> IMDB matching. Will process TMDB backed Movie and TV Series libraries and TMDB orphans.
[INFO ] - 2020-07-18 23:21:20 @ Main.testApiTvdb: Testing TVDB API authorization: apikey=REDACTED
[INFO ] - 2020-07-18 23:21:20 @ Main.testApiTvdb: Test passed. API Key is valid.
[INFO ] - 2020-07-18 23:21:20 @ ImdbDockerImplementation.bootstrap: TVDB API authorization enabled IMDB rating update for TV Series with the TVDB agent.
[INFO ] - 2020-07-18 23:21:20 @ ImdbDockerImplementation.bootstrap: Starting IMDB Watchdog
[INFO ] - 2020-07-18 23:21:20 @ ImdbDockerImplementation.bootstrap: Plex data dir: C:\Users\Kunal Goel\AppData\Local\Plex Media Server
[INFO ] - 2020-07-18 23:21:20 @ ImdbDockerImplementation.bootstrap: Capabilities: [TMDB, TVDB]
[INFO ] - 2020-07-18 23:21:20 @ Main.main: << INIT SUCCESS >>
[INFO ] - 2020-07-18 23:21:20 @ Scheduler.go: Scheduler is loading tasks... Blocking until completely set-up and ready to go.
[INFO ] - 2020-07-18 23:21:20 @ Scheduler.go: Scheduling tasks...
[INFO ] - 2020-07-18 23:21:20 @ Scheduler.lambda$go$0: Scheduled imdb-docker task to run @ every 12 hour(s).
[INFO ] - 2020-07-18 23:21:20 @ Scheduler.lambda$go$1: Queued task imdb-docker for immediate execution.
[INFO ] - 2020-07-18 23:21:20 @ Scheduler.go: Running supplied tasks immediately NOW!
[INFO ] - 2020-07-18 23:21:20 @ TaskWrapper.run: ================================================
[INFO ] - 2020-07-18 23:21:20 @ TaskWrapper.run: Starting task: imdb-docker | Execution count: 0
[INFO ] - 2020-07-18 23:21:20 @ TaskWrapper.run: ================================================
[ERROR] - 2020-07-18 23:21:21 @ ImdbDockerImplementation$ImdbBatchJob.run: SQLiteException exception encountered...
[ERROR] - 2020-07-18 23:21:21 @ ImdbDockerImplementation$ImdbBatchJob.run: Please contact the maintainer of the application with the stacktrace below if you think this is unwanted behavior.
[ERROR] - 2020-07-18 23:21:21 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2020-07-18 23:21:21 @ ImdbDockerImplementation$ImdbBatchJob.run: org.sqlite.SQLiteException: [SQLITE_ERROR] SQL error or missing database (no such table: library_sections)
at org.sqlite.core.DB.newSQLException(DB.java:941)
at org.sqlite.core.DB.newSQLException(DB.java:953)
at org.sqlite.core.DB.throwex(DB.java:918)
at org.sqlite.core.NativeDB.prepare_utf8(Native Method)
at org.sqlite.core.NativeDB.prepare(NativeDB.java:134)
at org.sqlite.core.DB.prepare(DB.java:257)
at org.sqlite.jdbc3.JDBC3Statement.executeQuery(JDBC3Statement.java:73)
at updatetool.common.SqliteDatabaseProvider.queryFor(SqliteDatabaseProvider.java:26)
at updatetool.common.DatabaseSupport.requestLibrary(DatabaseSupport.java:67)
at updatetool.common.DatabaseSupport.requestMovieLibraries(DatabaseSupport.java:59)
at updatetool.imdb.ImdbDockerImplementation$ImdbBatchJob.run(ImdbDockerImplementation.java:197)
at updatetool.TaskWrapper.run(Main.java:284)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
[ERROR] - 2020-07-18 23:21:21 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2020-07-18 23:21:21 @ ImdbDockerImplementation$ImdbBatchJob.run: The application will terminate now.

Can you please help me out here?

TV Series TVDB: xxxxxxx does not have an IMDB id associated.

So I am watching the logs on first run and I am seeing a ton of these. When I go to look them up on the IMDB they do in fact of an IMDB ID associated with them. I didn't check all, but randomly. Here are some.

 id associated.
[WARN ] - 2020-02-20 15:10:09 @ TvdbToImdbResolvement.resolveEpisode: TVDB item Cerro Gordo Ghost Town with id 83929/19/2 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:11 @ TvdbToImdbResolvement.resolveEpisode: TVDB item The Merchant of Death: Viktor Bout with id 313321/3/7 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:11 @ TvdbToImdbResolvement.resolveEpisode: TVDB item The Bentley Lament with id 366090/1/5 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:11 @ TvdbToImdbResolvement.resolveEpisode: TVDB item Core Values with id 276515/7/2 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:14 @ DefaultResolvement.resolve: Item: has no matching IMDB resolver and will be ignored. (guid=local://26334)
[WARN ] - 2020-02-20 15:10:14 @ TvdbToImdbResolvement.resolveEpisode: TVDB item The Prism with id 308772/4/8 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:15 @ TvdbToImdbResolvement.resolveEpisode: TVDB item Pasadena Ritual House with id 83929/19/3 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:15 @ TvdbToImdbResolvement.resolveEpisode: TVDB item Pasadena Ritual House with id 83929/19/3 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:17 @ TvdbToImdbResolvement.resolveEpisode: TVDB item Operation Firewall: The Takedown of Shadowcrew with id 313321/3/8 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:17 @ TvdbToImdbResolvement.resolveEpisode: TVDB item Operation Firewall: The Takedown of Shadowcrew with id 313321/3/8 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:18 @ TvdbToImdbResolvement.resolveEpisode: TVDB item Fatal Exception with id 354963/1/7 does not have an IMDB id associated.
[WARN ] - 2020-02-20 15:10:18 @ TvdbToImdbResolvement.resolveEpisode: TVDB item Eye of the Swamp with

Aborted job queue due to an unexpected runtime error.

This went through fine for a bunch of movies, then failed with this error. I am sure it is a naming of it or something, but I can't seem to identify which movie it failed at. Let me know if there's any other information I can supply.

Aborted job queue due to an unexpected runtime error. Please send this to the maintainer of the application if you wish to file a bug report.

java.lang.NumberFormatException: For input string: "N/A"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.base/java.lang.Double.parseDouble(Double.java:543)
at ImdbUpdater.Utility.updateMetadata(Utility.java:66)
at java.base/java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1746)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
at ImdbUpdater.JobRunner.transformMeta(JobRunner.java:298)
at ImdbUpdater.JobRunner.jobInternal(JobRunner.java:187)
at ImdbUpdater.JobRunner.run(JobRunner.java:173)
at ImdbUpdater.Main.runJobs(Main.java:144)
at ImdbUpdater.Main.main(Main.java:107)

The progress has been saved.

======[ class java.lang.NumberFormatException ]======

path to '/plexdata/Plug-in Support/Databases/com.plexapp.plugins.library.db': '/plexdata/Plug-in Support' does not exist

Hey, I created a fresh Docker image from the commands listed in the Readme and got the following error when I checked the logs.
Using the latest image released 4 hours ago.

**** Invoking tool! Logs in /config ****
[INFO ] - 2020-01-02 21:31:03 @ Main.main: Running version: 1.2.3
[INFO ] - 2020-01-02 21:31:03 @ Main.testApiImdb: Testing OMDB API key: XXXXXXX
[INFO ] - 2020-01-02 21:31:04 @ Main.genericApiTest: Test passed. API Key is valid.
[INFO ] - 2020-01-02 21:31:04 @ ImdbDockerImplementation.invoke: No TMDB API key detected. Will not attempt to do an TMDB <=> IMDB ID conversion to update TMDB matched items (unless already matched previously).
[INFO ] - 2020-01-02 21:31:04 @ ImdbDockerImplementation.invoke: Starting IMDB Watchdog
[INFO ] - 2020-01-02 21:31:04 @ ImdbDockerImplementation.invoke: Plex data dir: /plexdata
[INFO ] - 2020-01-02 21:31:04 @ ImdbDockerImplementation.invoke: Invoke every 24 hour(s)
[INFO ] - 2020-01-02 21:31:04 @ ImdbDockerImplementation.invoke: Purge cache every 14 day(s)
[INFO ] - 2020-01-02 21:31:04 @ ImdbDockerImplementation.invoke: Running first task...
[INFO ] - 2020-01-02 21:31:04 @ ImdbDockerImplementation.invoke: Scheduling next tasks to run @ every 24 hour(s)
[ERROR] - 2020-01-02 21:31:05 @ ImdbDockerImplementation$ImdbBatchJob.run: SQLException exception encountered...
[ERROR] - 2020-01-02 21:31:05 @ ImdbDockerImplementation$ImdbBatchJob.run: Please contact the maintainer of the application with the stacktrace below if you think this is unwanted behavior.
[ERROR] - 2020-01-02 21:31:05 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2020-01-02 21:31:05 @ ImdbDockerImplementation$ImdbBatchJob.run: java.sql.SQLException: path to '/plexdata/Plug-in Support/Databases/com.plexapp.plugins.library.db': '/plexdata/Plug-in Support' does not exist
        at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
        at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:61)
        at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28)
        at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:21)
        at org.sqlite.JDBC.createConnection(JDBC.java:115)
        at org.sqlite.JDBC.connect(JDBC.java:90)
        at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
        at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:251)
        at updatetool.common.SqliteDatabaseProvider.<init>(SqliteDatabaseProvider.java:14)
        at updatetool.imdb.ImdbDockerImplementation$ImdbBatchJob.run(ImdbDockerImplementation.java:123)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:834)
[ERROR] - 2020-01-02 21:31:05 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2020-01-02 21:31:05 @ ImdbDockerImplementation$ImdbBatchJob.run: The application will terminate now.

TMDB messages

Feature request:

Can TMDB messages be omitted from the output if no TMDB resolvement is enabled and only keep the message TMDB is not enabled?
Repeating the same hundreds of messages on each run for movies that do not exist in IMDB when TMDB is not is use makes the logs hard to read.

[WARN ] - 2021-03-13 07:37:32 @ NewPlexAgentToImdbResolvement.resolve: TMDB id associated with new plex MOVIE agent guid but no TMDB resolvement enabled. Ignoring item: (tmdb://82419, plex://movie/5d77702147dd6e001f707d62, Queen: Live Aid)

Tool.jar 1.3.9b update

Since the 1.3.9b update, the docker container cannot run anymore.

2020-05-26 12:35:39 stdout [ERROR] - 2020-05-26 12:35:39 @ Main.lambda$main$1: The application will terminate now. (Version: 1.3.9b)
2020-05-26 12:35:39 stdout [ERROR] - 2020-05-26 12:35:39 @ Main.lambda$main$1: ========================================
2020-05-26 12:35:39 stdout at updatetool.Main.main(Main.java:76)
2020-05-26 12:35:39 stdout at updatetool.Main.processArgs(Main.java:135)
2020-05-26 12:35:39 stdout [ERROR] - 2020-05-26 12:35:39 @ Main.lambda$main$1: java.lang.IllegalArgumentException: Invalid arguments: [imdb-docker] | Arguments must be an even number (currently: 1) (id + args for implementation) * called tools. Look at the help by running this tool without arguments for an example.
2020-05-26 12:35:39 stdout [ERROR] - 2020-05-26 12:35:39 @ Main.lambda$main$1: ========================================
2020-05-26 12:35:39 stdout [ERROR] - 2020-05-26 12:35:39 @ Main.lambda$main$1: Please contact the maintainer of the application with the stacktrace below if you think this is unwanted behavior.
2020-05-26 12:35:39 stdout [ERROR] - 2020-05-26 12:35:39 @ Main.lambda$main$1: Uncaught IllegalArgumentException exception encountered...
2020-05-26 12:35:39 stdout [INFO ] - 2020-05-26 12:35:39 @ Main.loadImplementation: Loaded implementation << imdb-docker << updatetool.imdb.ImdbDockerImplementation

IllegalStateException exception encountered

I am getting the following error on my system (Ubuntu 18.04.3 w/openjdk 11)

[INFO ] - 2019-12-29 03:37:34 @ ImdbPipeline.accumulateMetadata: Items: 14481
[INFO ] - 2019-12-29 03:37:34 @ ImdbPipeline.accumulateMetadata: Metadata missing for: 240
[INFO ] - 2019-12-29 03:37:34 @ ImdbPipeline.accumulateMetadata: Retrieving metadata...
[INFO ] - 2019-12-29 03:37:36 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned ERROR : null
[ERROR] - 2019-12-29 03:37:36 @ ImdbDockerImplementation$ImdbBatchJob.run: IllegalStateException exception encountered...
[ERROR] - 2019-12-29 03:37:36 @ ImdbDockerImplementation$ImdbBatchJob.run: Please contact the maintainer of the application with the stacktrace below if you think this is unwanted behavior.
[ERROR] - 2019-12-29 03:37:36 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2019-12-29 03:37:36 @ ImdbDockerImplementation$ImdbBatchJob.run: java.lang.IllegalStateException: API call failed with code 200: {"Response":"False","Error":"Error getting data."}
at updatetool.imdb.ImdbOmdbWorker.call(ImdbOmdbWorker.java:68)
at updatetool.imdb.ImdbOmdbWorker.call(ImdbOmdbWorker.java:16)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
[ERROR] - 2019-12-29 03:37:36 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2019-12-29 03:37:36 @ ImdbDockerImplementation$ImdbBatchJob.run: The application will terminate now.

Update tool.jar kills docker image 1.3.9b

Looks like 1.3.9b still kills itself trying to update.
Had to reinstall the docker image again to get it running.
(The DNS resolve failed because the device was rebooted without network connection)

2020-06-11 15:17:48 stdout Error: Invalid or corrupt jarfile /usr/app/tool.jar
2020-06-11 15:17:48 stdout **** Invoking tool! Logs in /config ****
2020-06-11 15:17:48 stdout MAX JVM HEAP: -Xmx256m
2020-06-11 15:17:48 stdout wget: unable to resolve host address ‘github.com’
2020-06-11 15:17:48 stdout Resolving github.com (github.com)... failed: Temporary failure in name resolution.
2020-06-11 15:17:08 stdout --2020-06-11 15:17:08--  https://github.com/mynttt/UpdateTool/releases/download//UpdateTool-.jar
2020-06-11 15:17:08 stdout **** Downloading version  ****
2020-06-11 15:17:08 stdout wget: unable to resolve host address ‘raw.githubusercontent.com’

IMDB ID: XXX supplies no valid rating := 'null'

So running 1.3.9b in docker on synology ds918+ and has been working perfectly.. This prob the best tool that has ever been written for plex btw.

While a few things in my library, do not have entries in imdb, or the rating is blank, so understand those... But recently added brave new world 2020.. Which clearly has rating.. And even eps have ratings... But seeing these errors in the log.

https://www.imdb.com/title/tt9814116/
I currently show rating of 6.7 with 238 votes but updatetool is logging this.
[WARN ] - 2020-07-16 16:49:11 @ ImdbTransformer.needsNoUpdate: Ignoring: 'Brave New World (2020)' with IMDB ID: tt9814116 supplies no valid rating := 'null'

With eps showing the same
example
https://www.imdb.com/title/tt10851650/
'Want and Consequence' with IMDB ID: tt10851650 supplies no valid rating := 'null'

But if you look via just web browser those TTs all have ratings.. So confused.

Is there some sort of min number of votes for them to be valid?
Is there anyway to update the logging level to see exactly what is being returned, so maybe figure out why this isn't working for this 1 show.. I have hundreds of other shows and movies, and all working fantastic... I had no idea that ratings can fluctuate so much until started running this tool and looking at the log every few days.

Any more info that I can provide - just ask.

Match TMDb series even if TVDb API key not set.

Hi, firstly thank you so much for creating this tool - it really is a marvel.

I was wondering if it would be possible to allow shows to be processed which have TVDb set as the library type, but have been matched with TMDb. This would be useful for those without an API key for TVDb (especially since it will be deprecated in early 2021). Currently, TV shows will only be processed via TMDb if TMDb is set as the library agent.

NullPointerException exception encountered

Super awesome tool! But have run into some problems with the new version.
I'm getting this error, have tried recreating the container after getting the error, same result.
It finds my movies and TV shows, but after that it's fails.
Not sure if it has something to do with the movies that are missing responses, because i recall something similar in the older versions, when the program was running just fine.

[INFO ] - 2020-02-20 21:59:58 @ ImdbDockerImplementation.invoke: Running version: 1.3.1

[INFO ] - 2020-02-20 21:59:58 @ Main.testApiTmdb: Testing TMDB API key: TEMP

[INFO ] - 2020-02-20 21:59:59 @ Main.genericApiTest: Test passed. API Key is valid.

[INFO ] - 2020-02-20 21:59:59 @ ImdbDockerImplementation.invoke: TMDB API key enabled TMDB <=> IMDB matching. Will fetch IMDB ratings for non matched IMDB items.

[INFO ] - 2020-02-20 21:59:59 @ Main.testApiTvdb: Testing TVDB API authorization: username=TEMP | userkey=TEMP | apikey=TEMP

[INFO ] - 2020-02-20 22:00:00 @ ImdbDockerImplementation.invoke: TVDB API authorization enabled IMDB rating update for TV Series with the TVDB agent.

[INFO ] - 2020-02-20 22:00:00 @ ImdbDockerImplementation.invoke: Starting IMDB Watchdog

[INFO ] - 2020-02-20 22:00:00 @ ImdbDockerImplementation.invoke: Plex data dir: /plexdata

[INFO ] - 2020-02-20 22:00:00 @ ImdbDockerImplementation.invoke: Invoke every 12 hour(s)

[INFO ] - 2020-02-20 22:00:00 @ ImdbDockerImplementation.invoke: Running first task...

[INFO ] - 2020-02-20 22:00:00 @ ImdbDockerImplementation.invoke: Scheduling next tasks to run @ every 12 hour(s)

[INFO ] - 2020-02-20 22:00:02 @ ImdbRatingDatasetFactory.readData: Reading data...

[INFO ] - 2020-02-20 22:00:07 @ ImdbRatingDatasetFactory.readData: 1027209 lines read.

[INFO ] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Movies has 10 item(s)

[INFO ] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: [SERIES] Tv has 10 item(s)

[INFO ] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: Processing [MOVIE] Movies with UUID 48c5dd66-30c7-4ed0-9e4d-4dba96ec939b at stage: CREATED

[INFO ] - 2020-02-20 22:00:07 @ ImdbPipeline.analyseDatabase: Resolving IMDB identifiers for items. Only warnings and errors will show up...

[INFO ] - 2020-02-20 22:00:07 @ ImdbPipeline.analyseDatabase: Items that show up here will not be processed by further stages of the pipeline.

[INFO ] - 2020-02-20 22:00:07 @ TmdbToImdbResolvement.resolveUncached: Attempting to resolve TMDB identifer 488663 against IMDB...

[WARN ] - 2020-02-20 22:00:07 @ TmdbToImdbResolvement.resolveUncached: TMBD API request failed: [1/3] : TMDB API returned null imdb_id. No imdbid or API changed?

[WARN ] - 2020-02-20 22:00:07 @ TmdbToImdbResolvement.resolveUncached: Dumping response:(GET https://api.themoviedb.org/3/movie/488663?api_key=TEMP) 200

[WARN ] - 2020-02-20 22:00:07 @ TmdbToImdbResolvement.resolveUncached: TMBD API request failed: [2/3] : TMDB API returned null imdb_id. No imdbid or API changed?

[WARN ] - 2020-02-20 22:00:07 @ TmdbToImdbResolvement.resolveUncached: Dumping response:(GET https://api.themoviedb.org/3/movie/488663?api_key=TEMP) 200

[WARN ] - 2020-02-20 22:00:07 @ TmdbToImdbResolvement.resolveUncached: TMBD API request failed: [3/3] : TMDB API returned null imdb_id. No imdbid or API changed?

[WARN ] - 2020-02-20 22:00:07 @ TmdbToImdbResolvement.resolveUncached: Dumping response:(GET https://api.themoviedb.org/3/movie/488663?api_key=TEMP) 200

[INFO ] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned ERROR : TMDB API returned null imdb_id. No imdbid or API changed?

[ERROR] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: NullPointerException exception encountered...

[ERROR] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: Please contact the maintainer of the application with the stacktrace below if you think this is unwanted behavior.

[ERROR] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================

[ERROR] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: java.lang.NullPointerException: TMDB API returned null imdb_id. No imdbid or API changed?
	at java.base/java.util.Objects.requireNonNull(Unknown Source)
	at updatetool.imdb.resolvement.TmdbToImdbResolvement.resolveUncached(TmdbToImdbResolvement.java:54)
	at updatetool.imdb.resolvement.TmdbToImdbResolvement.resolve(TmdbToImdbResolvement.java:39)
	at updatetool.imdb.resolvement.TmdbToImdbResolvement.resolve(TmdbToImdbResolvement.java:15)
	at updatetool.imdb.ImdbPipeline.analyseDatabase(ImdbPipeline.java:99)
	at updatetool.imdb.ImdbPipeline.analyseDatabase(ImdbPipeline.java:37)
	at updatetool.api.Pipeline.invoke(Pipeline.java:20)
	at updatetool.imdb.ImdbJobRunner.run(ImdbJobRunner.java:19)
	at updatetool.imdb.ImdbDockerImplementation$ImdbBatchJob.run(ImdbDockerImplementation.java:191)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
[ERROR] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2020-02-20 22:00:07 @ ImdbDockerImplementation$ImdbBatchJob.run: The application will terminate now.

thetvdb userkey

I wanted to try out your tool, I stuck where I suppose to username and user key for the TVB. I can't find anymore on do get my user key. How can get it?

API call failed with code 200 after + 5 attempt(s)

I am still getting errors running this.

[INFO ] - 2020-01-02 01:31:16 @ ImdbPipeline.analyseDatabase: Filtered 46 invalid item(s).
[INFO ] - 2020-01-02 01:31:16 @ ImdbPipeline.accumulateMetadata: Items: 14489
[INFO ] - 2020-01-02 01:31:16 @ ImdbPipeline.accumulateMetadata: Metadata missing for: 24
[INFO ] - 2020-01-02 01:31:16 @ ImdbPipeline.accumulateMetadata: Retrieving metadata...
[WARN ] - 2020-01-02 01:31:16 @ ImdbOmdbWorker.call: OMDB API returned a reply with status code 200 but the reply is invalid. Trying again... 1/5
[WARN ] - 2020-01-02 01:31:16 @ ImdbOmdbWorker.call: OMDB API returned a reply with status code 200 but the reply is invalid. Trying again... 2/5
[WARN ] - 2020-01-02 01:31:16 @ ImdbOmdbWorker.call: OMDB API returned a reply with status code 200 but the reply is invalid. Trying again... 3/5
[WARN ] - 2020-01-02 01:31:16 @ ImdbOmdbWorker.call: OMDB API returned a reply with status code 200 but the reply is invalid. Trying again... 4/5
[WARN ] - 2020-01-02 01:31:16 @ ImdbOmdbWorker.call: OMDB API returned a reply with status code 200 but the reply is invalid. Trying again... 5/5
[INFO ] - 2020-01-02 01:31:17 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned API_ERROR : Aborted job queue due to the API failing to deliver a result.
[ERROR] - 2020-01-02 01:31:17 @ ImdbDockerImplementation$ImdbBatchJob.run: Aborted job queue due to the API failing to deliver a result.
[ERROR] - 2020-01-02 01:31:17 @ ImdbDockerImplementation$ImdbBatchJob.run: Original message: API call failed with code 200 after + 5 attempt(s): {"Response":"False","Error":"Error getting data."}

TVDB API authorization failed.

I am unable to use the TVDB api. I created a V4 API and it shows status Active on TVDB website. However, it is not working in updatetool. Here's the log (with API keys masked):

[INFO ] - 2020-10-15 16:04:25 @ Main.loadImplementation: Loaded implementation << imdb-docker << updatetool.imdb.ImdbDockerImplementation
[INFO ] - 2020-10-15 16:04:25 @ Main.main: Running version: 1.4.4
[INFO ] - 2020-10-15 16:04:25 @ Main.main: Args: {imdb-docker={schedule=12}}
[INFO ] - 2020-10-15 16:04:25 @ Main.main: << INIT: imdb-docker @ {schedule=12} >>
[INFO ] - 2020-10-15 16:04:25 @ Main.testApiTmdb: Testing TMDB API key: XYZ---XYZ
[INFO ] - 2020-10-15 16:04:26 @ Main.genericApiTest: Test passed. API Key is valid.
[INFO ] - 2020-10-15 16:04:26 @ ImdbDockerImplementation.bootstrap: TMDB API key enabled TMDB <=> IMDB matching. Will process TMDB backed Movie and TV Series libraries and TMDB orphans.
[INFO ] - 2020-10-15 16:04:26 @ Main.testApiTvdb: Testing TVDB API authorization: apikey=XYZ---XYZ
[ERROR] - 2020-10-15 16:04:26 @ TvdbApi.auth: TVDB authorization failed with code 401
[ERROR] - 2020-10-15 16:04:26 @ TvdbApi.auth: This could be due to the TVDB API having issues at the moment or your credentials being wrong.
[ERROR] - 2020-10-15 16:04:26 @ TvdbApi.auth: This is the received response:
[ERROR] - 2020-10-15 16:04:26 @ TvdbApi.auth: {"Error":"API Key Required"}
[ERROR] - 2020-10-15 16:04:26 @ TvdbApi.auth: ===================================================
[ERROR] - 2020-10-15 16:04:26 @ Main.testApiTvdb: API Test failed: TVDB API authorization failed.
[ERROR] - 2020-10-15 16:04:26 @ Main.testApiTvdb: Keys available under: https://thetvdb.com/

The docker command that I am using:

sudo docker run -dit -e RUN_EVERY_N_HOURS=12 --name updatetool --restart=always -e TMDB_API_KEY=XYZ---XYZ -e TVDB_API_KEY=XYZ---XYZ -v /etc/localtime:/etc/localtime:ro -v "/mnt/data/docker/containers/plex/config/Library/Application Support/Plex Media Server":/plexdata -v "/mnt/data/docker/containers/updatetool/config":/config mynttt/updatetool

Since Last Plex Agent Update

Not working since last plex agent update

[INFO ] - 2020-08-31 20:43:49 @ ImdbDockerImplementation$ImdbBatchJob.run: Library IDs on ignore list: []
[INFO ] - 2020-08-31 20:43:49 @ ImdbDockerImplementation$ImdbBatchJob.run: No libraries found. Sleeping until next invocation...

How do I run UpdateTool GUI: 1.0.0?

I installed OpenJDK11U-jdk_x64_windows_hotspot_11.0.10_9.msi and downloaded updatetool-gui-win-1.0.0.jar.
How to I run updatetool-gui-win-1.0.0.jar? Double-clicking the file only opens it as an archive (in my Filemanager).
What program do I "open"/run it with?

EDIT:
I tried to run it from the command prompt like this, but that didn't work:
C:.....\jdk-11.0.10.9-hotspot\bin\java.exe E:.....\updatetool-gui-win-1.0.0.jar
Error: Could not find or load main class E:.....\updatetool-gui-win-1.0.0.jar
Caused by: java.lang.ClassNotFoundException: E:....\updatetool-gui-win-1.0.0.jar

Updatetool error

running update tool in docker using docker compose:

'updatetool:
image: mynttt/updatetool
container_name: updatetool
environment:
- RUN_EVERY_N_HOURS=1
- TMDB_API_KEY=<<#valid key#>>
volumes:
- /opt/appdata/plex/config/Library/Application Support/Plex Media Server:/plexdata:rw
- /opt/appdata/plexupdate/config:/config:rw
network_mode: host
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "5m"'

receiving the following error:
`**** Invoking tool! Logs in /config ****
[INFO ] - 2020-09-09 12:53:33 @ Main.loadImplementation: Loaded implementation << imdb-docker << updatetool.imdb.ImdbDockerImplementation
[INFO ] - 2020-09-09 12:53:33 @ Main.main: Running version: 1.4.3
[INFO ] - 2020-09-09 12:53:33 @ Main.main: Args: {imdb-docker={schedule=1}}
[INFO ] - 2020-09-09 12:53:33 @ Main.main: << INIT: imdb-docker @ {schedule=1} >>
[INFO ] - 2020-09-09 12:53:33 @ Main.testApiTmdb: Testing TMDB API key: <<#valid key#>>
[INFO ] - 2020-09-09 12:53:34 @ Main.genericApiTest: Test passed. API Key is valid.
[INFO ] - 2020-09-09 12:53:34 @ ImdbDockerImplementation.bootstrap: TMDB API key enabled TMDB <=> IMDB matching. Will process TMDB backed Movie and TV Series libraries and TMDB orphans.
[INFO ] - 2020-09-09 12:53:34 @ ImdbDockerImplementation.bootstrap: No TVDB API authorization string detected. Will process TVDB backed TV Series libraries.
[INFO ] - 2020-09-09 12:53:34 @ ImdbDockerImplementation.bootstrap: Starting IMDB Watchdog
[INFO ] - 2020-09-09 12:53:34 @ ImdbDockerImplementation.bootstrap: Plex data dir: /plexdata
[INFO ] - 2020-09-09 12:53:34 @ ImdbDockerImplementation.bootstrap: Capabilities: [TMDB]
[INFO ] - 2020-09-09 12:53:34 @ Main.main: << INIT SUCCESS >>
[INFO ] - 2020-09-09 12:53:34 @ Scheduler.go: Scheduler is loading tasks... Blocking until completely set-up and ready to go.
[INFO ] - 2020-09-09 12:53:34 @ Scheduler.go: Scheduling tasks...
[INFO ] - 2020-09-09 12:53:34 @ Scheduler.lambda$go$0: Scheduled imdb-docker task to run @ every 1 hour(s).
[INFO ] - 2020-09-09 12:53:34 @ Scheduler.lambda$go$1: Queued task imdb-docker for immediate execution.
[INFO ] - 2020-09-09 12:53:34 @ Scheduler.go: Running supplied tasks immediately NOW!
[INFO ] - 2020-09-09 12:53:34 @ TaskWrapper.run: ================================================
[INFO ] - 2020-09-09 12:53:34 @ TaskWrapper.run: Starting task: imdb-docker | Execution count: 0
[INFO ] - 2020-09-09 12:53:34 @ TaskWrapper.run: ================================================
[INFO ] - 2020-09-09 12:53:34 @ ImdbDockerImplementation$ImdbBatchJob.run: Library IDs on ignore list: []
[INFO ] - 2020-09-09 12:53:34 @ ImdbRatingDatasetFactory.readData: Reading data...
[INFO ] - 2020-09-09 12:53:36 @ ImdbRatingDatasetFactory.readData: 1071419 lines read.
[INFO ] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Movies has 2067 item(s)
[INFO ] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: Processing [MOVIE] Movies with UUID cb9402b2-ed35-4a2f-a285-1e4e5df18564 at stage: CREATED
[INFO ] - 2020-09-09 12:53:36 @ ImdbPipeline.analyseDatabase: Resolving IMDB identifiers for items. Only warnings and errors will show up...
[INFO ] - 2020-09-09 12:53:36 @ ImdbPipeline.analyseDatabase: Items that show up here will not be processed by further stages of the pipeline.
[INFO ] - 2020-09-09 12:53:36 @ ImdbPipeline.analyseDatabase: Filtered 0 invalid item(s).
[WARN ] - 2020-09-09 12:53:36 @ ImdbTransformer.needsUpdate: Ignoring: 'Mia and the White Lion' with IMDB ID: tt6249748 supplies no valid rating := 'null'
[INFO ] - 2020-09-09 12:53:36 @ ImdbPipeline.transformMetadata: 2038 item(s) need no update.
[INFO ] - 2020-09-09 12:53:36 @ ImdbPipeline.transformMetadata: Transforming 29 item(s)
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 5.4 -> 5.3 for Sniper: Assassin's End
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.6 -> 6.7 for Scooby-Doo! Pirates Ahoy!
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 7.0 -> 7.1 for Scooby-Doo! Abracadabra-Doo
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 8.0 -> 7.9 for X-Men: Days of Future Past
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 4.8 -> 4.9 for Fearless
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 7.5 -> 7.4 for Palm Springs
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 7.2 -> 7.0 for Class Action Park
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 3.8 -> 5.6 for Mulan
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.6 -> 6.5 for Sonic the Hedgehog
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: null -> 7.0 for I'm Thinking of Ending Things
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: I'm Thinking of Ending Things
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: I'm Thinking of Ending Things
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.3 -> 6.4 for The Personal History of David Copperfield
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.1 -> 2.9 for Hard Kill
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 5.7 -> 5.6 for Jungle Beat: The Movie
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 8.1 -> 6.4 for Bill & Ted Face the Music
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 8.1 -> 8.0 for Rudolph the Red-Nosed Reindeer
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 2.5 -> 4.6 for The Owners
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: The Owners
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.8 -> 6.9 for Teen Titans Go! vs. Teen Titans
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.2 -> 6.1 for Rambo: Last Blood
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 5.9 -> 3.8 for Rogue
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Rogue
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Rogue
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 2.0 -> 4.9 for One Night in Bangkok
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: One Night in Bangkok
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.3 -> 6.2 for Ocean's Eight
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 7.7 -> 7.8 for Boyz n the Hood
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 7.4 -> 6.8 for The Call of the Wild
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: The Call of the Wild
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.1 -> 6.2 for The Jewel of the Nile
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 8.6 -> 7.3 for Phineas and Ferb the Movie: Candace Against the Universe
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Remove) Stripping useless badge data (RT, TMDB) for: Phineas and Ferb the Movie: Candace Against the Universe
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: (Set) Set IMDB Badge for: Phineas and Ferb the Movie: Candace Against the Universe
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.0 -> 6.1 for Dora and the Lost City of Gold
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.9 -> 7.0 for Bill & Ted's Excellent Adventure
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 7.8 -> 7.7 for Blue Velvet
[INFO ] - 2020-09-09 12:53:36 @ ImdbTransformer.updateMetadata: Adjust rating: 6.1 -> 6.0 for San Andreas
[INFO ] - 2020-09-09 12:53:36 @ ImdbPipeline.transformMetadata: Transformed entries for 29 items(s).
[INFO ] - 2020-09-09 12:53:36 @ ImdbPipeline.updateDatabase: Updating 29 via batch request...
[INFO ] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned ERROR : No message specified.
[ERROR] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: NullPointerException exception encountered...
[ERROR] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: Please contact the maintainer of the application with the stacktrace below if you think this is unwanted behavior.
[ERROR] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: java.lang.NullPointerException
at updatetool.imdb.ImdbDatabaseSupport.requestBatchUpdateOf(ImdbDatabaseSupport.java:142)
at updatetool.imdb.ImdbPipeline.updateDatabase(ImdbPipeline.java:180)
at updatetool.imdb.ImdbPipeline.updateDatabase(ImdbPipeline.java:48)
at updatetool.api.Pipeline.invoke(Pipeline.java:26)
at updatetool.imdb.ImdbJobRunner.run(ImdbJobRunner.java:19)
at updatetool.imdb.ImdbDockerImplementation$ImdbBatchJob.run(ImdbDockerImplementation.java:233)
at updatetool.TaskWrapper.run(Main.java:284)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
[ERROR] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================
[ERROR] - 2020-09-09 12:53:36 @ ImdbDockerImplementation$ImdbBatchJob.run: The application will terminate now.'

thanks

rename project for better visibility

Hi,

i think UpdateTool ist not a really good name where can people find this awesome Plex Tool!

i suggest an name for Github and DockerHub like this:

  • rating-updater-for-plex
  • rating-fixer-for-plex

in addition, the description on the DockerHub says nothing about Plex. You should enable Auto Build on DockerHub and Link them to your GitHub Repo, than you have the readme.md from here ;)

This tool is the best I've ever found, right after Tautulli.
It has to be found much better by other people

Java heap space crash

Hey, love the tool it has been great for keeping my IMDB stuff up to date.

I requested an API key from TheTVDB just to play with your tool some more and once I added TVDB support it crashes with Java heap space errors every time it runs.

I'm running in a docker on UnRAID.

I didn't see any closed issues for this, sorry if this has been covered before.

updatetool.log

Warnings in the log

I have a lot of these warnings:

[WARN ] - 2020-09-03 21:43:24 @ ImdbDatabaseSupport.updateNewAgentMetadataMapping: No external metadata provider id associated with this guid plex://movie/5d776834999c64001ec2f3c6 (MOVIE_NAME). This item will not be processed any further.

When I look at the movie in Plex, I can see an IMDB rating. Is there anything that I should do about the warning?

Errors Out

Hi,

I've done no changes to my setup, and it's been running fine before, but just recently noticed that the docker was stopped with this error in the log, any idea as to what could be wrong. I have a hard time figuring it out from the log:

`[INFO ] - 2020-12-04 13:49:37 @ ImdbDockerImplementation$ImdbBatchJob.run: Job returned ERROR : java.io.IOException: Java heap space

[ERROR] - 2020-12-04 13:49:37 @ ImdbDockerImplementation$ImdbBatchJob.run: CompletionException exception encountered...

[ERROR] - 2020-12-04 13:49:37 @ ImdbDockerImplementation$ImdbBatchJob.run: Please contact the maintainer of the application with the stacktrace below if you think this is unwanted behavior.

[ERROR] - 2020-12-04 13:49:37 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================

[ERROR] - 2020-12-04 13:49:37 @ ImdbDockerImplementation$ImdbBatchJob.run: java.util.concurrent.CompletionException: java.io.IOException: Java heap space

	at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(Unknown Source)

	at java.base/java.util.concurrent.CompletableFuture.completeThrowable(Unknown Source)

	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source)

	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

	at java.base/java.lang.Thread.run(Unknown Source)

Caused by: java.io.IOException: Java heap space

	at java.net.http/jdk.internal.net.http.HttpClientImpl.send(Unknown Source)

	at java.net.http/jdk.internal.net.http.HttpClientFacade.send(Unknown Source)

	at updatetool.common.AbstractApi.send(AbstractApi.java:49)

	at updatetool.common.TmdbApi.episodeImdbId(TmdbApi.java:100)

	at updatetool.imdb.resolvement.TmdbSeriesToImdbResolvement.lambda$resolve$4(TmdbSeriesToImdbResolvement.java:79)

	at updatetool.common.HttpRunner.run(HttpRunner.java:116)

	at updatetool.imdb.resolvement.TmdbSeriesToImdbResolvement.resolve(TmdbSeriesToImdbResolvement.java:79)

	at updatetool.imdb.resolvement.TmdbSeriesToImdbResolvement.resolve(TmdbSeriesToImdbResolvement.java:19)

	at updatetool.imdb.ImdbPipeline.lambda$analyseDatabase$0(ImdbPipeline.java:122)

	at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(Unknown Source)

	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

	at java.base/java.lang.Thread.run(Unknown Source)

Caused by: java.lang.OutOfMemoryError: Java heap space

[ERROR] - 2020-12-04 13:49:37 @ ImdbDockerImplementation$ImdbBatchJob.run: ========================================

[ERROR] - 2020-12-04 13:49:37 @ ImdbDockerImplementation$ImdbBatchJob.run: The application will terminate now.

`



Only updating Movies

Hi!

I configured my TMDB API Key and UpdateTool is only updating movies I don't know why.

I'm running it in docker and I have 1.4.5 version.

[INFO ] - 2020-11-19 17:16:54 @ ImdbDockerImplementation.bootstrap: TMDB API key enabled TMDB <=> IMDB matching. Will process TMDB backed Movie and TV Series libraries and TMDB orphans.

[INFO ] - 2020-11-19 17:16:57 @ ImdbRatingDatasetFactory.readData: 1092918 lines read.
[INFO ] - 2020-11-19 17:16:57 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Películas 4K has 323 item(s)
[INFO ] - 2020-11-19 17:16:57 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Documentales has 55 item(s)
[INFO ] - 2020-11-19 17:16:57 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Infantil Peliculas has 754 item(s)
[INFO ] - 2020-11-19 17:16:57 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Anime has 186 item(s)
[INFO ] - 2020-11-19 17:16:57 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Películas has 2930 item(s)
[INFO ] - 2020-11-19 17:16:57 @ ImdbDockerImplementation$ImdbBatchJob.run: [MOVIE] Dolby Vision has 16 item(s)

Thanks!
Regards

Wrong rating?

Having some problems with some shows, the ratings is way to low.

Eks. (There is more shows than this)

[INFO ] - 2020-03-18 13:57:30 @ ImdbTransformer.updateMetadata: Adjust rating: 7.5 -> 3.4 for Star Trek: Picard
[INFO ] - 2020-03-18 13:57:30 @ ImdbTransformer.updateMetadata: Adjust rating: 8.5 -> 5.0 for Prodigal Son

Where is the tool getting these low ratings from? :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.