05_Workflow_Integration - nzbgetcom/Extension-RemoveSamples GitHub Wiki
Workflow Integration
Learn how to integrate RemoveSamples into your media server workflow for optimal sample detection and removal.
🎯 Overview
RemoveSamples works best when properly integrated into your post-processing pipeline. This guide shows you how to configure it with popular media managers and optimize script execution order.
🏗️ Recommended Workflow Architecture
Standard Media Server Pipeline
Download → Unpack → RemoveSamples → Additional Scripts → Media Manager
Detailed Workflow
graph LR
A[NZBGet Download] --> B[Par2 Check/Repair]
B --> C[Unpack Archives]
C --> D[RemoveSamples]
D --> E[Other Extensions]
E --> F[Sonarr/Radarr/Lidarr]
F --> G[Media Library]
Why this order?
- ✅ After Unpack: Files are extracted and accessible
- ✅ Before Media Managers: Samples removed before processing
- ✅ Before Other Scripts: Clean directory for subsequent processing
⚙️ NZBGet Category Configuration
Step 1: Access Category Settings
- Open NZBGet web interface
- Navigate to Settings → Categories
- Select your category (Movies, TV Shows, etc.)
- Scroll to ExtensionScripts
Step 2: Add RemoveSamples
- Click the ExtensionScripts dropdown
- Select "RemoveSamples" from available extensions
- Click "Apply" or use the + button to add it
Step 3: Set Script Order
Recommended script order:
1. PasswordDetector (if used)
2. FakeDetector (if used)
3. RemoveSamples ← Your extension
4. Clean (if used)
5. Other cleanup scripts
Example Category Configuration
Category: Movies
PostScript:
ExtensionScripts: FakeDetector, RemoveSamples, Clean
DestDir: ${MainDir}/completed/movies
📺 Integration with Media Managers
Sonarr Integration
Category Setup:
Category Name: tv
Dest Directory: /downloads/completed/tv
Extension Scripts: RemoveSamples
Post Script: (empty)
Sonarr Settings:
- Download Client: NZBGet
- Category: tv
- Remote Path Mapping: Configure if needed
Benefits with RemoveSamples:
- ✅ No sample episodes imported to library
- ✅ Cleaner season folders without preview directories
- ✅ Faster Sonarr processing with fewer files to scan
Radarr Integration
Category Setup:
Category Name: movies
Dest Directory: /downloads/completed/movies
Extension Scripts: RemoveSamples
Post Script: (empty)
Radarr Settings:
- Download Client: NZBGet
- Category: movies
- Minimum Availability: Based on your preference
Benefits with RemoveSamples:
- ✅ No trailer/sample files in movie folders
- ✅ Eliminated sample directories like SAMPLE/
- ✅ Reduced false movie detections by Radarr
Lidarr Integration
Category Setup:
Category Name: music
Dest Directory: /downloads/completed/music
Extension Scripts: RemoveSamples
Post Script: (empty)
Lidarr Settings:
- Download Client: NZBGet
- Category: music
- Audio Size Threshold: Consider lowering to 1MB for music
Benefits with RemoveSamples:
- ✅ No 30-second preview tracks imported
- ✅ Cleaner album folders without sample directories
- ✅ Better audio quality with only full tracks
Prowlarr Integration
Category Setup:
Category Name: general
Dest Directory: /downloads/completed/general
Extension Scripts: RemoveSamples
Post Script: (empty)
Prowlarr Benefits:
- ✅ Cleaner downloads regardless of content type
- ✅ Consistent sample removal across all categories
- ✅ Reduced manual cleanup needed
🔄 Advanced Workflow Scenarios
Scenario 1: Multiple Media Managers
Setup: Sonarr + Radarr + Lidarr on same NZBGet instance
Category Configuration:
# TV Shows
Category: tv
ExtensionScripts: RemoveSamples
Video Size Threshold: 150 MB
Audio Size Threshold: 2 MB
# Movies
Category: movies
ExtensionScripts: RemoveSamples
Video Size Threshold: 200 MB (more conservative)
Audio Size Threshold: 2 MB
# Music
Category: music
ExtensionScripts: RemoveSamples
Video Size Threshold: 150 MB
Audio Size Threshold: 1 MB (more aggressive)
Scenario 2: Docker Environments
Docker Compose Integration:
services:
nzbget:
image: linuxserver/nzbget:latest
container_name: nzbget
volumes:
- ./config:/config
- ./scripts:/opt/nzbget/scripts # RemoveSamples location
- ./downloads:/downloads
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
sonarr:
image: linuxserver/sonarr:latest
volumes:
- ./downloads:/downloads # Shared download path
depends_on:
- nzbget
radarr:
image: linuxserver/radarr:latest
volumes:
- ./downloads:/downloads # Shared download path
depends_on:
- nzbget
Path Mapping Considerations:
- Container paths: Must match between NZBGet and media managers
- RemoveSamples impact: Cleans files before media manager access
- Volume sharing: Ensure consistent mount points
Scenario 2b: Unraid Docker Environment
Typical Unraid NZBGet Setup:
NZBGet Container:
├── Config: /mnt/user/appdata/nzbget/
├── Scripts: /mnt/user/appdata/nzbget/scripts/
├── Downloads: /mnt/user/downloads/nzbget/
└── User: nobody:users (99:100)
Media Manager Containers:
├── Sonarr: /mnt/user/downloads/nzbget/completed/tv/
├── Radarr: /mnt/user/downloads/nzbget/completed/movies/
└── User: nobody:users (99:100)
Unraid Integration Benefits:
- ✅ Shared user/group (nobody:users) across containers
- ✅ Consistent paths via /mnt/user/ mounts
- ✅ Persistent configuration in appdata
- ✅ Easy container management via Unraid UI
Unraid Category Setup Example:
Category: movies
Dest Directory: /downloads/completed/movies
Extension Scripts: RemoveSamples
# Maps to: /mnt/user/downloads/nzbget/completed/movies on host
Scenario 3: Complex Script Chains
Advanced script order for power users:
1. PasswordDetector # Handle password-protected files
2. FakeDetector # Remove fake/spam downloads
3. RemoveSamples # Clean sample files/directories
4. Unrar # Additional unpack if needed
5. Clean # Final cleanup
6. Notify # Send notifications
🎛️ Category-Specific Configurations
High-Quality Movies (4K/Remux)
Category: movies-4k
ExtensionScripts: RemoveSamples
Video Size Threshold: 500 MB # Larger samples for 4K
Audio Size Threshold: 5 MB # High-quality audio samples
Remove Directories: Yes
Remove Files: Yes
Debug: No
TV Shows (Standard Quality)
Category: tv-standard
ExtensionScripts: RemoveSamples
Video Size Threshold: 150 MB # Standard TV samples
Audio Size Threshold: 2 MB
Remove Directories: Yes
Remove Files: Yes
Debug: No
Music (Lossless)
Category: music-flac
ExtensionScripts: RemoveSamples
Video Size Threshold: 150 MB # Video samples in music releases
Audio Size Threshold: 10 MB # Conservative for lossless
Remove Directories: Yes
Remove Files: Yes
Debug: No
Anime/Foreign Content
Category: anime
ExtensionScripts: RemoveSamples
Video Size Threshold: 100 MB # Smaller anime samples
Audio Size Threshold: 2 MB
Remove Directories: Yes
Remove Files: Yes
Debug: No
📊 Performance Optimization
Timing Considerations
RemoveSamples execution time:
- Small downloads (< 1 GB): < 1 second
- Medium downloads (1-10 GB): 1-5 seconds
- Large downloads (> 10 GB): 5-15 seconds
- Huge downloads (> 50 GB): 15-30 seconds
Impact on overall workflow:
- ✅ Minimal delay: Usually negligible in total processing time
- ✅ Saves time later: Media managers process faster
- ✅ Reduces disk I/O: Fewer files for subsequent operations
Resource Usage
CPU Impact: Very low (regex matching, file operations) Memory Impact: Minimal (processes files individually) Disk Impact: Positive (removes unnecessary files) Network Impact: None (local file operations only)
🔍 Monitoring and Verification
Checking RemoveSamples Activity
Enable debug mode temporarily:
- Settings → Extension Manager → RemoveSamples
- Set Debug: Yes
- Process a test download
- Check logs in Settings → Logging → Messages
- Set Debug: No when satisfied
Look for log entries like:
[INFO] RemoveSamples: Processing directory: /downloads/Movie.Name.2023/
[INFO] RemoveSamples: Removed sample file: sample.mkv (45 MB)
[INFO] RemoveSamples: Removed sample directory: SAMPLE/ (3 files)
[INFO] RemoveSamples: Processing completed - removed 4 items
Verifying Media Manager Integration
Sonarr/Radarr verification:
- Check Activity tab for clean imports
- Verify no sample files in imported folders
- Monitor missing episodes/movies (should not increase)
- Review manual import queue (should be cleaner)
🚨 Troubleshooting Integration Issues
Issue: Media Manager Can't Find Files
Symptoms: Downloads complete but media manager shows "Missing" Likely Cause: RemoveSamples removing wanted files Solutions:
- Check size thresholds - increase if too aggressive
- Review file patterns - ensure legitimate files don't match sample patterns
- Enable debug mode to see what's being removed
- Adjust configuration based on your content types
Issue: Sample Files Still Appearing
Symptoms: Sample files remain after processing Likely Cause: Configuration or pattern matching issues Solutions:
- Verify RemoveSamples is enabled in category ExtensionScripts
- Check script execution order - ensure RemoveSamples runs before media managers
- Review sample file names - may need pattern adjustments
- Test with debug mode to see detection logic
Issue: Processing Takes Too Long
Symptoms: Downloads hang in post-processing Likely Cause: Large directories or configuration issues Solutions:
- Check for infinite loops in directory structure
- Verify file permissions for script execution
- Monitor system resources during processing
- Consider processing timeout settings
🎯 Best Practices Summary
Configuration Best Practices
- ✅ Start conservative with higher thresholds
- ✅ Test thoroughly before production deployment
- ✅ Use appropriate thresholds for content types
- ✅ Enable debug mode during initial setup
- ✅ Document your settings for team members
Integration Best Practices
- ✅ Place RemoveSamples early in script chain
- ✅ Use consistent categories across media managers
- ✅ Monitor logs regularly for unexpected behavior
- ✅ Keep configurations simple initially
- ✅ Test with non-critical downloads first
Workflow Best Practices
- ✅ Separate categories for different content types
- ✅ Adjust thresholds based on content quality
- ✅ Regular configuration reviews as needs change
- ✅ Backup working configurations before changes
- ✅ Coordinate with team members on shared systems
Configuration questions? → Configuration Reference
Having issues? → Troubleshooting Guide
More questions? → FAQ