Live data from Hacker News

A cross-platform GUI for YouTube-dl

github.com

151–156 of 156 posts

Re: A cross-platform GUI for YouTube-dl

#151
post #7

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…

> youtube-dl is a 10 year old project. Where are all the great qt gui-s for it

Here: https://github.com/MrS0m30n3/youtube-dl-gui

or here: https://github.com/jeanslack/Videomass

Re: A cross-platform GUI for YouTube-dl

#152

Earlier 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.

No, nothing is perfect, but this is IMO a case of one being vastly worse than the other, with the only merit that it's "easier".

Re: A cross-platform GUI for YouTube-dl

#153
post #75

Earlier 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…

How is wxwidgets not native? They literally wrap native controls. Short of writing directly to a device frame buffer, you aren't getting any more native.

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

#154
post #90

Earlier 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…

> But writing the UI descriptions would be harder in JSON than in my bespoke language.

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

#155
post #107

Earlier 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.

That's true. I forgot Minecraft. I now have two examples (Eclipse, Minecraft). Although Minecraft moved away from Java to native clients for consoles, mobile and even a Windows native version.

Re: A cross-platform GUI for YouTube-dl

#156
This past week I made/forked something similar for macOS only.

There 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!

https://github.com/jslpc/Swift-DL

Post reply on HN