Media Guide

Media Organization Guide

A conservative SMB and WebDAV layout that Vanto, Jellyfin, and Kodi can identify reliably.

Last updated: August 8, 2026For the current Vanto release

Quick rules

  • Use a Title (Year) folder for each movie, and give its video, NFO, and subtitles the same base name.
  • Use Show (Year)/Season 01/Show - S01E01 for episodes.
  • NFO files are optional. Without one, Vanto builds the media structure from folder and file names.
  • Place artwork in the folder defined for the item it describes. Vanto generates a video-frame image only when no suitable artwork exists.
  • After changing NFO, artwork, or subtitles, refresh the current source from Vanto Home.
Recommended model

The directory structure says what the media is; NFO controls how it is presented; artwork and subtitles remain independent sidecar files. Do not use NFO to rewrite season, episode, or folder relationships.

Minimum layout without NFO

Media/
├── Movies/
│   └── Arrival (2016)/
│       └── Arrival (2016).mkv
└── TV Shows/
    └── Example Show (2026)/
        ├── Season 01/
        │   ├── Example Show - S01E01.mkv
        │   └── Example Show - S01E02.mkv
        └── Season 02/
            └── Example Show - S02E01.mkv

Media can be indexed without NFO, artwork, or subtitles. Keep one main video in a movie folder. Put extras in an Extras subfolder so they are not mistaken for the feature. Including the release year greatly reduces ambiguous matches.

Complete movie example

Movies/
└── Arrival (2016)/
    ├── Arrival (2016).mkv
    ├── Arrival (2016).nfo
    ├── poster.jpg
    ├── fanart.jpg
    └── Arrival (2016).en.forced.srt

Prefer an NFO whose base name matches the video. Vanto also reads an existing movie.nfo, but matching names keep ownership clear when multiple video versions are present.

<?xml version="1.0" encoding="UTF-8"?>
<movie>
  <title>Arrival</title>
  <originaltitle>Arrival</originaltitle>
  <year>2016</year>
  <plot>Movie summary</plot>
  <genre>Science Fiction</genre>
  <rating>7.9</rating>
  <uniqueid type="tmdb" default="true">329865</uniqueid>
  <actor>
    <name>Amy Adams</name>
    <role>Louise Banks</role>
    <thumb>amy-adams.jpg</thumb>
  </actor>
</movie>

Complete show example

TV Shows/
└── Example Show (2026)/
    ├── tvshow.nfo
    ├── poster.jpg
    ├── fanart.jpg
    ├── season01-poster.jpg
    ├── season01-fanart.jpg
    └── Season 01/
        ├── season.nfo
        ├── poster.jpg
        ├── fanart.jpg
        ├── Example Show - S01E01.mkv
        ├── Example Show - S01E01.nfo
        ├── Example Show - S01E01-thumb.jpg
        └── Example Show - S01E01.en.forced.ass

This layout keeps both common season conventions:

  • Jellyfin and Vanto: read season.nfo, poster.jpg, and fanart.jpg inside the season folder.
  • Kodi: reads season names and summaries from the show-level tvshow.nfo, and show-level files such as season01-poster.jpg and season01-fanart.jpg.

Both conventions describe the same season and must not contain conflicting facts.

Show: tvshow.nfo

<?xml version="1.0" encoding="UTF-8"?>
<tvshow>
  <title>Example Show</title>
  <originaltitle>Example Show</originaltitle>
  <year>2026</year>
  <plot>Show summary</plot>
  <genre>Drama</genre>
  <uniqueid type="tvdb" default="true">123456</uniqueid>
  <namedseason number="1">Season One</namedseason>
  <seasonplot season="1">Season summary</seasonplot>
</tvshow>

Season: Season 01/season.nfo

<?xml version="1.0" encoding="UTF-8"?>
<season>
  <title>Season One</title>
  <seasonnumber>1</seasonnumber>
  <plot>Season summary</plot>
</season>

Episode: NFO matching the video

<?xml version="1.0" encoding="UTF-8"?>
<episodedetails>
  <title>Episode One</title>
  <showtitle>Example Show</showtitle>
  <season>1</season>
  <episode>1</episode>
  <aired>2026-01-01</aired>
  <plot>Episode summary</plot>
</episodedetails>

Artwork naming

ItemRecommended filesLocation
Movieposter.jpg, fanart.jpgMovie folder
Showposter.jpg, fanart.jpgShow root
Season (Jellyfin / Vanto)poster.jpg, fanart.jpgSeason 01
Season (Kodi)season01-poster.jpg, season01-fanart.jpgShow root
EpisodeExample Show - S01E01-thumb.jpgBeside the episode video

Use JPG or PNG. Relative image names in NFO must match real files exactly. Vanto does not guess by similar names; when identity is uncertain it leaves artwork empty rather than showing the wrong image.

External subtitles

Arrival (2016).mkv
Arrival (2016).en.srt
Arrival (2016).en.forced.ass
Arrival (2016).zh-Hant.vtt
  • Use language tags such as zh-Hans, zh-Hant, en, or ja.
  • Common suffixes such as forced may be retained. Subtitle selection in the player remains authoritative.
  • Supported text formats include SRT, ASS, SSA, VTT, and SMI.
  • Do not list external subtitles in NFO. They remain independent files bound to a specific video.

Editing in Vanto

On iPhone, iPad, and Mac, Edit Info on SMB and WebDAV detail pages can create an NFO for an item that does not have one, or update metadata and artwork for a movie, show, selected season, or selected episode. After a successful save, Vanto refreshes the affected folder and renders the updated unified media facts. Apple TV reads and displays these files but does not expose remote editing.

Write scope

Each save changes only the item selected in the editor and never cascades into unrelated seasons or episodes. Confirm that the NAS account can create, replace, rename, and delete files in the target folder.

Checks and compatibility

  • Use UTF-8 XML and the correct root element: movie, tvshow, season, or episodedetails.
  • Each NFO may be up to 2 MB; Vanto reads up to 32 cast members.
  • Unknown XML elements are ignored and do not block scanning or playback.
  • If changes do not appear, check names, XML, case, artwork location, and write permissions before refreshing the source.

This page documents the conservative intersection of Vanto, Jellyfin, and Kodi. For extensions, see Jellyfin NFO, Jellyfin Movies, Jellyfin Shows, Kodi NFO files, and Kodi Artwork.