Library Operations¶
There are a variety of Library Operations that can be utilized in a library.
Within each library, operations can be defined by using the operations attribute, as demonstrated below.
When not using a list under operations the whole operations value is one block.
libraries:
Movies:
collection_files:
- default: imdb
operations:
mass_critic_rating_update: tmdb
split_duplicates: true
Operation Blocks¶
You can create individual blocks of operations by using a list under operations with each item in the list being a "block" that can be individually scheduled.
libraries:
Movies:
collection_files:
- default: imdb
operations:
- schedule: weekly(friday)
mass_critic_rating_update: tmdb
- schedule: weekly(saturday)
split_duplicates: true
A Note on Data Sources¶
Several of these operations use data from external sources such as MDBList. You will need to authenticate against each service you wish to use in these operations.
Some of these sources have free and paid tiers of access. Your entire library may not be able to be updated in a single run on a free tier; you may need to make multiple runs over some number of days.
For example, MDBList's free tier is limited [at time of writing] to 1000 API requests daily. Changes in external site paid/free status and limits are not under Kometa's control.
A Note on Mass Operations¶
Several of these operations perform mass updates; these are just that, mass updates. Except as shown below, they cannot be filtered to operate on only a subset of the items in your library.
Operation Attributes¶
Assets For All¶
assets_for_all - Used to search the asset directories for images for all items in the library.¶
Attribute: assets_for_all
Accepted Values: true or false.
Assets For All Collections¶
assets_for_all_collections - Used to search the asset directories for images for all unmanaged and/or unconfigured in the library.¶
Delete Collections¶
delete_collections - Deletes collections based on a set of given attribute.¶
Attribute: delete_collections
Accepted Values: There are a few different options to determine how the delete_collections works.
managed: true | Collection must be Managed to be deleted. (collection has the Kometa label) |
managed: false | Collection must be Unmanaged to be deleted. (collection does not have the Kometa label) |
configured: true | Collection must be Configured to be deleted. (collection is in the config file of the specific Kometa run) |
configured: false | Collection must be Unconfigured to be deleted. (collection is not in the config file of the specific Kometa run) |
less: ### | Collection must contain less than the given number of items to be deleted.### is a Number greater than 0Optional value which if undefined means collections will be deleted regardless of how many items they have. |
ignore_empty_smart_collections: false | Do not apply less check to empty smart collections This allows retaining things like smart collections that show movies without subtitles or the like. |
The collection does not need to be scheduled to be considered configured and only needs to be in the config file.
Mass Genre Update¶
mass_genre_update - Updates the genres of every item in the library.¶
Attribute: mass_genre_update
Accepted Values: Source or List of sources to use in that order.
tmdb | Use TMDb for Genres. |
tvdb | Use TVDb for Genres. |
imdb | Use IMDb for Genres. |
omdb | Use IMDb through OMDb for Genres. Requires OMDB key. |
anidb | Use AniDB Main Tags for Genres. |
anidb_3_0 | Use AniDB Main Tags and All 3 Star Tags and above for Genres. |
anidb_2_5 | Use AniDB Main Tags and All 2.5 Star Tags and above for Genres. |
anidb_2_0 | Use AniDB Main Tags and All 2 Star Tags and above for Genres. |
anidb_1_5 | Use AniDB Main Tags and All 1.5 Star Tags and above for Genres. |
anidb_1_0 | Use AniDB Main Tags and All 1 Star Tags and above for Genres. |
anidb_0_5 | Use AniDB Main Tags and All 0.5 Star Tags and above for Genres. |
mal | Use MyAnimeList for Genres. Requires MyAnimeList authentication. |
mal_all | Use MyAnimeList for Genres (includes Explicit Genres, Themes and Demographics). Requires MyAnimeList authentication. |
lock | Lock all Genre Field. |
unlock | Unlock all Genre Field. |
remove | Remove all Genres and Lock all Field. |
reset | Remove all Genres and Unlock all Field. |
List of Strings for Genres. (["String 1", "String 2"]) | |
Mass Content Rating Update¶
mass_content_rating_update - Updates the content rating of every item in the library.¶
Attribute: mass_content_rating_update
Accepted Values: Source or List of sources to use in that order.
Note on mdb sources
MDBList is not a live reflection of third-party sites such as CommonSense and Trakt. The data on MDBList is often days, weeks and months out of date as it is only
periodically refreshed. As such, the data that Kometa applies using mdb_ operations applies may not be the same as you see if you visit those third-party sources
directly.
mdb | Use MDBList for Content Ratings. Requires MDBList key. |
mdb_commonsense | Use Common Sense Rating through MDBList for Content Ratings. Requires MDBList key. |
mdb_commonsense0 | Use Common Sense Rating with Zero Padding through MDBList for Content Ratings. Requires MDBList key. |
mdb_age_rating | Use MDBList Age Rating for Content Ratings. Requires MDBList key. |
mdb_age_rating0 | Use MDBList Age Rating with Zero Padding for Content Ratings. Requires MDBList key. |
omdb | Use IMDb through OMDb for Content Ratings. Requires OMDB key. |
mal | Use MyAnimeList for Content Ratings. Requires MyAnimeList authentication. |
lock | Lock Content Rating Field. |
unlock | Unlock Content Rating Field. |
remove | Remove Content Rating and Lock Field. |
reset | Remove Content Rating and Unlock Field. |
| Any String for Content Ratings. | |
Mass Original Title Update¶
mass_original_title_update - Updates the original title of every item in the library.¶
Attribute: mass_original_title_update
Accepted Values: Source or List of sources to use in that order
anidb | Use AniDB Main Title for Original Titles. |
anidb_official | Use AniDB Official Title based on the language attribute in the config file for Original Titles. |
mal | Use MyAnimeList Main Title for Original Titles. Requires MyAnimeList authentication. |
mal_english | Use MyAnimeList English Title for Original Titles. Requires MyAnimeList authentication. |
mal_japanese | Use MyAnimeList Japanese Title for Original Titles. Requires MyAnimeList authentication. |
lock | Lock Original Title Field. |
unlock | Unlock Original Title Field. |
remove | Remove Original Title and Lock Field. |
reset | Remove Original Title and Unlock Field. |
| Any String for Original Titles. | |
Mass Studio Update¶
mass_studio_update - Updates the studio of every item in the library.¶
Attribute: mass_studio_update
Accepted Values: Source or List of sources to use in that order
anidb | Use AniDB Animation Work for Studio. |
mal | Use MyAnimeList Studio for Studio. Requires MyAnimeList authentication. |
tmdb | Use TMDb Studio for Studio. |
lock | Lock Studio Field. |
unlock | Unlock Studio Field. |
remove | Remove Studio and Lock Field. |
reset | Remove Studio and Unlock Field. |
| Any String for Studio. | |
Mass Originally Available Update¶
mass_originally_available_update - Updates the originally available date of every item in the library.¶
Tip
As plex does not allow this field to be empty, using remove or reset will set the date to the Plex default date, which is 1969-12-31.
Attribute: mass_originally_available_update
Accepted Values: Source or List of sources to use in that order.
Note on mdb sources
MDBList is not a live reflection of third-party sites such as CommonSense and Trakt. The data on MDBList is often days, weeks and months out of date as it is only
periodically refreshed. As such, the data that Kometa applies using mdb_ operations applies may not be the same as you see if you visit those third-party sources
directly.
tmdb | Use TMDb Release Date. |
tvdb | Use TVDb Release Date. |
omdb | Use IMDb Release Date through OMDb. Requires OMDB key. |
mdb | Use MDBList Release Date. Requires MDBList key. |
mdb_digital | Use MDBList Digital Release Date. Requires MDBList key. |
anidb | Use AniDB Release Date. |
mal | Use MyAnimeList Release Date. Requires MyAnimeList authentication. |
lock | Lock Originally Available Field. |
unlock | Unlock Originally Available Field. |
remove | Remove Originally Available and Lock Field. |
reset | Remove Originally Available and Unlock Field. |
Any String in the Format: YYYY-MM-DD for Originally Available. (2022-05-28) | |
Mass Added At Update¶
mass_added_at_update - Updates the added at date of every item in the library.¶
Attribute: mass_added_at_update
Accepted Values: Source or List of sources to use in that order.
Note on mdb sources
MDBList is not a live reflection of third-party sites such as CommonSense and Trakt. The data on MDBList is often days, weeks and months out of date as it is only
periodically refreshed. As such, the data that Kometa applies using mdb_ operations applies may not be the same as you see if you visit those third-party sources
directly.
tmdb | Use TMDb Release Date. |
tvdb | Use TVDb Release Date. |
omdb | Use IMDb Release Date through OMDb. Requires OMDB key. |
mdb | Use MDBList Release Date. Requires MDBList key. |
mdb_digital | Use MDBList Digital Release Date. Requires MDBList key. |
anidb | Use AniDB Release Date. |
mal | Use MyAnimeList Release Date. Requires MyAnimeList authentication. |
lock | Lock Added At Field. |
unlock | Unlock Added At Field. |
remove | Remove Added At and Lock Field. |
reset | Remove Added At and Unlock Field. |
Any String in the Format: YYYY-MM-DD for Added At. (2022-05-28) | |
Mass Rating Update¶
mass_***_rating_update - Updates the audience/critic/user rating of every item in the library.¶
Important Note
This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update Operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDb ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what Kometa can do with these ratings can be found here.
Attribute: mass_audience_rating_update/mass_critic_rating_update/mass_user_rating_update
Accepted Values: Source or List of sources to use in that order.
Note on mdb sources
MDBList is not a live reflection of third-party sites such as CommonSense and Trakt. The data on MDBList is often days, weeks and months out of date as it is only
periodically refreshed. As such, the data that Kometa applies using mdb_ operations applies may not be the same as you see if you visit those third-party sources
directly.
anidb_average | Use AniDB Average. |
anidb_rating | Use AniDB Rating. |
anidb_score | Use AniDB Review Score. |
imdb | Use IMDb Rating. |
mal | Use MyAnimeList Score. Requires MyAnimeList authentication. |
mdb_average | Use MDBList Average Score. Requires MDBList key. |
mdb_imdb | Use IMDb Rating through MDBList. Requires MDBList key. |
mdb_letterboxd | Use Letterboxd Rating through MDBList. Requires MDBList key. |
mdb_metacritic | Use Metacritic Rating through MDBList. Requires MDBList key. |
mdb_metacriticuser | Use Metacritic User Rating through MDBList. Requires MDBList key. |
mdb_myanimelist | Use MyAnimeList Rating through MDBList. Requires MDBList key. |
mdb_tmdb | Use TMDb Rating through MDBList. Requires MDBList key. |
mdb_tomatoes | Use Rotten Tomatoes Rating through MDBList. Requires MDBList key. |
mdb_tomatoesaudience | Use Rotten Tomatoes Audience Rating through MDBList. Requires MDBList key. |
mdb_trakt | Use Trakt Rating through MDBList. Requires MDBList key. |
mdb | Use MDBList Score. Requires MDBList key. |
omdb_metascore | Use Metacritic Metascore through OMDb. Requires OMDB key. |
omdb_tomatoes | Use Rotten Tomatoes rating through OMDb. Requires OMDB key. |
omdb | Use IMDbRating through OMDb. Requires OMDB key. |
plex_imdb | Use IMDB Rating through Plex. |
plex_tmdb | Use TMDB Rating through Plex. |
plex_tomatoes | Use Rotten Tomatoes Rating through Plex. |
plex_tomatoesaudience | Use Rotten Tomatoes Audience Rating through Plex. |
tmdb | Use TMDb Rating. |
trakt_user | Use Trakt User's Personal Rating. Requires Trakt authentication. |
trakt | Use Trakt Rating. Requires Trakt authentication. |
lock | Lock Rating Field. |
unlock | Unlock Rating Field. |
remove | Remove Rating and Lock Field. |
reset | Remove Rating and Unlock Field. |
| Any Number between 0.0-10.0 for Ratings. | |
Mass Episode Rating Update¶
mass_episode_***_rating_update - Updates the audience/critic/user rating of every episode in the library.¶
Important Note
This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update Operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDb ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what Kometa can do with these ratings can be found here.
Attribute: mass_episode_audience_rating_update/mass_episode_critic_rating_update/mass_episode_user_rating_update
Accepted Values: Source or List of sources to use in that order.
imdb | Use IMDb Rating. |
plex_imdb | Use IMDB Rating through Plex. |
plex_tmdb | Use TMDB Rating through Plex. |
tmdb | Use TMDb Rating. |
trakt | Use Trakt Rating. Requires Trakt authentication. |
lock | Lock Rating Field. |
unlock | Unlock Rating Field. |
remove | Remove Rating and Lock Field. |
reset | Remove Rating and Unlock Field. |
| Any Number between 0.0-10.0 for Ratings. | |
Mass Poster Update¶
mass_poster_update - Updates the poster of every item in the library.¶
plex if the given option fails.
Assets will be used over anything else.
Warning
When used in combination with Overlays, this could cause Kometa to reset the poster and then reapply all overlays on each run, which will result in image bloat.
Attribute: mass_poster_update
Accepted Values:
source | Source of the poster update. | tmdb, plex, lock, or unlock |
language | Override the TMDb language for poster fetching. Only applies when source is tmdb. Ignored for other sources. | ISO 639-1 language code (e.g. en, de, xx for textless) |
seasons | Update season posters while updating shows. Default: true | true or false |
episodes | Update episode posters while updating shows. Default: true | true or false |
ignore_locked | Skip updating image if the poster field is locked Default: false | true or false |
ignore_overlays | Skip updating image if the current image has an Overlay Default: false | true or false |
- The poster field will be locked if a previous
mass_poster_updatewas run or if an Overlay has been applied. - Kometa checks for the
Overlaylabel on the item in Plex to determine if an Overlay is applied.
Example
Mass Background Update¶
mass_background_update - Updates the background of every item in the library.¶
plex if the given option fails.
Assets will be used over anything else.
Attribute: mass_background_update
Accepted Values:
source | Source of the background update. | tmdb, plex, lock, or unlock |
language | Override the TMDb language for background fetching. Only applies when source is tmdb. Ignored for other sources. | ISO 639-1 language code (e.g. en, de, xx for textless) |
seasons | Update season backgrounds while updating shows. Default: true | true or false |
episodes | Update episode backgrounds while updating shows. Default: true | true or false |
ignore_locked | Skip updating image if the background field is locked Default: false | true or false |
- The background field will be locked if a previous
mass_background_updatewas run.
Mass IMDb Parental Labels¶
mass_imdb_parental_labels - Adds IMDb Parental labels of every item in the library.¶
Attribute: mass_imdb_parental_labels
Accepted Values:
none | Apply all Parental Labels with a value of None, Mild, Moderate, or Severe. |
mild | Apply all Parental Labels with a value of Mild, Moderate, or Severe. |
moderate | Apply all Parental Labels with a value of Moderate or Severe. |
severe | Apply all Parental Labels with a value of Severe. |
Mass Collection Mode¶
mass_collection_mode - Updates the Collection Mode of every item in the library.¶
Attribute: mass_collection_mode
Accepted Values:
default | Library default. |
hide | Hide Collection. |
hide_items | Hide Items in this Collection. |
show_items | Show this Collection and its Items. |
Update Blank Track Titles¶
update_blank_track_titles - Updates blank track titles of every item in the library.¶
Remove Title Parentheses¶
remove_title_parentheses - Removes title parentheses of every item in the library.¶
Split Duplicates¶
split_duplicates - Splits all duplicate items found in this library.¶
Radarr Add All¶
radarr_add_all - Adds every item in the library to Radarr.¶
Warning
The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Radarr
paths you can use the plex_path and radarr_path Radarr details to convert the paths.
Attribute: radarr_add_all
Accepted Values: true or false.
Radarr Remove By Tag¶
radarr_remove_by_tag - Removes every item from Radarr with the Tags given.¶
Sonarr Add All¶
sonarr_add_all - Adds every item in the library to Sonarr.¶
Warning
The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Sonarr
paths you can use the plex_path and sonarr_path Sonarr details to convert the paths.
Attribute: sonarr_add_all
Accepted Values: true or false.
Sonarr Remove By Tag¶
sonarr_remove_by_tag - Removes every item from Sonarr with the Tags given.¶
Genre Mapper¶
genre_mapper - Maps genres in your library to be changed to other genres.¶
Attribute: genre_mapper
Accepted Values: Each attribute under genre_mapper is a separate mapping and has two parts.
key | Genre you want mapped to the value | Action/Adventure, Action & Adventure in the example below. |
value | What the genre will end up as | Action in the example below. |
Example
This example will change go through every item in your library and change the genre Action/Adventure or
Action & Adventure to Action and Romantic Comedy to Comedy.
libraries:
Movies:
# Metadata and Overlay files here
operations:
genre_mapper:
"Action/Adventure": Action
"Action & Adventure": Action
Romantic Comedy: Comedy
To just Remove a Genre without replacing it just set the Genre to nothing like this.
libraries:
Movies:
# Metadata and Overlay files here
operations:
genre_mapper:
"Action/Adventure": Action
"Action & Adventure": Action
Romantic Comedy:
The above example will change go through every item in your library and change the genre Action/Adventure or
Action & Adventure to Action and remove every instance of the Genre Romantic Comedy.
Content Rating Mapper¶
content_rating_mapper - Maps content ratings in your library to be changed to other content ratings.¶
Attribute: content_rating_mapper
Accepted Values: Each attribute under content_rating_mapper is a separate mapping and has two parts.
key | Content rating you want mapped to the value. | PG, PG-13 in the example below. |
value | What the content rating will end up as. | Y-10 in the example below. |
Example
This example will change go through every item in your library and change the content rating PG or PG-13 to
Y-10 and R to Y-17.
libraries:
Movies:
# Metadata and Overlay files here
operations:
content_rating_mapper:
PG: Y-10
"PG-13": Y-10
R: Y-17
To just Remove a content rating without replacing it just set the content rating to nothing like this.
libraries:
Movies:
# Metadata and Overlay files here
operations:
content_rating_mapper:
PG: Y-10
"PG-13": Y-10
R:
The above example will change go through every item in your library and change the content rating
PG or PG-13 to Y-10 and remove every instance of the content rating R.
Metadata Backup¶
metadata_backup - Creates/Maintains a Kometa Metadata File for the library.¶
metadata mapping based on the library's items locked attributes.
If you point to an existing Metadata File then Kometa will sync the changes to the file, so you won't lose non plex changes in the file.
Attribute: metadata_backup
Accepted Values: There are a few different options to determine how the metadata_backup works.
path | Path to where the metadata will be saved/maintained. Default: <<library_name>>_Metadata_Backup.yml in your config folderValues: Path to Metadata File. |
exclude | Exclude all listed attributes from being saved in the Collection File. Values: Comma-separated string or list :material-information-outline:{ data-tooltip data-tooltip-id="tippy-yaml-lists" } of attributes. |
sync_tags | All Tag Attributes will have the .sync option and blank attribute will be added to sync.Default: falseValues: true or false. |
add_blank_entries | Will add a line for entries that have no metadata changes. Default: trueValues: true or false. |
Example
The resulting Metadata File can be used like any other Metadata File in Kometa, for example, you can use it to apply metadata to a new library or to restore metadata to a library.
Plex Bulk Edits Batch Size¶
plex_bulk_edit_batch_size - Breaks up processing of operations into chunks of this many items.¶
If no value is set, the entire library is processed in one batch.
For example, if your Movies library has 1000 items, by default all of them will be processed at once.
If plex_bulk_edit_batch_size=100, then 100 items will be processed at once.
Attribute: plex_bulk_edit_batch_size
Accepted Values: None, or any number.