qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
27.17k stars 3.9k forks source link

Ensure a full copy has been seen before starting download #19092

Open qirlib opened 1 year ago

qirlib commented 1 year ago

Suggestion

When browsing rare torrents you sometimes encounter a 72.3% completed torrent with peers who show up all ready to wait half a year for completion from that one peer, and while I am generally willing to wait I do not always want to join such drama. So, the title.

Checking this would be prudent even if only a part of the torrent is requested, since the user might have expectations of being able to download the whole torrent later.

Use case

No response

Extra info/examples/attachments

No response

ValeZAA commented 1 year ago

What is going to happen if one peer (so leach) has 1/2 of the torrent (1/2 of all segments) and other another 1/2 + end segment. No one has 100% of files, yet you have 100% availability.

That is possible in ideal scenario: when 20 people download segments from you and when you notice that you gave up all the segments you can stop seeding. Yet though no one has 100%, but all together they have 100%.

qirlib commented 1 year ago

Sorry if I haven't been clear. I am specifically referring to half-dead incomplete torrents, for which "half a year" isn't a metaphor, kept with hope by some fans, people being told it's the best version of the content and waiting for it to complete, etc. I've encountered several and even hosted some select ones, and you what, eventually, they complete! Except all those people who downloaded my 72.3% during that half of a the year were probably disappointed.

absolutep commented 1 year ago

You are asking a practical impossibility in the realm of Bittorrent.

For example,

I had a torrent that had a film, a screenshots folder, a sample video folder, metadata txt file & torrent website txt file.

Now, the original uploader left the swarm.

So, a guy who had the torrent deleted the screenshots & video sample folders as well as the txt files.

It always showed 99% and never a seeder.

Yet, all of us saw the movie completely.

If your requested feature is implemented - you will never be able to see the movie because of it.

Furthermore, there is no way to judge what torrent is half-dead.

EX - I upload a TV series, you download 4 episodes - someone else downloads 4 episodes.

You and I both go away.

Someone else comes who has the first 4 episodes & joins the swarm - it will again show the availability of 100% even though there are only two peers with different episodes on their device.

As long as those two peers are seeding their respective episodes

your torrent is half-dead, yet fully alive.

At last, the disappointment feeling you are referring too - is part and parcel of Bittorrent life. There is nothing anyone can do about it.

qirlib commented 1 year ago

Of course, specifics of the implementation of this feature will allow users to download complete files or even incomplete torrents. I would like to leave UX flow details to whoever implements it and hope they think it through. As for the rest, I am aware of how torrents work. The torrent in your example is not fully alive because when you see nobody seeds the second half of the torrent, you have actually no idea if someone is coming; the longer you wait, the less probability of that is. I would like to be able to choose to wait and not waste traffic and disk space meanwhile.

Vort commented 1 year ago

I once downloaded 99% of such seemingly dead torrent. Months went, no one joined with the remaining 1%. Then I looked at torrent more closely and found that archive, which it was composed of, contained recovery record. Now this torrent have 100% of data.

qirlib commented 1 year ago

Of course, specifics of the implementation of this feature will allow users to download complete files or even incomplete torrents.

Of course, the implementation of this feature is meant to be some kind of block-warning system, not a strict boolean check before starting any kind of download in all future qBittorrent versions that you cannot disable.

Gorrrg commented 10 months ago

I'd love to have this feature, I remember one client had this feature and I loced it, was it Azureus or µTorrent? I don't remember.

And all the counter-arguments here make no sense: There's torrents with rar archives without recovery records, there are torrents stuck at 99% that will never see a full source, you can make this option optional and disabled by default. There's absolutely no negative effect for users if you add this featzure. God, how I love nay sayers... who don't even have to use this feature.