qbittorrent / qBittorrent

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

Ability to adjust individual piece priority (including not downloading at all) #13612

Open lolwutx opened 3 years ago

lolwutx commented 3 years ago

(Version of qBittorrent 4.2.5; OS: GNU/Linux) Feature request: to add per file and/or per torrent pieces selection. What about GUI and features, I imagine them in following ways: 1) per-file: Torrent > "Content" tab > Right click on a file > item "Only selected pieces" > appears a window similar to gparted resizing partition About the window, it should be not only about single range as in gparted, but rather about multiple - with A and B marks that create ranges (similar to video editors interface, such as avidemux) that are selectable(changing focus from one range to another upon click, with text representation from piece and bytes recalculation), draggable and expendable. It also would be great to add so called "template" sub-feature, what I mean is to ability to create template and applying them to files in order to mark pieces. Example: assume we have 12 episodes of TV series, torrent of 1636 pieces, 2.0 mb each. Each episode has different size, but the same "proportion", e.g. 1st episode 327 mb and 20% of it - intro-outro with credits - 261.6 mb of "needed" video and 65.4 mb are intro-outro-credits unneeded part. During the creation of ranges of needed pieces for the mentioned episode there could be a button "save as template" > name A. After it select files > apply templete > A. So we had 327 mb episode as initial but the next episode is 249 mb (23.85% smaller), so each range of selected pieces would decrease on 23.85%, to 49.8 mb without additional user interaction. 2) per-whole-torrent: Right click on torrent > exists menu item "Only selected pieces" General behavior of the feature: download only selected pieces, rest - do not download or set the lowest priority (ideal solution - by user choice, in per torrent settings) (and/or inverted behavior - download the rest of file/torrent, but not marked fragments). Not sure about behavior with "collision" between current feature "do not download selected files" and proposed one - should proposed feature override, ignore or "download pieces only if they marked for download; do not download if they files don't marked even if they listed in pieces to download"

As far as I know, currently, qBittorrent has following methods pieces of pieces order and selection manipulation: By order(priority): 1) Random - "normal mode" 2) Sequential 3) First and last pieces first 4) Priority By selection: 1) Full 2) Selected file/ranges of them by folders

So the requested feature would be placed in selection section or in both (if in case of using selector what to do with unneeded pieces - do not download/download with lowest priority).

I could add that in my proposal "per-file" way is much more needed than "per-torrent" (that is implemented in partorrent) because it would allow to casually mark needed parts of files (iso or audio/video), in fast and convenient way. Template sub-feature is also needed for fast applying to the bunch episodes, because intro,outro,credits are in the "same" place. I believe it would be especially useful for TV series, anime etc where intro/outro, credits could be skipped (as not needed or it is the same for every episode) in order to save disk space (if pre-allocating is not used) and traffic. Current media players can handle "damaged/incomplete" files, if headers are ok. For me, traffic is the most concern as my link speed is pretty limited - 56 kilobytes/sec. Basing on mentioned example above with 12 TV series, roughly it could 600 mb of total savings, that would take 2h40min to download with 56 kilobytes/s (512 kilobits/s) of unneeded data It could be also useful for people with monthly quota of traffic - to save on each episode. There is a tool with specific function https://github.com/vasi/partorrent But it's GUI-less, applies to the whole torrent and not convenient for daily TV series downloading. Possible advantages and disadvantages are also listed there.

FranciscoPombal commented 3 years ago

Sorry, but IMO this feature would be just a bunch of useless bloat for 99.999999% of users.

Also I disagree with the assertion that 20% of the size of a TV series episode is credits/intro, or anywhere close to that. The gains from deselecting those pieces wouldn't be as big as you imagine, even though they would be certainly measurable, with such slow speed. Though if you have hard data to disprove this, I'll stand corrected. But that doesn't really matter...

I'm not saying this feature request is denied (it is not my place to do it), but you should realize that realistically, there is a very low chance anyone is going to want to implement this, and also a very low chance that the majority of members would want this in, even if someone were willing to do the work. Not to mention it would open up the possibility for the edge case bug described at the end of this comment: https://github.com/qbittorrent/qBittorrent/issues/13531#issuecomment-714480404.

