Ihave one torrent with files I really want but it is dead for many months. Now by some luck I have direct download links for all of the files. The problem is that the torrent is many GB in size and it had completed almost 75% before it died. I can't waste so much data as I have a download limit and Internet access is very costly here.
Is there some way I can continue the download of all torrent files using direct download links? I tried with fdm and jdownloader but both are not supporting this from what I can tell.
In simple words, the problem arises due to the fact that torrent clients simultaneously download various pieces of each file and 'stitch' them together in the proper order on disk. So even though you might have 75% of a file, that doesn't mean it's a contiguous 75% data block from the beginning of the file. The missing parts (i.e. those not downloaded so far) are zero bytes that are filled in gradually by the client as each piece completes.
Now multi-threaded download managers (like the Free Download Manager or FDM you used) that work with direct HTTP links can also resume downloads and download multiple parts of a file simultaneously, provided certain server conditions are met. HTTP/1.1 allows for clients to request pieces of a file instead of the entire thing. This allows clients to resume an interrupted download (or download multiple parts simultaneously) without having to re-download the entire resource again. Web servers send Content-Length and Accept-Ranges response headers to indicate to the client that they allow for GET requests with the Range header to download pieces of a resource. Here's an overview of the process:
So now you may well ask that if download managers can (simultaneously) download parts of a file and resume downloads too just like torrent clients can, why can't the former resume interrupted torrent downloads as well? Like I said at the beginning, theoretically they can but there are various problems involved. Torrent clients use .torrent files that store information about each file, including names and file sizes. More importantly, the piece size is known and the SHA-1 hash (something like a unique digital 'fingerprint') of each piece, as also an info hash of the info dictionary as a whole, is included in the .torrent file. Thus even if a torrent client is used to resume an interrupted download of a torrent it has previously never encountered, it can compare the expected hashes of each piece with the actual hashes of the data on disk to figure out which pieces fail the hash check and thus need to be re-downloaded.
When you pass an interrupted torrent download to an HTTP download manager however, it has no knowledge about which parts of the files are missing. Now theoretically it could check each file, create a list of all data blocks that contain only zero bytes, then attempt to re-download these from the web server in order to fill in the gaps. In the case of a download manager like FDM that supports the BitTorrent protocol too, it could even use the .torrent file to do a hash check and then re-download only those pieces via HTTP that fail the said check. However in practice as I mentioned above no download manager I know of does this, so you are most likely out of luck.
#0: The answer should theoretically work if the file hosted on torrent and Direct Download Link (DDL) is same, i.e. No Differences in Hash [NDH]. I'm considering three scenarios. The rests are left as an exercise for the reader. Follow the procedure below:
If the DDL (ending with .mkv/zip/avi/exe etc.) has no waiting mechanism or obscure URL (like Google/One Drive, Dropbox, etc.), then you can burn the download link to a seedbox like Burnbit. Copy the URL of DDL and paste it in Burnbit. The process is straightforward and mentioned there step-by-step. Let it process and there you go, a new torrent has been created. Download the torrent file and merge the trackers into your original torrent (automatically done by some torrent clients once the file is opened).
#1: Note that this new torrent might be having a new torrent and file name. So before merging, change your old torrent's name and file name into the new one. Also choose recheck the torrent in your client for New Torrent [NT] so that, it can resume from where OT left your files.
If such is the case, then after accounting #0, burn all your DDLs into Burnbit. Burnbit only allows single file burning, so you have to repeat the steps for all the DDLs and download the torrent files. Open the new torrents and specify the Custom Download Location (CDL) to where OT downloaded its files, to each of them. It is possible that the files are not stored directly at CDL but one level after it (a new folder). Consider the file tree in this and this torrent to understand more.
Google for them, and you can find many free hosting schemes that can offer you such features (1-3) and setup finishes in few minutes. Do read their FAQ and Terms and Conditions (T&C) before using them to avoid account suspension or legal trouble.
Once you have your hosting space setup with domain and FTP credentials ready, head to MU, create an account, log in, feed the FTP details into the desired format here in required FTP field. Do check that your FTP is working with correct permissions via an FTP client like FileZilla. Now,
Now that we have all the DDLs under one hood, lets make it similar to the OT by renaming and structuring the files and the file tree. Latest CPanel (web hosting) comes with file archive and extract feature. Archive your files the way OT has. I'm aware only of .zip support. Next step is to just burn this file into Burnbit. To burn it requires its URL which can be obtained by opening your domain (from web hosting) into a web browser, browse to your files there and copy the link of the new file by right-click -> copy link location. Your hosted domain may look like this.
#3: It must be noted that except the optional FTP client and the Burnbit torrent files, exceptionally nothing new is required to download and everything is done remotely, thus, saving the questioner's bandwidth.
#4: The methods possibly won't work with download links that requires user interaction (time wait, captcha, etc.) or with obscure links that do not have certain filetype at the end of URL.
Note: Piracy, copyright infringement, or violation of T&C of any service is not supported anywhere. The links to torrents are merely used as an example. Reader is advised to duly read and follow the T&C of the services mentioned in the answer before using them.
Its not guaranteed that the download manager will pick this up though, because the files can be different and thus it will overwrite your files and start over. So make sure you make a copy of the files first.
3a8082e126