database64128 / youtube-dl-wpf

A simple GUI wrapper for youtube-dl and yt-dlp.
GNU General Public License v3.0
871 stars 68 forks source link

Presets list "for humans" #206

Closed Korb closed 3 months ago

Korb commented 3 months ago

I assume that the GUI for yt-dlp is used mainly by those who could not bring themselves to figure out yt-dlp in its original form, as a command line application with dozens (or hundreds?) of keys / parameters. So such users are looking for something that is more in line with their UX. By this I mean a graphical, “mouse” interface, informative enough so that when you are in it you can clearly understand which element does what. Usually, this is implemented by means of a variety of unified techniques, such as historically accepted graphic symbols, mutual placement of display and indicator elements, behavior when hovering over the cursor, when pressing the mouse buttons, etc.

This application, as an independent one, from the point of view of the user who is launching it for the first time and does not understand yt-dlp (otherwise he would use yt-dlp, and not its extremely functionally reduced version in the form of a GUI) raises many questions. In particular, this concerns the list of presets:

  • Auto
  • bestvideo+bestaudio/best
  • bestvideo+bestaudio
  • (...)
  • YouTube 4K 60fps H DR AVI + Opus WebM (701*251)
  • YouTube 4K 60fps HDR VPS Opus WebM (337251)
  • YouTube 4K 60fps AVI + Opus WebM (401*261)
  • YouTube 4K 60fps VPS * Opus WebM (31 5+251)
  • YouTube 4K AVI * Opus WebM (401+251)
  • YouTube 4K VP9 + Opus WebM (313*251)
  • YouTube 1440p60 HDR AV1 Opus WebM (700251)
  • YouTube 1440p6 0 HDR VPS Opus WebM (3 362 51)
  • YouTube 1440p6 0 AV1 * Opus WebM (400+251)
  • YouTube 1440p6 0 VPS Opus WebM (3 032 51)
  • YouTube 1440p AVI Opus WebM (400251)
  • YouTube 1440p VP9 + Opus WebM (271*251)
  • YouTube 1080p60 AV1 * Opus WebM (3S9+251)
  • YouTube 1080p60 VPS * Opus WebM (303+251)
  • YouTube 1080p60 AVC AAC MP4 (299140)
  • (...)

There are no hints about what exactly selecting the "Auto" option does, how "bestvideo+bestaudio/best" differs from "bestvideo+bestaudio", and what the mysterious numbers in brackets mean for the rest of the list items.

I think this field needs an explanatory hint. It can be implemented

  1. using a symbol with a question mark, and pop-up text when hovering over it.
  2. it can be made as a help page that opens when you press F1. This option is worse, because it forces you to look for the necessary section related specifically to the Presets field.
  3. as a last resort, help for this list can be implemented as a wiki page for this repository, also opening when you click on the question mark. This, in my opinion, is also undesirable, because users do not like being forcibly transferred from one application to another (browser).
database64128 commented 3 months ago

I assume that the GUI for yt-dlp is used mainly by those who could not bring themselves to figure out yt-dlp in its original form, as a command line application with dozens (or hundreds?) of keys / parameters. So such users are looking for something that is more in line with their UX.

That's the case for many other yt-dlp GUI projects, but not this one. I wrote youtube-dl-wpf to automate the process of selecting a set of command-line arguments suitable for downloading any given video. youtube-dl-wpf is meant to be used by developers familiar with CLI apps and how command-line arguments work. This is why it has a "List formats" button, an "Arguments" section front and center, and displays the logs directly.

and not its extremely functionally reduced version in the form of a GUI

youtube-dl-wpf allows you to specify custom arguments, and you can save them as custom presets. There's no restriction of access to yt-dlp's features.

I agree the out-of-box experience (or rather the lack thereof) is terrible. And I plan to address this by adding a "Get Started" pop-up, guiding the user to configure the necessary paths on the first run.