Skip to content
Kellerman81 edited this page May 1, 2026 · 3 revisions

Path Configuration

Paths define where media files are stored and how they should be processed. Paths are used for both media storage locations and import/download destinations.

General Parameters

All paths require these parameters:

  • name: Unique identifier for the path
  • path: Absolute directory path for media storage

File Extension Filters

Control which file types are processed and renamed.

Video Extensions

  • allowed_video_extensions: Array of video file extensions to process and rename
    • Example: ['.avi', '.mkv', '.mp4', '.m4v', '.divx', '.mpg']
  • allowed_video_extensions_no_rename: Video files to copy but keep original names
    • Useful for already organized files

Other Extensions

  • allowed_other_extensions: Supplementary files to copy and rename (subtitles, NFO, etc.)
    • Example: ['.idx', '.sub', '.srt', '.nfo']
  • allowed_other_extensions_no_rename: Supplementary files to copy without renaming

Audio Extensions (Music / Audiobooks)

  • allowed_audio_extensions: Audio file extensions treated as main media files
    • Example: ['.mp3', '.flac', '.m4a', '.m4b', '.ogg', '.opus', '.wav', '.aac']
  • allowed_audio_extensions_no_rename: Audio files to copy but keep original names

Book Extensions (Ebooks)

  • allowed_book_extensions: Ebook file extensions treated as main media files
    • Example: ['.epub', '.pdf', '.mobi', '.azw', '.azw3', '.fb2', '.djvu']
  • allowed_book_extensions_no_rename: Book files to copy but keep original names

File Filtering

Blocked Patterns

  • blocked: Array of path/filename patterns to completely skip during scanning
    • Example: ["!old", "@Recycle", ".@__thumb", "sample"]
    • Files matching these patterns are ignored entirely

Disallowed Patterns

  • disallowed: Array of patterns that prevent file organization but allow download
    • Example: ['codec.exe', 'setup.exe', '/codec/', 'password', 'cd1', 'cd2']
    • Files are downloaded but not moved to organized location

Automatic Cleanup

  • delete_disallowed: Delete source folder if disallowed patterns are found (true/false)
    • Warning: Deletes the entire source folder!
  • delete_wrong_language: Delete files with incorrect audio languages (true/false)
  • delete_wrong_runtime: Delete files that fail runtime verification (true/false)
  • cleanup_size_mb: Delete folders smaller than this size in MB
    • Applies to both source and target paths
    • Use to remove incomplete/sample files
    • 0 = don't delete based on size

Size Requirements

Search Size Limits (Source Path)

  • min_size: Minimum release size in MB for indexer searches
    • Filters out samples and low-quality releases
    • 0 = no minimum
  • max_size: Maximum release size in MB for indexer searches
    • Filters out bloated releases
    • 0 = no maximum

Organization Size Limits (Target Path)

  • min_video_size: Minimum video file size in MB for organization
    • Files smaller than this won't be organized
    • 0 = no minimum

Runtime Verification

Verify that video file duration matches expected runtime from metadata.

  • check_runtime: Enable runtime duration verification (true/false)
    • Uses ffprobe to check actual file duration
  • max_runtime_difference: Maximum allowed difference in minutes
    • Example: 15 allows ±15 minutes from expected runtime
  • delete_wrong_runtime: Delete files that fail runtime check (true/false)

Note: Runtime checking will skip multi-part releases (split into multiple files).

Audio Language Filtering

Control which audio languages are acceptable.

  • allowed_languages: Array of ISO 639-1/639-2 language codes
    • Example: ['eng', 'en', 'English', '']
    • Include empty string '' for files without language metadata
    • Uses ffprobe to detect audio tracks
  • delete_wrong_language: Delete files without allowed audio languages (true/false)

Quality Upgrade Control

Manage how quality upgrades are handled.

  • upgrade: Enable automatic quality upgrades (true/false)
    • When true, old files are removed when higher quality is imported
    • When false, keeps all versions
  • replace_lower: Automatically replace existing files with higher quality versions (true/false)
    • When true, better quality releases replace lower quality existing files based on the quality profile
    • When false, duplicate files are kept or rejected based on other settings
    • Default: false
  • upgrade_scan_interval: Days between upgrade searches per media item
    • Prevents excessive searching
    • 0 = check every time
  • missing_scan_interval: Days between missing file searches per media item
  • missing_scan_release_date_pre: Days before/after release date to start searching
    • 0 = search immediately for all
    • Positive value = start X days before release
    • Prevents searching for unreleased media

Presort/Staging Directory

Two-stage file organization for manual review before final placement.

  • use_presort: Enable presort staging directory (true/false)
    • Important: Set upgrade = false when using presort!
  • presort_folder_path: Absolute path to staging directory
    • Files are organized here first
    • Manually review and approve before final move
    • Prevents accidental overwrites

