Tuesday, March 20, 2012

Flexget: Great program, have some ideas

Okay, I've been using FlexGet for quite some time now, and it does a fantastic job at downloading. But as I've moved to a HD setup, I'm finding there are some features I could really do with. 

Automatic PROPER stopping and removal.

As it stands, FlexGet supports when releases are corrected with a "PROPER" release superseding the broken version. But, when a PROPER is detected, it just gets added to the download queue. What I'd like to happen is that the release the PROPER is superseding is stopped and removed, and the files for it deleted. Stopping will help the proper release be seeded better, and will drop the broken release down the rankings somewhat, and it will also save on hard-drive space (and confusion) by only having one canonical copy around. Removal of files is supported in most (if not all) clients these days, so it would be a simple matter to enable tracking for that. Indeed, the Transmission (the client I use) interface has a "remove when done" flag, because the client doesn't auto-remove completed downloads. This could be (quite easily) extended.

Quality scaling and management. 

This might be a little more tricky to explain, so bear with me. Currently FlexGet supports "One" or "Many" options. What I'm proposing is that higher quality versions are kept instead of poorer ones. For example:
  • Show is released in HDTV
  • FlexGet starts downloading the HDTV version of Show
  • Show is then released in 720p
  • FlexGet starts downloading the 720p version of Show
  • HDTV version of Show finishes downloading
  • 720p version of Show finishes downloading
  • Flexget removes HDTV version of Show from download queue and deletes files, keeping 720p version.
Another scenario:
  • Show is released in HDTV
  • FlexGet starts downloading HDTV Show
  • HDTV Show finishes downloading
  • Show is released in 720p
  • FlexGet starts downloading 720p Show
  • 720p Show finishes downloading
  • HDTV version of Show is removed and deleted
This way, there's a watchable version of the show ASAP, even if it is in a lower quality. Another scenario:
  • Show is released in HDTV
  • FlexGet starts downloading HDTV Show
  • Show is released in 720p
  • FlexGet starts downloading 720p Show
  • 720p Show finishes downloading
  • Flexget stops HDTV Show download in progress and removes files
This one might be a little more controversial, as it could be seen as "leeching" (the HDTV version is stopped before it's complete). Finally:
  • Show is released in 720p
  • FlexGet starts downloading 720p Show
  • Show is released in HDTV
  • FlexGet ignores lower-quality HDTV version
  • 720p Show finishes downloading
This one is kinda a no-brainer. If you're already getting a better version, why slow that download down by splitting it's bandwidth with a lower-quality version of the same thing.

Deleting in-use files is not a problem in Linux and OSX (Handles are kept to files even after they've been deleted), but Windows is a lot stricter about keeping files in-place until all handles are closed. Regardless, however, the "deleting files" is handled by the download (torrent/nzb/http) client, and not FlexGet itself.

Of course, all these behaviours can be customised and tweaked for things like private trackers and ratio maintenance (So no removing before completed seeding, no matter what the situation, to ensure a minimum ratio for each download is met, for example), but this is something I would very much like to see included in FlexGet in the future. I hope you understand what I'm striving for.