Fix Jellyfin Wrong Metadata: Posters, TMDB Matching & NFO Override (2026 Guide)

Fix Jellyfin Wrong Metadata: Posters, TMDB Matching & NFO Override (2026 Guide)

Jellyfin Metadata Guide: Fix Wrong Metadata, NFO Files & Artwork (2026)

Metadata is what transforms a folder of video files into a beautiful media library. When it goes wrong - wrong posters, misidentified movies, missing episode descriptions - it is frustrating. This guide covers every method to fix, customize, and automate metadata in Jellyfin.


How Jellyfin Fetches Metadata

When you add media to a library, Jellyfin:

  1. Reads the filename to identify the title and year
  2. Searches TMDB (movies) or TVDB/TMDB (TV shows) for a match
  3. Downloads title, description, cast, ratings, posters, and backdrops
  4. Stores everything in /config/metadata/

The quality of this process depends entirely on your file naming.


File Naming: The Foundation

Jellyfin is strict about naming. Follow these formats exactly:

Movies

/movies/
  The Dark Knight (2008)/
    The Dark Knight (2008).mkv
  Dune Part Two (2024)/
    Dune Part Two (2024).mkv
  • Always include the year in parentheses
  • Put each movie in its own folder
  • Avoid special characters in filenames

TV Shows

/tv/
  Breaking Bad/
    Season 01/
      Breaking Bad - S01E01 - Pilot.mkv
      Breaking Bad - S01E02 - Cat's in the Bag.mkv
    Season 02/
      Breaking Bad - S02E01 - Seven Thirty-Seven.mkv
  • Use S##E## format for episodes
  • Season folders are optional but recommended

Fixing Wrong Metadata: Identify Feature

When Jellyfin picks the wrong movie or show:

  1. Navigate to the item in Jellyfin
  2. Click the three-dot menuIdentify
  3. Search by title, year, or TMDB/TVDB ID
  4. Select the correct match
  5. Jellyfin re-fetches all metadata from the correct source

Using TMDB/TVDB IDs for exact matching

For ambiguous titles (remakes, foreign films), use the database ID directly:

The Fly (1986) {tmdb-4511}/
  The Fly (1986) {tmdb-4511}.mkv

Jellyfin reads the {tmdb-XXXX} tag in the folder name and matches exactly - no guessing.


NFO Files: Local Metadata Override

NFO files let you store metadata locally alongside your media files. Jellyfin reads them and uses them instead of (or in addition to) online sources.

Movie NFO example

Create Movie Name (2024).nfo in the movie folder:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<movie>
  <title>Movie Name</title>
  <year>2024</year>
  <plot>Your custom description here.</plot>
  <tmdbid>12345</tmdbid>
  <genre>Action</genre>
  <genre>Thriller</genre>
  <director>Director Name</director>
  <rating>8.5</rating>
</movie>

TV Show NFO

Create tvshow.nfo in the show root folder:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<tvshow>
  <title>Show Name</title>
  <tvdbid>12345</tvdbid>
  <plot>Show description.</plot>
</tvshow>

Enable NFO reading in Jellyfin

Dashboard → Libraries → [Library] → Edit → Metadata readers → Enable Nfo

Set NFO as the first reader to prioritize local metadata over online sources.


Custom Artwork

JellyWatchTry JellyWatch — Your Jellyfin companion, everywhere.

Jellyfin supports local artwork files placed alongside your media.

Supported artwork files

FilePurpose
poster.jpgMovie/show poster
backdrop.jpgBackground image
banner.jpgWide banner
thumb.jpgThumbnail
logo.pngTransparent logo
season01-poster.jpgSeason-specific poster

Place these files in the same folder as your media. Jellyfin detects them automatically on the next scan.

Uploading artwork via the UI

  1. Navigate to any item
  2. Three-dot menu → Edit Images
  3. Upload a custom image or paste an image URL
  4. Set as primary poster

Bulk Metadata Management with Jellyfin

Refresh all metadata

For a full library refresh:

  1. Dashboard → Libraries → [Library] → three-dot menu → Refresh Metadata
  2. Choose: Replace all metadata / Replace missing only
  3. This re-fetches everything from TMDB/TVDB

Warning: "Replace all metadata" overwrites any manual edits. Use "Replace missing only" to preserve customizations.

Lock metadata to prevent overwrites

After manually fixing an item, lock it:

  1. Edit the item → scroll to bottom → Lock each field you want to preserve
  2. Locked fields are never overwritten by automatic refreshes

Metadata Providers: Configuration

Dashboard → Libraries → [Library] → Edit → Metadata providers

Recommended order for movies

  1. TMDB (primary - best coverage)
  2. OMDB (secondary - adds Rotten Tomatoes scores)
  3. Nfo (local override)

Recommended order for TV shows

  1. TVDB (primary - best episode data)
  2. TMDB (secondary - better artwork)
  3. Nfo (local override)

Automating Metadata with Kometa

Kometa (formerly Plex Meta Manager) works with Jellyfin to:

  • Apply custom collections automatically (e.g., "Marvel Cinematic Universe", "Best of 2024")
  • Set custom posters from MDBList or TMDB
  • Add overlays (4K badge, HDR label, ratings)
  • Sync ratings from Trakt, IMDb, and Letterboxd
# kometa config.yml snippet
libraries:
  Movies:
    metadata_path:
      - pmm: basic
      - pmm: imdb
    overlay_path:
      - pmm: resolution
      - pmm: ratings

Common Metadata Issues

IssueCauseFix
Wrong movie matchedAmbiguous titleUse {tmdb-ID} in folder name
Missing episode infoWrong naming formatRename to S##E## format
Poster not updatingMetadata lockedUnlock the image field
Foreign film wrong languageTMDB language settingSet preferred metadata language in library settings
Anime wrong matchTVDB vs AniDB conflictUse AniDB plugin for anime libraries
Artwork blurryLow-res sourceUpload custom high-res artwork manually

FAQ

Where does Jellyfin store metadata? In /config/metadata/ (Docker) or /var/lib/jellyfin/metadata/ (native). This folder should be included in your backups.

Can I use both NFO files and TMDB? Yes. Configure the provider order - NFO first means local data takes priority, TMDB fills in missing fields.

How do I fix metadata for an entire season at once? Navigate to the season → three-dot menu → Refresh Metadata → applies to all episodes in that season.

Does refreshing metadata reset watch history? No. Watch history is stored separately from metadata.


Your library looks great - now monitor who's watching it. Download JellyWatch on Google Play - active sessions, user activity, and server health for Jellyfin on Android.

On Emby? Download EmbyWatch on Google Play - the same library monitoring experience for Emby servers.

Comments

No comments yet. Be the first to share your thoughts.

Leave a comment

Never displayed publicly.
0 / 2000 · Supports limited Markdown: **bold**, *italic*, `code`, [link](url), lists, > quote.