Replaced File Archiving

Move replaced files to archive instead of deleting.

  • move_replaced: Archive replaced files instead of deleting (true/false)
  • move_replaced_target_path: Absolute path to archive directory
    • Replaced files are moved here with original structure
    • Useful for keeping backups of upgraded files

File Permissions (Unix/Linux)

  • set_chmod: File permissions in octal format (default: 0777)
    • Example: 0644 for rw-r--r--
  • set_chmod_folder: Directory permissions in octal format (default: 0777)
    • Example: 0755 for rwxr-xr-x

Example Configurations

Basic Movie Path

[[paths]]
name = "movies_hd"
path = "/media/movies"
allowed_video_extensions = ['.mkv', '.mp4', '.avi', '.m4v']
allowed_other_extensions = ['.srt', '.sub', '.idx']
allowed_video_extensions_no_rename = []
allowed_other_extensions_no_rename = []
allowed_audio_extensions = []
allowed_audio_extensions_no_rename = []
allowed_book_extensions = []
allowed_book_extensions_no_rename = []
blocked = ["!old", "@Recycle", ".@__thumb", "sample"]
disallowed = ['codec.exe', 'setup.exe', '/codec/', 'password', 'cd1', 'cd2']
delete_disallowed = false
delete_wrong_language = false
delete_wrong_runtime = false
min_size = 500            # 500 MB minimum for searches
max_size = 15000          # 15 GB maximum for searches
min_video_size = 500      # 500 MB minimum for organization
upgrade = true
replace_lower = false
cleanup_size_mb = 100
allowed_languages = ['eng', 'en', 'English', '']
check_runtime = true
max_runtime_difference = 15
upgrade_scan_interval = 7
missing_scan_interval = 1
missing_scan_release_date_pre = 5
move_replaced = false
move_replaced_target_path = ""
use_presort = false
presort_folder_path = ""
set_chmod = 0644
set_chmod_folder = 0755

Series Path with Language Filtering

[[paths]]
name = "series_en"
path = "/media/tv"
allowed_video_extensions = ['.mkv', '.mp4']
allowed_other_extensions = ['.srt']
allowed_video_extensions_no_rename = []
allowed_other_extensions_no_rename = []
blocked = ["!old", "sample", ".nzb"]
disallowed = ['cd1', 'cd2', 'password']
delete_disallowed = false
delete_wrong_language = true  # Delete non-English releases
delete_wrong_runtime = false
min_size = 100
max_size = 5000
min_video_size = 100
upgrade = true
cleanup_size_mb = 50
allowed_languages = ['eng', 'en', 'English', '']  # English only
check_runtime = true
max_runtime_difference = 10
upgrade_scan_interval = 14
missing_scan_interval = 1
missing_scan_release_date_pre = 0
move_replaced = true
move_replaced_target_path = "/media/tv_archive"
use_presort = false
presort_folder_path = ""

Import Path with Presort

[[paths]]
name = "movies_import"
path = "/downloads/movies"
allowed_video_extensions = ['.mkv', '.mp4', '.avi']
allowed_other_extensions = ['.srt', '.nfo']
allowed_video_extensions_no_rename = []
allowed_other_extensions_no_rename = []
blocked = ["sample", "trailer"]
disallowed = ['codec', 'setup']
delete_disallowed = true  # Clean up bad downloads
delete_wrong_language = false
delete_wrong_runtime = false
min_size = 0
max_size = 0
min_video_size = 300
upgrade = false           # Don't auto-upgrade with presort
cleanup_size_mb = 25      # Remove tiny files
allowed_languages = ['eng', 'ger', 'deu', 'German', 'English', '']
check_runtime = true
max_runtime_difference = 20
upgrade_scan_interval = 0
missing_scan_interval = 0
missing_scan_release_date_pre = 0
move_replaced = false
move_replaced_target_path = ""
use_presort = true        # Enable manual review
presort_folder_path = "/media/movies_presort"

Strict Quality Path

[[paths]]
name = "4k_movies"
path = "/media/movies_4k"
allowed_video_extensions = ['.mkv', '.mp4']  # High quality formats only
allowed_other_extensions = ['.srt']
allowed_video_extensions_no_rename = []
allowed_other_extensions_no_rename = []
blocked = ["!old", "sample"]
disallowed = ['cam', 'ts', 'screener', 'r5']  # Block low quality sources
delete_disallowed = true  # Remove low quality automatically
delete_wrong_language = true
delete_wrong_runtime = true
min_size = 10000          # 10 GB minimum (4K quality)
max_size = 80000          # 80 GB maximum
min_video_size = 10000
upgrade = true
cleanup_size_mb = 100
allowed_languages = ['eng', 'en', 'English', '']
check_runtime = true
max_runtime_difference = 10  # Strict runtime checking
upgrade_scan_interval = 30    # Check monthly for upgrades
missing_scan_interval = 7
missing_scan_release_date_pre = 14
move_replaced = true
move_replaced_target_path = "/media/movies_4k_archive"
use_presort = false
presort_folder_path = ""

Music / Audiobook Path

[[paths]]
name = "music"
path = "/media/music"
allowed_video_extensions = []
allowed_other_extensions = []
allowed_audio_extensions = ['.mp3', '.flac', '.m4a', '.m4b', '.ogg', '.opus']
allowed_audio_extensions_no_rename = []
allowed_book_extensions = []
allowed_book_extensions_no_rename = []
blocked = ["sample", "@Recycle"]
disallowed = []
delete_disallowed = false
delete_wrong_language = false
delete_wrong_runtime = false
min_size = 0
max_size = 0
min_video_size = 0
upgrade = true
replace_lower = false
cleanup_size_mb = 0
allowed_languages = []
check_runtime = false
max_runtime_difference = 0
upgrade_scan_interval = 0
missing_scan_interval = 1
missing_scan_release_date_pre = 0
move_replaced = false
move_replaced_target_path = ""
use_presort = false
presort_folder_path = ""

Ebook Path

[[paths]]
name = "ebooks"
path = "/media/books"
allowed_video_extensions = []
allowed_other_extensions = []
allowed_audio_extensions = []
allowed_audio_extensions_no_rename = []
allowed_book_extensions = ['.epub', '.pdf', '.mobi', '.azw3']
allowed_book_extensions_no_rename = []
blocked = ["sample", "@Recycle"]
disallowed = []
delete_disallowed = false
delete_wrong_language = false
delete_wrong_runtime = false
min_size = 0
max_size = 0
min_video_size = 0
upgrade = false
replace_lower = false
cleanup_size_mb = 0
allowed_languages = []
check_runtime = false
max_runtime_difference = 0
upgrade_scan_interval = 0
missing_scan_interval = 1
missing_scan_release_date_pre = 0
move_replaced = false
move_replaced_target_path = ""
use_presort = false
presort_folder_path = ""

Linking Paths to Media Groups

Paths are linked through media group and quality configurations:

# In media group
[[media.movies.data]]
template_path = "movies_hd"  # Links to path by name

[[media.movies.data_import]]
template_path = "movies_import"  # Import/download destination

# In quality template
[[quality.quality_indexer]]
indexer = "nzbgeek"
template_path = "movies_hd"  # Where to organize files from this indexer

Tips

  1. Start Permissive: Begin with loose filters and tighten based on experience
  2. Test Presort: Use presort for high-value collections to prevent mistakes
  3. Language Detection: Include empty string '' in allowed_languages for files without tags
  4. Size Limits: Set realistic minimums to filter samples, reasonable maximums to avoid bloat
  5. Runtime Checking: Useful for quality control but may reject valid multi-part releases
  6. Archive Replaced: Enable move_replaced to keep history of upgrades
  7. Cleanup Size: Set cleanup_size_mb high enough to not delete valid content
  8. Upgrade Intervals: Balance freshness vs server load with scan intervals
  9. Permissions: On shared systems, use appropriate chmod values
  10. Blocked vs Disallowed: Use blocked to skip entirely, disallowed to download but not organize

Common Patterns

Disallowed Patterns

Block common problematic content:

disallowed = [
  'codec.exe', 'setup.exe', 'install.exe',  # Executables
  '/codec/', '\codec\', '/crack/', '/keygen/',  # Suspicious folders
  'password', 'pass.txt',  # Password files
  'cd1', 'cd2', 'part1', 'part2',  # Multi-part (if not wanted)
  'If_you_get_error', 'READ_ME'  # Spam files
]

Blocked Patterns

Skip temporary/system files:

blocked = [
  "!old", "!backup",  # Archive folders
  "@Recycle", "@eaDir",  # Recycle bins
  ".@__thumb", ".AppleDouble", ".DS_Store",  # System files
  "sample", "trailer", "extras",  # Unwanted content
  ".nzb", ".torrent"  # Source files
]

Language Codes

Common language configurations:

# English only
allowed_languages = ['eng', 'en', 'English', '']

# English and German
allowed_languages = ['eng', 'en', 'English', 'ger', 'deu', 'German', 'Deutsch', '']

# Multiple languages
allowed_languages = ['eng', 'en', 'fre', 'fr', 'spa', 'es', 'ita', 'it', '']

Clone this wiki locally