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

  1. Open NZBGet web interface
  2. Navigate to Settings → Categories
  3. Select your category (Movies, TV Shows, etc.)
  4. Scroll to ExtensionScripts

Step 2: Add RemoveSamples

  1. Click the ExtensionScripts dropdown
  2. Select "RemoveSamples" from available extensions
  3. 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:

  1. Settings → Extension Manager → RemoveSamples
  2. Set Debug: Yes
  3. Process a test download
  4. Check logs in Settings → Logging → Messages
  5. 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:

  1. Check Activity tab for clean imports
  2. Verify no sample files in imported folders
  3. Monitor missing episodes/movies (should not increase)
  4. 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:

  1. Check size thresholds - increase if too aggressive
  2. Review file patterns - ensure legitimate files don't match sample patterns
  3. Enable debug mode to see what's being removed
  4. 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:

  1. Verify RemoveSamples is enabled in category ExtensionScripts
  2. Check script execution order - ensure RemoveSamples runs before media managers
  3. Review sample file names - may need pattern adjustments
  4. 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:

  1. Check for infinite loops in directory structure
  2. Verify file permissions for script execution
  3. Monitor system resources during processing
  4. 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