In case you're wondering: yes, it uses Electron. Because you definitely need yet another browser just to watch youtube videos.
I just don't get these kind of comments. This person's javascript knowledge enabled him to develop this multi-platform app, it looks and feels great and does its job. Yes, it uses a lot of memory (140mb by just opening it) but how long does this stay actually open? You download some videos and close it in a few minutes. It's not a persistent use case like a chat client. youtube-dl is a 10 year old project. Where are…
A cross-platform GUI for YouTube-dl
151–156 of 156 posts
Re: A cross-platform GUI for YouTube-dl
#152Earlier quoted context omitted.
Constantly providing an "easy way out" for problems in form of technically inferior solutions is not a good path to tread on.
So no one should ever do anything unless it is technically perfect? That’s an even worse path to tread on.
Re: A cross-platform GUI for YouTube-dl
#153Earlier quoted context omitted.
And I don't get how you can be so defensive about Electron. It's technically inferior to literally any native solution such as wxwidgets or Qt. RAM usage, CPU cycles, Hard drive space... it's such a disrespectful stance on computing resources.
Qt and wxWidgets are hardly native. Come on now. Electron isn’t perfect but if you are trying to build a good-looking/functioning UI for platforms that aren’t Linux (and thus have no UX consistency anyway, Elementary being an exception), it is a very viable option for lots and lots of devs. Especially web devs. I get the hate at bad Electron apps but it’s also an unfair punching bag, IMHO. I would rather an app like…
Qt is does indeed not use platform controls, but it is still a huge distance away of the insanity that is Electron.
Highdpi is also a solved problem on a lot of platforms already, and only really a problem in the first place if you use absolute pixel offsets or coordinates instead of extents, spacers and other automatic geometry tools.
Re: A cross-platform GUI for YouTube-dl
#154Earlier quoted context omitted.
Looks fine and dandy but could also be represented in JSON with not much effort and then you'd be using an interchange format understood by many tools instead of a bespoke language. I'm definitely biased being a web dev but JSON is just so widely used and supported... seems ideal for small bits of config like this.
> Looks fine and dandy but could also be represented in JSON with not much effort Yes it could. But writing the UI descriptions would be harder in JSON than in my bespoke language. My goal in writing the tool was to maker UI descriptions as easy to write as possible. If I hadn't cared about that I wouldn't simply continued to hard-code them in Tkinter. > I'm definitely biased being a web dev but JSON is just so widel…
For example, this:
menu "File" {
menuItem @New "New"
menuItem @Open "Open..."
menuItem @Save "Save"
menuItem @SaveAs "Save as..."
menuItem @Exit "Exit"
}
Might become something like this: {'widget': 'menu', 'text': 'File', 'contents': [
{'widget': 'menuItem', 'id': 'New', 'text': 'New'},
{'widget': 'menuItem', 'id': 'Open', 'text': 'Open...'},
{'widget': 'menuItem', 'id': 'Save', 'text': 'Save'},
{'widget': 'menuItem', 'id': 'SaveAs', 'text': 'Save as...'},
{'widget': 'menuItem', 'id': 'Exit', 'text': 'Exit'}
]
}
Which would turn writing a UI from something that's a pleasure to something that's a chore. People who would deliberately write software that's a chore for others to use ought not IMO be writing software that will be used by other people.Re: A cross-platform GUI for YouTube-dl
#155Earlier quoted context omitted.
> back in the 1990's we faced a similar thing, where web "apps" were ugly and slow And when's the last time you loaded an app with the Java VM on the desktop, unless it was Eclipse and you were about to use it to write more Java?
Minecraft. q.e.d.
Re: A cross-platform GUI for YouTube-dl
#156There was a GUI for youtube-dl I liked but never could get to work called Get-It (https://github.com/Kevin-De-Koninck/Get-It), and with many people switching to the actively-maintained fork yt-dlp, I decided to try using that as a base for making a clone with the latter as a backend.
I don't know Swift at all but thought I'd try it out to see if I could, and it seems to work for the most part on my end. I also cleaned up random errors I found in the code (like a rogue youtube link to a Grand Theft Auto 5 video?) and made things a bit more consistent, or at least I'd like to think so. Changed the UI and added a toggle to block sponsorships from videos as well, but not totally sure if that works all that well yet.
I'd love if anyone would try it out and report any issues they run into, it's been fun trying to fix it up!