I would strongly suggest taking action in some other meaningful way, a bit of extra download by qBittorrent is the least of your worries with such criminally low speeds in 2020, you're getting cut off from modern society in a big way (depending on who you ask, this might actually be desirable, but if you were part of that camp, why would you be here? :P).

lolwutx commented 3 years ago

Yeah, ofc most users will not use it, however nowadays there are plenty of people with slow internet/monthly quota and the number is likely to rise due to unemployment(caused by pandemic).

I suspect that for TV series such % is not usual, the longer episode the less % intro-outro would take but for 15-20 minutes episode length anime... I don't have statistics, but my the anime I currently watch has 1:30 intro anime + outro 1:47 = 3 minutes 16 seconds, episode length 23:42, that is less than 20% but nonetheless, pretty significant. Let's take notorious example with other anime - "One piece" - 946 episodes. Imagine amount amount of unneeded pieces. Also I find a topic on Reddit mentioning increasing time for intro on One piece +5:30 intro with 23:50 episode length (about more recent episodes).

Implementing features have lower priority and chance than other critical issues needed to be fixed normal usage of qBittorrent.

Actually, I was occasionally dreaming for more than decade about feature I mentioned but only today I decided to at least formulate it.

FranciscoPombal commented 3 years ago

@lolwutx

Yeah, ofc most users will not use it, however nowadays there are plenty of people with slow internet/monthly quota and the number is likely to rise due to unemployment(caused by pandemic).

Actually, I think you are too pessimistic here. Fortunately for you and everyone else, I believe it's the other way around. Due to the pandemic, there is an ongoing unprecedented incentive, demand and push for better Internet access all around. Companies, governments and other institutions now realize, more than ever, the importance of ubiquitous, quality Internet access.

I suspect that for TV series such % is not usual,

Percentage duration != percentage of size, in general, due to the way video codecs work. For most TV shows, credits are relatively static white text on black background, which is very low bitrate, and thus lower in size compared to the average scene. So 1 minute of credits is much smaller than 1 minute of regular show. Anime intros, however, are a different story - they tend to be heavily animated as well.

Actually, I was occasionally dreaming for more than decade about feature I mentioned but only today I decided to at least formulate it.

Thank you and congrats reaching out. I'm sorry for the seemingly harsh reaction to this particular suggestion, but I think it's better to be honest about it - I hope it doesn't discourage you from expressing and contributing your other ideas in the future.

Barabba11 commented 3 years ago

As I post into the already closed (too early?) post https://github.com/qbittorrent/qBittorrent/issues/13843

the problem is not "a bunch of useless" as I can't open the video until the last pieces (a bit more that what Qbit decided to download only) are completed; I think this affect a certain quantity of users. Unfortunately the format mp4 stores a lot of infos on the last part of the file, maybe there first comes indexes then some othe attachment, which makes the endo of the file huge, too big to download by Qbit selecting "download before the first and last part", if the file is small and the parts small as well. We kindly need to manipulate this quantity of parts, to let us chose enough MegaBytes at the end of file.

Thank you for understand and for your support.

aw3riql3 commented 2 years ago

Is there any progress on this suggestion/feature? thanks

vede1 commented 1 year ago

This feature would be useful for parsing file headers. For example, to gain information about a video file one would download only the necessary pieces and not the whole file. Indeed, such usage seems mostly useful for users with programming ability and it would require WebUI API support for scripting how many pieces a given file header might need.

glassez commented 1 year ago

Indeed, such usage seems mostly useful for users with programming ability

So such users could just use some simple utility instead qBittorrent.

Barabba11 commented 1 year ago

Please let'ts not make confusion here, I asked to let me choose the amount (in Megabyte, or %) of file size to download at beginning and end simply because the video doesn't open for preview. If the video is not big on size, that happens, Qbit itself decide how much to download in the end and beginning and this is not enough, too many index/descriptors info, so I need to download all the video to see, if it was worth to download.. too late. Asking to add an option on settings about how much to download is a benefit for all users, not only "programmers", thanks for simpathy