How Kodi Indexes and Scrapes Raw VOB Files
Managing a digital movie collection stored in raw VOB format presents
unique challenges due to how DVD structures split video across multiple
files. This article explains the technical process Kodi uses to
identify, index, and scrape metadata for VOB archives, whether they are
arranged in standard DVD VIDEO_TS directory structures or
stored as loose individual video files, and details best practices for
seamless library integration.
Understanding VOB Files in Kodi
VOB (Video Object) is the core container format used on DVD-Video
discs. In an uncompressed or raw DVD rip, feature-length movies are
rarely contained within a single file. Instead, the DVD specification
splits data into consecutive 1 GB segments (such as
VTS_01_1.VOB, VTS_01_2.VOB, and
VTS_01_3.VOB) alongside accompanying control files like
.IFO and .BUP.
Kodi approaches VOB files in two distinct ways depending on their storage structure: as part of a complete DVD structure or as standalone video files.
Scraping Standard DVD
Structures (VIDEO_TS)
When an archive preserves the original DVD folder hierarchy, Kodi
does not index every individual .VOB file as an independent
movie. Instead, it recognizes the overall directory as a single cohesive
media item.
- Folder Hierarchy Recognition: Kodi's scanner
monitors for the presence of a
VIDEO_TSfolder or accompanyingVIDEO_TS.IFOandVTS_XX_0.IFOfiles. When these are detected, Kodi's video engine flags the directory as a DVD image. - Metadata Matching: By default, Kodi evaluates the
name of the folder containing the
VIDEO_TSdirectory (or the parent folder itself if the files sit at root level) to perform the scraper lookup against configured databases like The Movie Database (TMDb). For example, a path likeMovies/The Matrix (1999)/VIDEO_TS/prompts the scraper to search for "The Matrix (1999)". - Database Entry and Playback Linking: Kodi creates a
single record in its internal SQLite database
(
MyVideosXX.db). Rather than pointing to the first video segment (VTS_01_1.VOB), the library record points toVIDEO_TS.IFO. This instructs Kodi’s built-in player (VideoPlayer) to launch the DVD navigation engine, allowing full access to menus, audio tracks, subtitles, and seamless playback across the split VOB segments.
Scraping Loose or Standalone VOB Files
If the raw archive consists of extracted, merged, or renamed single
.VOB files without the surrounding DVD navigation files
(e.g., Gladiator (2000).vob), Kodi treats them identically
to common video containers like .MKV or
.MP4.
- Filename Evaluation: The scraper cleans up common scene tags, resolutions, and codec labels from the filename based on Kodi’s internal regex definitions.
- API Query: The cleaned string and year are dispatched to the designated scraper to fetch plot summaries, cast lists, ratings, and artwork.
- File Stacking: If a movie remains split into parts
outside of a DVD folder (for instance,
Movie Name (2001) - pt1.vobandMovie Name (2001) - pt2.vob), Kodi's file-stacking mechanism links them sequentially into a single library entry, playing the parts back-to-back automatically.
Improving VOB Indexing Accuracy
To prevent misidentifications, duplicate entries, or scraper failures with raw VOB media, adhere to the following rules:
- Keep Folder Structures Intact: Ensure the complete
VIDEO_TSfolder—including all.IFOand.BUPfiles—is preserved. Missing.IFOfiles force Kodi to guess the sequence, often leading to each 1 GB chunk appearing as an individual, unlinked title. - Adopt the "Movies in Separate Folders" Setting:
When adding the source in Kodi, enable the option labeled "Movies are in
separate folders that match the movie title." This ensures the scraper
extracts the title from the parent directory rather than attempting to
parse filenames like
VTS_01_1.VOB. - Use Local NFO Files for Offline Accuracy: For
custom DVD masters, home videos, or rare discs not present on public
scrapers, place a text file named after the folder or named
movie.nfoin the root directory alongsideVIDEO_TS. Kodi will bypass online scraping and parse the local XML data directly into the library.