Stop manually copying quality profiles. ProfSync is a CLI wizard that configures Sonarr and Radarr quality profiles for you, using real data from TRaSH Guides — in under a minute.
Setting up quality profiles in Sonarr and Radarr is tedious and error-prone. You're expected to:
- Read through TRaSH Guides (which are excellent, but dense)
- Manually create a dozen custom formats with regex patterns
- Assign scores to each one based on your setup
- Configure quality cutoffs that match your resolution and storage
- Repeat the whole thing for Radarr
- Redo it when TRaSH updates their tier lists
Most people either copy someone else's config blindly or give up and use defaults. Neither gets you the best quality your setup can actually handle.
ProfSync asks 12 questions about your setup — what resolution you want, what devices you use, whether you care about lossless audio or HDR — and builds a complete, optimized configuration:
- Custom formats for TRaSH release group tiers (Tier 01/02/03/LQ) with proper scoring
- Codec/audio/HDR preferences tuned to your hardware (HEVC boost for modern devices, x264 preference for legacy)
- Quality profiles with the right qualities enabled, correct cutoffs, and format scores wired up
- Bulk updates to assign the new profile to all your existing series and movies
It talks directly to the Sonarr/Radarr API. No config files to copy, no YAML to edit, no manual steps.
TRaSH Guides (GitHub) ──→ ProfSync Wizard ──→ Sonarr/Radarr API
│
12 questions about
your setup & preferences
- Fetches the latest TRaSH Guides tier data (277+ release groups across 4 tiers)
- Asks about your resolution, devices, audio, HDR, storage, and quality strictness
- Generates custom formats with regex-matched release group scoring
- Creates a quality profile with the right qualities enabled and cutoff set
- Pushes everything to Sonarr and/or Radarr via their v3 API
- Optionally bulk-updates all existing library items to use the new profile
git clone https://gitea.sprooty.com/sprooty/profsync.git
cd profsync
pip install -e .
python wizard.pyThe wizard will prompt for your Sonarr/Radarr URLs and API keys, then walk you through the configuration.
| Question | Why It Matters |
|---|---|
| Target resolution (1080p / 4K / both) | Controls which qualities are enabled and where the cutoff sits |
| Playback environment (home / remote) | Remote streaming may benefit from smaller, more compatible files |
| Device capability (modern / mixed / legacy) | Modern devices get HEVC/x265 boosts; legacy gets x264 preference |
| HDR support (full / HDR10 / none) | Adds scoring for HDR10 and Dolby Vision custom formats |
| Audio preference (lossless / standard) | Boosts TrueHD Atmos, DTS-HD MA when you have the hardware for it |
| Include remux (yes / no) | Remux releases are 30-80 GB — only enable if you have the storage |
| Storage constraint (none / moderate / tight) | Tight mode strips Bluray/Remux, keeps only WEB sources |
| Quality strictness (strict / balanced / permissive) | Controls how aggressively low-tier groups are penalized |
| Auto-upgrade (yes / no) | Whether to upgrade when a better release appears |
python wizard.py # Interactive — prompts for everything
python wizard.py --teststack # Test mode — auto-loads credentials from test/.envpip install pyinstaller
./build.sh # Linux/macOS → ./dist/profsync-wizardWindows:
pip install pyinstaller
pyinstaller build.spec --clean -y # → dist\profsync-wizard.exewizard.py # Entry point
├── src/
│ ├── main.py # Orchestration — connects to apps, applies profiles
│ ├── questions.py # Interactive prompts (questionary)
│ ├── arr_client.py # Sonarr/Radarr v3 API client
│ ├── profile_builder.py # Custom format + quality profile generation
│ └── trash_fetcher.py # Fetches TRaSH Guides tier data from GitHub
ProfSync uses a TRaSH-blended scoring approach with three strictness levels:
| Tier | Strict | Balanced | Permissive |
|---|---|---|---|
| Tier 01 (best groups) | +1500 | +1500 | +1500 |
| Tier 02 | -2000 | +400 | +200 |
| Tier 03 | -4000 | -100 | +50 |
| LQ (low quality) | -10000 | -10000 | -10000 |
On top of group tier scores, codec/audio/HDR custom formats add conditional bonuses (e.g., +200 for lossless audio, +100 for HEVC, +150 for Dolby Vision).
- Python 3.10+
- Sonarr v4+ or Radarr v6+ with API access
questionary >= 2.0,requests >= 2.31
A Docker-based test environment is included for development and validation. See test/README.md for full details.
cd test/
./init-stack.sh # Spins up Sonarr + Radarr with 20 series + 20 movies
cd ..
python wizard.py --teststack # Run the wizard against the test stack
cd test/
./validate-wizard.sh # Verify profiles were created correctlyThe test stack runs Sonarr on port 8989 and Radarr on port 7878 with authentication disabled. Requires Docker and ~500 MB disk space.