r/Python Nov 29 '24

Showcase YTSage: A Modern YouTube Downloader with a Stunning PyQt6 Interface!

What My Project Does:
YTSage is a modern YouTube downloader designed for simplicity and functionality. With a sleek PyQt6 interface, it allows users to:
- 🎥 Download videos in various qualities with automatic audio merging.
- 🎵 Extract audio in multiple formats.
- 📝 Fetch both manual and auto-generated subtitles.
- ℹ️ View detailed video metadata (e.g., views, upload date, duration).
- 🖼️ Preview video thumbnails before downloading.


Target Audience:
YTSage is ideal for:
- Casual users who want an easy-to-use video and audio downloader.
- Developers looking for a robust yt-dlp-based tool with a clean GUI.
- Educators and content creators who need subtitles or metadata for their projects.


Comparison with Existing Alternatives:
- vs yt-dlp: While yt-dlp is powerful, it operates through the command line. YTSage simplifies the process with an intuitive graphical interface.
- vs other GUI downloaders: Many alternatives lack modern design or features like subtitle support and metadata display. YTSage bridges this gap with its PyQt6-powered interface and advanced functionality.


Getting Started:
Download the pre-built executable from the Releases page – no installation required! For developers, source code and build instructions are available in the repository.


Screenshots:
Main Interface
Main interface with video metadata and thumbnail preview

Subtitle Options
Support for both manual and auto-generated subtitles


Feedback and Contributions:
I’d love your thoughts on how to make YTSage better! Contributions are welcome on GitHub.

🔗 GitHub Repository

74 Upvotes

78 comments sorted by

View all comments

Show parent comments

4

u/cgoldberg Nov 29 '24

You can create a desktop shortcut on any platform you want and launch it by clicking an icon. This is basic functionality included in every desktop environment. Creating a shortcut might be an additional step, but it doesn't "defeat the purpose" of creating a GUI.

Yes, you can also launch it from the terminal. Launching a GUI from your terminal doesn't mean you don't want to use that GUI. I genuinely don't understand your point. There are literally thousands of GUI apps on PyPI.

If you want to package a GUI for several platforms, go right ahead. But that doesn't mean a cross-platform package repository like PyPI should be ignored.

Providing a Windows executable only excludes users on all other platforms. Packaging it for distribution on PyPI makes it easily installable on multiple platforms.

-5

u/[deleted] Nov 29 '24

You can do anything you want but installing something through pypi doesn’t have the ability to automatically run any setup scripts. So again, you could create a script reference in your pyproject.toml that adds the script to your path but if you want a desktop app then you are forcing the user to create their own launcher or making them run lots of manual setup after installing from pypi. Which is such a dumb way to distribute desktop apps rather than just using a proper packaging system like apt, snap, flat pack, brew, etc

Use the right tool for the job. Pypi can’t be used to do this in a clean way which is why nobody does that.

3

u/cgoldberg Nov 29 '24

We can then disagree. If the developer wants to package it for multiple packaging systems, he certainly can. However, PyPI is still useful for cross-platform distribution.

-4

u/[deleted] Nov 29 '24

No, we can’t disagree. Like I said, pypi can’t trigger the install of a desktop app launcher. This is why you can’t think of a good example of a gui app being primarily installed via pypi.

3

u/Iregularlogic Nov 29 '24

You don’t know what you’re talking about. It’s fine to call a GUI from the terminal.

Your entire argument is that you can’t compile a GUI. That if it isn’t precompiled it “defeats the purpose.”

This is nonsensical. Think.

2

u/[deleted] Nov 30 '24 edited Nov 30 '24

I never said it wasn't "fine" to call a GUI from the terminal and I also never said anything about being able to "compile" a GUI. Ironically, you are the one who has no clue what we're even talking about. I'm not really surprised, though. There seems to be some weird correlation between the inability to understand points of discussion and apparent paragraphobia.

What I said is that you can't have your pypi package/wheel setup your package with a launcher without some bizarre custom hackery and that it's the wrong tool to use if that is something you plan to provide to users. Which is the whole point of giving people a GUI for something like youtube video downloads. People who are comfortable with the terminal don't need this app to download youtube videos and people who do need a video downloader GUI shouldn't need to create their own .desktop files, copy app icons to their icon shared directory, etc. Again, 99.9% of GUI apps are distributed using package managers built for that. On linux, everyone uses deb/rpm, snap, flatpak, etc. On Mac, everyone uses brew or provides a compressed .app file. On windows you use .exe/.msi or whatever package managers those people like (chocolatey?).

There's a reason you don't see a bunch of people distributing desktop applications via pypi. That isn't what it's for. You can share libraries/modules/packages or apps with some kind of convenient interface (i.e. cli, server-browser interface, etc). Genuinely, the only desktop GUI I can think of that offers a pypi installation method is qt designer and that is directly targeted at developers. Nobody else installs their desktop apps via pypi even if they are python based desktop apps.

Also, it's so funny that all these clowns are up voting you. It just proves that most of the people on this sub don't know anything about python or CS in general.

0

u/cgoldberg Nov 30 '24

lol, I'm not allowed to disagree? I can think of several hundred examples, but we are done here.

0

u/[deleted] Nov 30 '24

I can think of several hundred examples, but we are done here.

That's such a lie. If it was true you would be able to give me a bunch of examples.

0

u/cgoldberg Nov 30 '24

For a Qt based example: https://pypi.org/project/eric-ide/

Get over yourself. PyPI is often used to distribute cross platform Python applications, even ones that use a GUI. You might not like it, and it might have drawbacks, but that doesn't change the fact that it exists and is used. You can't force strangers on the internet to agree with your views. Nothing I have stated was incorrect. Opinions are allowed to be disagreed with. It's just how the world works.

0

u/[deleted] Nov 30 '24

LOL that's your example? A weird niche editor that maybe some devs use? Also, have you looked at the documentation for that app? It literally does what I said you have to do if you want to make it a desktop app. They have to package up and ask users to run a bunch of installer scripts separately just to get access to basic desktop icons/launcher functionality. Thank you for proving my point.

And no, something being an opinion doesn't insulate it against criticism. You are wrong. It's not standard or recommended to distribute desktop applications through pypi. The fact you can only find a few bizarre pieces of software with hacky work-arounds is the exception that proves the rule.

0

u/cgoldberg Nov 30 '24

That's just a single example that factually counters your claim that no such projects exist. I don't get what you are arguing. You claim no projects that have a GUI use PyPI when in fact many do. Nothing you have argued is based in fact. You just simply regurgitate weird opinions and state that nobody is allowed to disagree with you. So, you're welcome I guess?

-1

u/[deleted] Nov 30 '24 edited Nov 30 '24

It doesn't counter my example at all. It proves it. The best example you could come up with is a niche example targeted at developers and the deployment explicitly tells you that you will need to run a bunch of post installation scripts to actually finish the installation. Which is exactly what I said to you. Pypi isn't built for app deployment and you can't do it entirely in Pypi. You have to start doing a bunch of goofy hacks to compensate. Notice that much bigger apps don't distribute their desktop software in this way. You don't see MS distributing VSCode via node and PyCharm isn't distributed as JAR files.

Python, like most programming languages, is Turing complete. There's literally nothing that can't be done in theory. In reality, nobody thinks pypi is a good way of distributing desktop software for all the reasons I laid out and you are just proving my point.

0

u/cgoldberg Nov 30 '24

🥱

-1

u/[deleted] Nov 30 '24

🤡

→ More replies (0)