Problem: You want to move from an old client to a new client. Problem: Your client no longer knows where your data is. Problem: You have data on disk, and you want to restart seeding.
Solution: WIMP discovers how your data matches with your torrent files, giving you ready-made batches, grouped by their destination folders. Add these batches to your client and avoid re-downloading.
- Reads your torrent files, indexes your storage once, then looks for matching folders in your storage. A match is confirmed using at least one file inside the folder.
- Organizes your torrent files into batches—one per storage location.
- Emits a report showing how batches map to data folders.
- Puts the rest into buckets: invalid_torrent, bad_layout, unmatched, uncertain, and normalization_conflict.
- Batches of torrents — folders named
batchX, grouped by the parent directory that holds the data. - A list of which batch folders match which parent directory.
- Separate buckets for unmatched/uncertain/bad_layout/normalization_conflict.
- A report on stdout (and
--reportfile) with counts and warnings.
- Move, rename or edit your torrent files — you get new copies of your torrents, organized into batches.
- Hash-check your files. Use your client for that.
- Set the default download directory to the batch’s data folder, then add the batch of torrents.
- Add batches paused; verify to 100% before unpausing/starting seeding.
- Successful? Repeat with other batches.
- See
sample.txtfor a full run with a results table and counts.
- Unreadable torrents (including V2 or hybrid) go to
invalid_torrent. - Malformed torrents without a single root go to
bad_layout. - Normalization conflicts (macOS NFC/NFD, etc.) go to
normalization_conflictfor manual handling. - Unmounted or unreadable paths are skipped; their torrents may be unmatched.
- Works on macOS, Windows, and Linux. The script does not rename any files—it just copies your torrent files into new, convenient batches.
- Verification is filename-only for speed; we assume the data aren’t corrupted. If you suspect corruption, run a hash check ('Verify') in your client.
- When run locally, even 8000 torrents can be handled in several seconds. For best speed, run locally on the same machine that holds the files (NAS/server). The script may take 20-50x longer over Wi-Fi and ethernet; indexing thousands of torrents is I/O-bound, not CPU-bound.
- Before adding batches to your client, turn down speed limit to the minimum (1 KB/sec) and turn off auto-start. Watch for accidental re-downloading: some clients love to re-download.
- Optional: run
pip install coloramato get colored output, but it's not required.
0BSD https://opensource.org/license/0bsd or CC0 https://creativecommons.org/publicdomain/zero/1.0/
