Skip to content

wally-crunk/wimp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Icon

WIMP: Where Is Media, Please?

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.

What it does

  • 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.

What you get

  • 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 --report file) with counts and warnings.

What it doesn't do

  • 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.

Notes for Transmission and other clients

  • 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.

Example output

  • See sample.txt for a full run with a results table and counts.

Gotchas

  • 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_conflict for 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.

Hot Tips

  • 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 colorama to get colored output, but it's not required.

License

0BSD https://opensource.org/license/0bsd or CC0 https://creativecommons.org/publicdomain/zero/1.0/

EOF

About

Where Is Media, Please? ~ match torrents to data, and get batches of sorted torrents

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages