Scanner Recordings Sorter for the SDS100/200 (and beyond)
Created by yung-megafone
Uniden SDS radios (and similar systems) generate thousands of WAV files rapidly.
Managing them manually becomes unmanageable — Explorer slows down, SD cards fill, and archives turn into chaos.
SDSorter automates that process.
Point it at your ingest folder or SD card, and it organizes recordings into:
YYYY/MM/DD/
Now with a full GUI, real-time metrics, and dataset analysis tools — built for handling hundreds of thousands to millions of files.
- High performance: Streaming walker + multi-threaded I/O
- Safe by default: Copy unless explicitly set to move
- Flexible formats: WAV, MP3, M4A (timestamp-based)
- Scanner-native support: SDS100/200 naming (
YYYY-MM-DD_hh-mm-ss.wav)
- Modern interface (no CLI required)
- Real-time progress + stats
- One-click folder selection
- Built-in log viewer
- Safe job cancellation
- Files processed
- Files/sec (true rate)
- Elapsed time
- Stable UI (no shifting elements)
- Scan datasets without modifying files
- Generate insights:
- File counts
- Time distribution
- Density patterns
- Export CSV
- Built-in charts
- Handles millions of files
- Avoids:
- Explorer slowdowns
- UI freezing
- Memory spikes
- Continues past errors
Installer
- Download:
SDSorter_Setup_v0.4.2.exe - Standard install
Portable
- Download:
SDSorter_Portable_v0.4.2.zip - Extract and run
SDSorter.exe
Requires Python 3.8+
pip install tqdm customtkinter matplotlibRun GUI:
python sdsorter.pyRun CLI:
python sdsorter.py SRC_PATH DST_PATH [options]Dry run (safe preview):
python sdsorter.py D:\Ingest E:\Archive --dry-run -vReal copy:
python sdsorter.py D:\Ingest E:\Archive --workers 6 --skip-errors -v --logfile sort.logMove (destructive):
python sdsorter.py D:\Ingest E:\Archive --move --readonly --workers 4Use modified time:
python sdsorter.py D:\Ingest E:\Archive --date-source mtime| Flag | Description |
|---|---|
--move |
Move instead of copy (destructive across devices) |
--dry-run |
Preview only |
--readonly |
Mark destination files read-only |
--skip-errors |
Continue on errors |
--date-source |
filename (default) or mtime |
--ext |
Restrict extensions (default: .wav) |
--workers |
Parallel workers (SSD: 4–8, HDD: 2–3) |
-v / -vv |
Verbosity |
-q |
Quiet mode |
--logfile |
Output logs to file |
-
SDS100/200 users overwhelmed with recordings
-
SDR / scanner hobbyists archiving long-term
-
Data hoarders managing massive datasets
-
Anyone who’s ever said:
“I’ll sort it later…”
- Channel / department-aware sorting
- SQLite indexing
- Config profiles
- Improved UI scaling + polish
Built out of frustration, caffeine, and way too many files yung-megafone
MIT — free to use, modify, and improve
