Skip to content

Config File

Kometa uses a YAML configuration file; this file contains settings that determine how Kometa behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other third-party services via API.

By default, and unless otherwise stated, Kometa looks for the configuration file at /config/config.yml.

A template Configuration Template File can be found in the GitHub Repo.

If Kometa cannot find the config.yml at the default location, it will attempt to rename config.yml.template for the user. If the template file cannot be found, Kometa will attempt to download a copy from the GitHub repository in line with the user's current branch. If this also fails, the user will have to download the Configuration Template File from the above link and manually rename it to config.yml.

This table outlines the third-party services (also known as Connectors) that Kometa can make use of. Each service has specific requirements for setup that can be found by clicking the links within the table or in the sidebar.

Connectors

Although most connectors are not required for core Kometa functionality, some (such as Trakt and MDBList) are commonly used for third-party lists, so we would recommend configuring This connector.

  1. This connector can be configured either at the root level of the Config File, or per-library – examples are available on the connector's page.
  2. This connector can be configured either at the root level of the Config File, or per-library – examples are available on the connector's page.
  3. This connector can be configured either at the root level of the Config File, or per-library – examples are available on the connector's page.
  4. This connector can be configured either at the root level of the Config File, or per-library – examples are available on the connector's page.
  5. This connector can be configured either at the root level of the Config File, or per-library – examples are available on the connector's page.

Configuration Template File Example

The below in an extract of the config.yml.template and is the initial values that are set if you follow any of the installation guides.

config.yml.template
## This file is a template remove the .template to use the file

## Plex and TMDb are the two connections which are required for the script to run
plex:                                # Can be individually specified per library as well; REQUIRED for the script to run
  url: http://192.168.1.12:32400
  token: Enter Plex Token
  timeout: 60
  db_cache: 40
  clean_bundles: false
  empty_trash: false
  optimize: false
  verify_ssl: true
tmdb:
  apikey: Enter TMDb API Key
  cache_expiration: 60
  language: en
  region:

## At least one library has to be configured for the script to do anything meaningful
libraries:                           # This is called out once within the config.yml file
  Movies:                            # These are names of libraries in your Plex
    remove_overlays: false           # Set this to true to remove all overlays
    collection_files:
    - default: basic                 # This is a file within Kometa's defaults folder
    - default: imdb                  # This is a file within Kometa's defaults folder
    # see the wiki for how to use local files, folders, URLs, or files from git
    overlay_files:
    - default: ribbon                # This is a file within Kometa's defaults folder
    # see the wiki for how to use local files, folders, URLs, or files from git
  TV Shows:
    remove_overlays: false           # Set this to true to remove all overlays
    collection_files:
    - default: basic                 # This is a file within Kometa's defaults folder
    - default: imdb                  # This is a file within Kometa's defaults folder
    # see the wiki for how to use local files, folders, URLs, or files from git
    overlay_files:
    - default: ribbon                # This is a file within Kometa's defaults folder
    # see the wiki for how to use local files, folders, URLs, or files from git
  Anime:
    collection_files:
      - default: basic               # This is a file within Kometa's defaults folder
      - default: anilist             # This is a file within Kometa's defaults folder
      # see the wiki for how to use local files, folders, URLs, or files from git
  Music:
    collection_files:
      - file: config/Music.yml       # This is a local file THAT YOU MIGHT CREATE
playlist_files:
  - default: playlist                # This is a file within Kometa's defaults folder
    template_variables:
      libraries: Movies, TV Shows    # list of libraries that you want the Kometa Defaults playlists to look at
  # see the wiki for how to use local files, folders, URLs, or files from git
settings:
  run_order:
  - operations
  - metadata
  - collections
  - overlays
  cache: true
  cache_expiration: 60
  asset_directory:
  - config/assets
  asset_folders: true
  asset_depth: 0
  create_asset_folders: false
  prioritize_assets: false
  dimensional_asset_rename: false
  download_url_assets: false
  show_missing_season_assets: false
  show_missing_episode_assets: false
  show_asset_not_needed: true
  sync_mode: append
  minimum_items: 1
  default_collection_order: release
  delete_below_minimum: true
  delete_not_scheduled: false
  run_again_delay: 2
  missing_only_released: false
  only_filter_missing: false
  show_unmanaged: true
  show_unconfigured: true
  show_filtered: false
  show_unfiltered: false
  show_options: true
  show_missing: true
  show_missing_assets: true
  save_report: false
  tvdb_language: eng
  ignore_ids:
  ignore_imdb_ids:
  item_refresh_delay: 0
  playlist_sync_to_users:
  playlist_exclude_users:
  playlist_report: false
  verify_ssl: true
  custom_repo:
  overlay_artwork_filetype: webp_lossy
  overlay_artwork_quality: 90
webhooks:                            # Can be individually specified per library as well
  changes:
  delete:
  error:
  run_end:
  run_start:
  version:
tautulli:                            # Can be individually specified per library as well
  url: http://192.168.1.12:8181
  apikey: Enter Tautulli API Key
github:
  token: Enter GitHub Personal Access Token
omdb:
  apikey: Enter OMDb API Key
  cache_expiration: 60
mdblist:
  apikey: Enter MDBList API Key
  cache_expiration: 60
notifiarr:
  apikey: Enter Notifiarr API Key
gotify:
  url: http://192.168.1.12:80
  token: Enter Gotify Token
ntfy:
  url: http://192.168.1.12:80
  token: Enter ntfy Access Token
  topic: Enter ntfy Topic
anidb:                               # Not required for AniDB builders unless you want mature content
  username: Enter AniDB Username
  password: Enter AniDB Password
  cache_expiration: 60
  client: Enter AniDB Client
  language: en
  version: 1
radarr:                              # Can be individually specified per library as well
  url: http://192.168.1.12:7878
  token: Enter Radarr API Key
  add_missing: false
  add_existing: false
  upgrade_existing: false
  monitor_existing: false
  root_folder_path: "S:/Movies"
  monitor: true
  availability: announced
  quality_profile: HD-1080p
  tag:
  search: false
  radarr_path:
  plex_path:
  ignore_cache: false
sonarr:                              # Can be individually specified per library as well
  url: http://192.168.1.12:8989
  token: Enter Sonarr API Key
  add_missing: false
  add_existing: false
  upgrade_existing: false
  monitor_existing: false
  root_folder_path: "S:/TV Shows"
  monitor: all
  quality_profile: HD-1080p
  language_profile: English
  series_type: standard
  season_folder: true
  tag:
  search: false
  cutoff_search: false
  sonarr_path:
  plex_path:
  ignore_cache: false
trakt:
  client_id: Enter Trakt Client ID
  client_secret: Enter Trakt Client Secret
  pin:
  authorization:
    # authorization section is autofilled by the script
    access_token:
    created_at:
    expires_in:
    refresh_token:
    scope: public
    token_type:
mal:
  client_id: Enter MyAnimeList Client ID
  client_secret: Enter MyAnimeList Client Secret
  cache_expiration: 60
  localhost_url:
  authorization:
    # authorization section is autofilled by the script
    access_token:
    expires_in:
    refresh_token:
    token_type: