github Kometa-Team/Kometa v2.5.0

6 hours ago

Changed

  • Trakt functionality has been removed from Kometa following recent changes to their support of third-party apps and updates to their API and Developer guidances. Please see the FAQ page or Announcements channel in the Discord Server for further information
  • Send explicitly configured watched filters to Tracearr's Public API v2 history endpoint, reducing history records transferred before Kometa applies its remaining filters.
  • Fetch MDBList data in cache-aware batches of up to 100 items, substantially reducing API quota usage for library operations, direct rating overlays, and overlay value filters.
  • Consolidate item-specific IDs, titles, GUIDs, and URLs in end-of-run warning and error tables, derive missing-rating groups from active overlay sources, and move missing overlay template values into the Overlay Summary.

Added

  • Add the tracearr_watched_media builder for retrieving Tracearr's distinct watched or partially watched movie, show, and episode sets using provider-ID matching and the compact Public API v2 watched-media endpoint.
  • Add the text builder for defining ordered IDs inline as a YAML scalar, literal multiline string, or list using the same identifier syntax as text_file.
  • Add url_theme and file_theme metadata attributes for uploading theme music to individual movies and shows.
  • Support the folder_location Plex search option in music-library track builders.
  • Add a FlickList connector (flicklist config attribute) with read-only flicklist_list, flicklist_list_details, flicklist_user_lists, flicklist_watchlist, flicklist_favorites, flicklist_watched, flicklist_ratings, flicklist_up_next, and flicklist_tracked builders, plus a flicklist_description summary source.
  • Add sync_to_flicklist_list and sync_missing_to_flicklist_list to sync a collection's contents to a FlickList list, mirroring sync_to_trakt_list/sync_missing_to_trakt_list.
  • Add flicklist_user as a mass rating source, using the FlickList user's personal ratings.
  • Support MDBList episode lists in episode-level collections.

Fixed

  • Report "Trakt Connection Successful (Public Mode)" instead of a plain "Successful" when a configured Trakt authorization fails to refresh, so the run log doesn't contradict the authentication error logged just above it.
  • Treat empty Plex collections and playlists as existing objects so stale smart filters can be repaired and repeated runs do not create duplicate collections; also clarify that empty or stale smart collections can cause duplicate-title warnings. #3572
  • Stop crashing with ValueError: substring not found when repairing a stale smart collection whose stored filter is empty or missing a query string.
  • Skip automatically discovered stale TMDb IDs during franchise discovery and TMDb-based Plex filtering without generating failure notifications. #3561
  • Reject malformed TVDb external IDs returned by TMDb so IMDb Defaults skip unmappable shows instead of later reporting a TVDb URL error. #3548
  • Honor disabled debug mode in terminal and Docker console output while retaining diagnostic debug records in log files. #3568
  • Continue metadata and overlay processing when a Plex request times out while removing an existing Overlay label during image updates; log the failed image update instead of aborting the library run.
  • Skip nonnumeric, non-finite, negative, and above-range provider ratings instead of sending them to Plex or rendering them in rating overlays, and leave invalid provider and overlay values uncached so they remain visible on later runs.
  • Fix CLI arguments (e.g. --config) being silently reset to their defaults on Python 3.14, where the ProcessPoolExecutor running the actual work now defaults to the forkserver multiprocessing start method on Linux instead of fork.
  • Fix the resolution Defaults overlay file selecting unpaired -Dovetail variants when a resolution or edition counterpart is disabled or unmatched, while continuing to use paired Dovetail overlays when both match; also resolve overlay suppression without list-mutation skips or allowing lower-weight group losers to suppress other overlays.
  • Prevent Plex poster operations and later same-run processing from requesting invalid metadata by reducing show reload payloads and refreshing items plus rating-key mappings after split_duplicates replaces metadata records. #3519
  • Silently ignore invalid TMDb aggregate cast/crew role entries and isolate remaining TMDb object parsing failures to the affected item so mass rating operations and subsequent overlays continue; the invalid entries come from TMDb and require no user action. #3518
  • Honor HTTP 429 Retry-After response headers across shared HTTP integrations, including Trakt rating updates, instead of immediately continuing with subsequent requests. #3525
  • Prevent delete_collections from treating configured collections with localized or custom-resolved titles as unconfigured when operations run before collections.
  • Fixed audio_codec track builder
  • Include collections removed by the delete_collections library operation, the --delete-collections CLI option, dynamic collection sync, and delete_collections_named in the run-end notification total.
  • Fix audio_language/subtitle_language plex_search filters matching zero items whenever a library has multiple Plex-reported locale variants for the requested language (e.g. de + de-DE); the variants were being AND together into an impossible filter instead of OR. Regression from #3440.
  • Accept Plex-reported language names and fall back from three-letter language codes in audio_language/subtitle_language searches, show available languages for invalid values, and display expanded language variants once in filter summaries. #3570
  • Fix episode_* ratings from producing a critical error when Trakt did not have an episode in its database
  • Fix DC-based lists in 'universe' Defaults file
  • Fix ghost progress logging (e.g. Parsing ID x/y) writing carriage-return-only output regardless of whether stdout is a terminal, which collapses an entire run into a single unbounded log line for containerized/piped deployments; ghost output is now skipped when stdout is not a TTY. Fixes #3542.
  • Fix plex_collectionless never recognizing an item as belonging to a smart collection (used by most Defaults collection files, e.g. genre, studio, audio_language), since Plex does not tag items with smart collection membership; membership is now resolved from each retained collection's actual items instead of the item's own collections tag list. Fixes #3537.
  • Fix prefetch_mdblist raising when an orphaned Season/Episode's parent Show has been deleted from Plex (item.show() returning None); such items are now skipped instead of crashing the MDBList prefetch pass.

Don't miss a new Kometa release

NewReleases is sending notifications on new releases.