media:content_structure
Differences
This shows you the differences between two versions of the page.
| media:content_structure [2025/12/20 17:20] – created - external edit 127.0.0.1 | media:content_structure [2025/12/20 17:22] (current) – privacyl0st | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Media Library Structure Best Practices ====== | ||
| + | A clean, predictable directory structure is the **foundation** of a stable media ecosystem. Plex, Sonarr, Radarr, Lidarr, and other automation tools all assume certain filesystem behaviors — and fighting those assumptions leads to broken imports, duplicate media, and long-term frustration.\\ | ||
| + | |||
| + | This guide covers **directory layout best practices only**. File naming conventions, | ||
| + | |||
| + | ===== Design Goals ===== | ||
| + | A well-designed media library structure should:\\ | ||
| + | * Be unambiguous to both humans and automation tools | ||
| + | * Prevent media type overlap | ||
| + | * Scale cleanly as libraries grow | ||
| + | * Survive rebuilds of Plex or automation services | ||
| + | * Avoid brittle, one-off layouts | ||
| + | |||
| + | The goal is **boring predictability**. If you ever need to re-point Plex or rebuild the ARR stack, the filesystem should require **zero rethinking**. | ||
| + | |||
| + | ===== Core Principles ===== | ||
| + | Follow these rules universally: | ||
| + | |||
| + | * One media type per top-level directory | ||
| + | * One logical library per directory tree | ||
| + | * No mixed media types in the same path | ||
| + | * No temporary or in-progress data in final library paths | ||
| + | * Automation tools manage contents — not humans | ||
| + | |||
| + | Violating these rules almost always leads to:\\ | ||
| + | * Misidentified media | ||
| + | * Incorrect imports | ||
| + | * Broken Plex metadata | ||
| + | * Difficult troubleshooting | ||
| + | |||
| + | ===== Recommended Top-Level Layout ===== | ||
| + | At the highest level, media should be separated by **type**, not quality, codec, or source. | ||
| + | |||
| + | Example: | ||
| + | |||
| + | * / | ||
| + | * /media/tv | ||
| + | * / | ||
| + | |||
| + | These paths should be treated as **final destinations only**. Nothing enters these directories unless it is ready to be consumed by Plex. | ||
| + | |||
| + | ===== Movies Directory Structure ===== | ||
| + | Movies should live in a **flat but organized** hierarchy. | ||
| + | |||
| + | Recommended structure: | ||
| + | |||
| + | * / | ||
| + | * Movie Title (Year).ext | ||
| + | |||
| + | Why this works well:\\ | ||
| + | * Plex expects one movie per directory | ||
| + | * Radarr manages movies at the folder level | ||
| + | * Prevents subtitle and extra file collisions | ||
| + | * Makes manual inspection trivial | ||
| + | |||
| + | Avoid:\\ | ||
| + | * Nesting by genre | ||
| + | * Nesting by resolution (4K, 1080p, etc.) | ||
| + | * Grouping multiple movies in a single directory | ||
| + | |||
| + | Quality and format decisions belong to **automation profiles**, not filesystem layout. | ||
| + | |||
| + | ===== TV Shows Directory Structure ===== | ||
| + | TV content is inherently hierarchical and should reflect that clearly. | ||
| + | |||
| + | Recommended structure: | ||
| + | |||
| + | * / | ||
| + | * Season 01/ | ||
| + | * Episode files | ||
| + | * Season 02/ | ||
| + | * Episode files | ||
| + | |||
| + | Why this works well:\\ | ||
| + | * Plex relies on season-based hierarchy | ||
| + | * Sonarr expects one show per root folder | ||
| + | * Enables clean season upgrades and replacements | ||
| + | * Keeps specials and extras manageable | ||
| + | |||
| + | Notes:\\ | ||
| + | * Season folders should always exist, even for single-season shows | ||
| + | * Specials should be handled using standard season conventions | ||
| + | * Avoid dumping episodes directly into the show root | ||
| + | |||
| + | ===== Music Directory Structure ===== | ||
| + | Music libraries benefit from **strict separation and consistency**, | ||
| + | |||
| + | Recommended structure: | ||
| + | |||
| + | * / | ||
| + | * Album/ | ||
| + | * Track files | ||
| + | |||
| + | Why this works well:\\ | ||
| + | * Plex Music expects Artist → Album hierarchy | ||
| + | * Lidarr manages artists and albums cleanly | ||
| + | * Preserves album-level metadata and artwork | ||
| + | * Avoids cross-artist collisions | ||
| + | |||
| + | Additional guidance:\\ | ||
| + | * Multi-disc albums should live under the same album directory | ||
| + | * Compilations can be handled via artist naming rules | ||
| + | * Soundtracks should be treated as albums, not playlists | ||
| + | |||
| + | ===== Separation of Download, Staging, and Final Media ===== | ||
| + | Never allow automation tools to download directly into final library paths. | ||
| + | |||
| + | Instead, maintain **three conceptual zones**: | ||
| + | |||
| + | * Download directory (temporary, incomplete) | ||
| + | * Staging/ | ||
| + | * Final media library (read-mostly) | ||
| + | |||
| + | Only the final library paths should be exposed to Plex. This separation ensures:\\ | ||
| + | * Clean libraries | ||
| + | * Predictable imports | ||
| + | * Easy recovery from failed downloads | ||
| + | * No partial or corrupted media appearing in Plex | ||
| + | |||
| + | ===== Permissions and Ownership ===== | ||
| + | Ensure consistent permissions across all media paths. | ||
| + | |||
| + | Best practices: | ||
| + | * Plex and automation tools should have read/write access | ||
| + | * Avoid mixing ownership models | ||
| + | * Prefer group-based permissions | ||
| + | * Avoid per-file manual permission changes | ||
| + | |||
| + | If permissions require constant fixing, the structure is likely wrong upstream. | ||
| + | |||
| + | ===== What This Guide Intentionally Does NOT Cover ===== | ||
| + | This page does **not** cover:\\ | ||
| + | * File naming formats | ||
| + | * Episode numbering schemes | ||
| + | * Metadata agents | ||
| + | * Quality profiles | ||
| + | * Import and rename settings | ||
| + | |||
| + | Those topics are covered in:\\ | ||
| + | * Sonarr configuration guide | ||
| + | * Radarr configuration guide | ||
| + | * Lidarr configuration guide | ||
| + | * Plex library configuration guide | ||
| + | |||
| + | Keeping these concerns separate prevents overlap and confusion. | ||
| + | |||
| + | ===== Design Philosophy Recap ===== | ||
| + | A good media library structure should be:\\ | ||
| + | * Obvious | ||
| + | * Boring | ||
| + | * Automation-friendly | ||
| + | * Easy to rebuild against | ||
| + | |||
| + | If your automation stack disappeared tomorrow, you should be able to:\\ | ||
| + | 1. Reinstall applications\\ | ||
| + | 2. Point them at the same directories\\ | ||
| + | 3. Resume operation without reorganization\\ | ||
| + | |||
| + | If the filesystem gets out of the way, the ecosystem works as intended. | ||
media/content_structure.txt · Last modified: by privacyl0st
