Nested data sources

7 minute read

Up until now, tinyMediaManager required your data sources to be completely separate from each other. If you tried to add a folder that was already covered by another data source - or that itself contained one - the add dialog simply refused it with an error, because overlapping data sources used to lead to duplicate entries and bogus imports.

Starting with v5.3.5, this restriction is gone: you can now add a data source inside another data source.


What Is a Nested Data Source?

A nested data source is exactly what it sounds like - a data source that lives inside another data source. A typical setup might look like this:

/mnt/media
  Movies                  <- data source
    Aladdin
    Cars
    Anime                 <- nested data source
      Akira
      Your Name
    4K                    <- nested data source
      Blade Runner 2049
      Dune

Here Movies is your main movie data source, and both Anime and 4K are data sources of their own, located inside it. Previously tinyMediaManager would have refused to add them.


How It Behaves

Nested data sources follow three simple rules, so you never end up with duplicates or phantom entries:

  1. Every data source owns its own subtree. A scan of a parent data source never descends into a nested data source. Since Anime and 4K are data sources themselves, they are skipped while scanning Movies - their content is only imported when those data sources are scanned.
  2. Every item belongs to the deepest data source it is located in. A movie in Movies/4K/Dune belongs to the 4K data source, not to Movies. If you later add a parent folder of already imported movies as a data source, tinyMediaManager automatically moves those movies to the owning data source on the next update data sources.
  3. The data source stays in sync. Renaming a movie into a nested data source updates its data source automatically, so it continues to be managed by the right data source.

Why This Matters

Being able to nest data sources finally lets you organize your collection the way your storage is organized - without having to fight tinyMediaManager over it. Some ideas:

  • Keep a general movie source and separate data sources for 4K/UHD, remux or 3D content
  • Separate anime, documentaries or kids content into their own data sources, each with its own scraper settings and renamer profile
  • Split an existing large collection into smaller, independently manageable sources without moving a single file

Since each nested data source is a real data source, it also gets its own entry in the settings and its own index, so you can scan and update it independently - for example via the UI, the command line or the HTTP API.


All nesting checks are done on the (normalized) path, not on the real file system path. A data source which is only reachable through a symbolic link is therefore not recognized as nested, and a scan following that link may still produce duplicate entries. Keep your data source folders free of symbolic links to other data sources.


A Quick Recap

  • Add a data source inside another data source (v5.3.5)
  • A parent data source never scans into a nested one - no duplicates
  • Every movie/TV show belongs to the deepest matching data source
  • The data source field is kept in sync when scanning and when renaming
  • Keep data source folders free of symlinks to other data sources

Tags:

Categories:

Updated:

Manuel Laggner

Manuel Laggner

technic freak, linux user and programmer

Follow Manuel Laggner: