Transmission is a multi platform BitTorrent client and is great in many respects for what it does. However not all applications work how you want them to. You might of noticed that if you did not quit transmission correctly or ejected your drives early (even if the torrents are paused) when you re opened the client your data would have to re-verify. If you only have a few torrents this is not a big deal but with lets say 900 torrents and TB’s of data it can take literally 4 days to re-verify data even when you know it is there. If in the case you know you just quit something out of order and that you’re sure the data was not changed there is a way around this data verifying. As a mac user I will only be explaining the mac side. I am currently working on a program to automate it but ill explain how transmission works for now. Again I do not recommend using this all the time or your client could upload data that “does not exist” you could screw people over and get banned from private trackers but here it goes.
Resume Files
Transmission stores .resume files in /Users/YOURUSERNAME/Library/Application Support/Transmission/Resume/
there is one resume file per torrent in the client these files are encoded with Bencode (BEE-Encode) they contain data like upload/download priority file location etc.. but more importantly they contain the last time modified and the data blocks verified. In a GUI bencode editor (only one exists on windows) it looks like this. However you can still read the data on a mac its just in command line with python, here.
The important info is the bitfeild and mtimes fields under the progress. mtimes is the modified time in epoch time (this is seconds passed since january 1 1970) its a unix time thing you can read about here and convert it back and forth here. What Transmission checks is that the data file’s last modified time (in epoch) and the bitfield blocks. I believe the 41 represents how many blocks there are and each ÿ = 1 block, also ÿ == 0xff and it just means that block is downloaded. On a file that will require verification the mtime will be -1 and the bitfield blocks will just be blank. Until I get my program completed I am manually doing it with the help of windows and some nifty command line commands. The steps are as follow
Steps
- Close Transmission
- Pick a eopoc time (I just have one thats a few weeks ago 1243192648)
- Find the file that needs re-veryfing (Apples touch utility makes you format the time in a [[CC]YY]MMDDhhmm[.SS] format so I downloaded gtouch, or GNU’s version of touch because it uses epoch time)
- run “gtouch -m -d @1243192648 filename.dmg” or if its a Folder with more files within it you can do this recursively with “find . -exec gtouch -m -d @1243192648 folder_name {} \;” when in the same directory in terminal of course.
- Now to modify the resume file, currently I am using BEncode Editor in windows I changed mtime from -1 to 1243192648
- Next to change bitfield, I look at the number of blocks it should have then paste ÿ into a text editor until my char count is the same (41 in this case), then I copy that into my clipboard and paste it into the bitfield. Then save the file, or move it from your windows virtual machine to your mac and replace the old one.
- Open up Transmission and the torrent should now resume without checking.
Some things to note, if its a folder with lots of files, each file will have an mtime to edit in BEncode Editor (so it can take a long time to do by hand). That is why I’m currently working on program to automate this long process. Hopefully this is helpful to someone though and now you know just a little bit more about your torrent client.
- Andrew Free





Best article, lots of intersting things to digest. Very informative
Thank you for tale!
Have bookmarked your site and will be back to visit.
how long have you been a blogger?