-
-
Notifications
You must be signed in to change notification settings - Fork 3
Path
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.
All paths require these parameters:
- name: Unique identifier for the path
- path: Absolute directory path for media storage
Control which file types are processed and renamed.
-
allowed_video_extensions: Array of video file extensions to process and rename
- Example:
['.avi', '.mkv', '.mp4', '.m4v', '.divx', '.mpg']
- Example:
-
allowed_video_extensions_no_rename: Video files to copy but keep original names
- Useful for already organized files
-
allowed_other_extensions: Supplementary files to copy and rename (subtitles, NFO, etc.)
- Example:
['.idx', '.sub', '.srt', '.nfo']
- Example:
- allowed_other_extensions_no_rename: Supplementary files to copy without renaming
-
allowed_audio_extensions: Audio file extensions treated as main media files
- Example:
['.mp3', '.flac', '.m4a', '.m4b', '.ogg', '.opus', '.wav', '.aac']
- Example:
- allowed_audio_extensions_no_rename: Audio files to copy but keep original names
-
allowed_book_extensions: Ebook file extensions treated as main media files
- Example:
['.epub', '.pdf', '.mobi', '.azw', '.azw3', '.fb2', '.djvu']
- Example:
- allowed_book_extensions_no_rename: Book files to copy but keep original names
-
blocked: Array of path/filename patterns to completely skip during scanning
- Example:
["!old", "@Recycle", ".@__thumb", "sample"] - Files matching these patterns are ignored entirely
- Example:
-
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
- Example:
-
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
-
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
-
min_video_size: Minimum video file size in MB for organization
- Files smaller than this won't be organized
-
0= no minimum
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:
15allows ±15 minutes from expected runtime
- Example:
-
delete_wrong_runtime: Delete files that fail runtime check (
true/false)
Note: Runtime checking will skip multi-part releases (split into multiple files).
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
- Example:
-
delete_wrong_language: Delete files without allowed audio languages (
true/false)
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
- When
-
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
- When
-
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
-
Two-stage file organization for manual review before final placement.
-
use_presort: Enable presort staging directory (
true/false)-
Important: Set
upgrade = falsewhen using presort!
-
Important: Set
-
presort_folder_path: Absolute path to staging directory
- Files are organized here first
- Manually review and approve before final move
- Prevents accidental overwrites
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
-
set_chmod: File permissions in octal format (default:
0777)- Example:
0644for rw-r--r--
- Example:
-
set_chmod_folder: Directory permissions in octal format (default:
0777)- Example:
0755for rwxr-xr-x
- Example:
[[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[[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 = ""[[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"[[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 = ""[[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 = ""[[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 = ""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- Start Permissive: Begin with loose filters and tighten based on experience
- Test Presort: Use presort for high-value collections to prevent mistakes
-
Language Detection: Include empty string
''in allowed_languages for files without tags - Size Limits: Set realistic minimums to filter samples, reasonable maximums to avoid bloat
- Runtime Checking: Useful for quality control but may reject valid multi-part releases
-
Archive Replaced: Enable
move_replacedto keep history of upgrades -
Cleanup Size: Set
cleanup_size_mbhigh enough to not delete valid content - Upgrade Intervals: Balance freshness vs server load with scan intervals
- Permissions: On shared systems, use appropriate chmod values
-
Blocked vs Disallowed: Use
blockedto skip entirely,disallowedto download but not organize
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
]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
]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', '']