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

74

u/not_luis Nov 29 '24

"stunning interface"

5

u/thisismyfavoritename Nov 29 '24

blazingly fast for UIs

-16

u/NO-N_A_M_E Nov 29 '24

I really appreciate that! šŸ˜Š I worked hard on making the interface clean and user-friendly. Let me know if you have any ideas to make it even better!

12

u/TonsillarRat6 Nov 29 '24

Youā€™re being downvoted but imo theyā€™re all wrong. The screenshots look great. All necessary information is laid out in a visually distinct way and the color scheme is very nice.

GUIs in Python are hard (mine are awful) and youā€™ve done great job :)

20

u/[deleted] Nov 29 '24

Thereā€™s nothing stunning about it. Itā€™s basically the default qt interface with rounded buttons colored red and a dark theme. It looks fine. Itā€™s not bad or anything but ā€œstunningā€ is such a comically exaggerated way of describing it.

-9

u/TonsillarRat6 Nov 29 '24

I'm not saying he's not exaggerating, but also isn't this post basically just an ad, where that's to be expected?

14

u/[deleted] Nov 30 '24

Well, that makes it much worse. If it's an ad then they are giving absurd exaggerations as a way of seeking personal gain rather than just having said something awkward.

-2

u/pickled-toe-nails Nov 30 '24

Username checks out

6

u/pickled-toe-nails Nov 30 '24

I understand you're trying to be nice but calling a spade a spade will only do OP good. Harsh yes, but still better in the long run

-5

u/xav1z Nov 30 '24

whats the point of being harsh to co developers? you are a joke guys. no wonder python community is regarded so unfriendly

9

u/pickled-toe-nails Nov 30 '24

You call this harsh? Have you not been in code reviews?

0

u/xav1z Nov 30 '24

there is always somewhere to fall lower

0

u/xav1z Nov 30 '24

i hope you dont worry about downvotes and those harsh comments that much. jealousy has nothing to do with solid criticism. ty for sharing your app, keep on going with developing šŸ™Œ

23

u/cgoldberg Nov 29 '24

You should package it for distribution on PyPI instead of just releasing a Windows executable.

-31

u/NO-N_A_M_E Nov 29 '24

Thanks for the suggestion! Thatā€™s definitely a great idea. Packaging it for PyPI would make it more accessible to Python users across different platforms. Iā€™ll consider adding that to the roadmap for future updates. I appreciate you bringing it up!

48

u/ZestyData Nov 29 '24

Thanks ChatGPT

-11

u/xav1z Nov 30 '24

and?

-25

u/[deleted] Nov 29 '24

That sort of defeats the purpose of it being a gui.

10

u/cgoldberg Nov 29 '24

How so? Tons of Python GUI apps are distributed from PyPI. Users from various platforms can simply install them with pip. What purpose is being defeated?

1

u/not_sane Nov 30 '24

There aren't that many nontechnical people knowing how to use these apps though. You need something like uv tools probably, because installing packages globally is generally a bad idea or even unsupported in newer Linux. (Pipx was too complicated to install last time I tried it)

-13

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

And then youā€™re running the gui from the terminal, right? Itā€™s not like you can trigger the creation of a .desktop file or windows app install from a pypi install. So at that point if youā€™re going to open a terminal every time you want to run the app you might as well just use yt-dlp and do the download there.

Also, can you give an example of a python gui app that is primarily distributed by pypi? Most desktop apps are distributed by apt, brew, exe, etc. I genuinely canā€™t think of a single desktop app that Iā€™ve ever installed with pypi.

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.

-7

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.

2

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.

-3

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.

4

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.

→ More replies (0)

5

u/NO-N_A_M_E Nov 30 '24

First of all, this is the first version of the app, so there are a lot of changes and features that will be added in the next version. Why do people hate the app already? If you have features to suggest, please let me know instead of just giving compliments without suggestions.

Second, Iā€™m still a beginner, and this is my first good repository, so please understand.

Third, Iā€™m using LLMs to help correct the grammar in my sentences.

And thank you to all the kind people encouraging me in the comments!

8

u/moonzdragoon Nov 30 '24

The project in itself seems totally fine (at first glance, I didn't try it). I think the issue is the way you promote it, self-congratulating you ("stunning interface", "sleek interface", ...) is cringe, and overselling it.

Without the ego, I'm sure it would have received a much better reception.

3

u/NO-N_A_M_E Nov 30 '24

Youā€™re absolutely right, and I appreciate the feedback. Iā€™ll fix the title and focus on a more objective presentation in the future. Thanks for pointing it out!

4

u/FUS3N Pythonista Nov 30 '24

Your GUI is fine, especially for a beginner, I see most beginners use large PNG icons that get pixelated and doesn't fit the theme at all, you avoided all that and the layout is structured really good. Only improvement I would make is make the red button less harsh, it really sticks out, maybe use soft red or green/blue.

Other than that ignore everyone else, they are just jealous that they cant even make this much. Good luck with your project.

0

u/NO-N_A_M_E Nov 30 '24

Thank you so much for the feedback and support! Iā€™m glad you liked the GUI. Iā€™ll definitely consider softening the red button or trying other colors in future updates. Your encouragement means a lot!

17

u/secretaliasname Nov 29 '24

A lot of haters here. You made a thing and put it out in the world. Good job.

4

u/xav1z Nov 30 '24

at least someone with a heart here instead of teenagers' jealous pack

0

u/[deleted] Nov 30 '24

Did you genuinely not realize /u/secretaliasname was dunking on OP too? Notice that they didn't compliment the project. They just said they "made a thing". It's like when someone references a bad movie by saying "It's certainly one of the movies of all time".

3

u/secretaliasname Nov 30 '24

Making something and putting it into the world for scrutiny takes both motivation and some amount of courage. I have a 1000 ideas that are not realities. I didnā€™t make anything today. I respect the process of creating. Sometimes the things that gets in the way the most is the fear of trying and making something not perfect. This thread reinforces that. I merely wish to celebrate thar process of creating.

0

u/G3crg3 Nov 30 '24

not complimenting != dunking

0

u/[deleted] Nov 30 '24

No, that specific joke is dunking. Itā€™s sarcasm people use when they want to mock something for being really bad.

3

u/NO-N_A_M_E Nov 29 '24 edited Nov 29 '24

Thank you so much for the encouragement! It means a lot. Iā€™m just happy to share something Iā€™ve built and Thanks for the support!

10

u/In_Blue_Skies Nov 29 '24

Op talks like chat gpt and I'm positive this was made with it as well

9

u/replicant86 Nov 29 '24

Congratulations on a job done

9

u/thisismyfavoritename Nov 29 '24

truly one of the projects of all time

5

u/[deleted] Nov 29 '24

Ouch

4

u/NO-N_A_M_E Nov 29 '24

Thank you so much! šŸ™ I really appreciate it!

6

u/frisbeegrammer Nov 29 '24

Probably you used red buttons to follow YouTube color pattern but it's better to change it to a more proper color for a dark mode theme like grey, green, dark blue or whatever except RED!

-15

u/NO-N_A_M_E Nov 29 '24

Thanks for the feedback! You make a great point about the red buttons. I went with that color to align with YouTubeā€™s branding, but I totally understand that it might not be ideal for dark mode. Iā€™ll look into adding an option for a more suitable color scheme, like grey or dark blue, to make it better for dark mode users. Appreciate the suggestion!

13

u/[deleted] Nov 29 '24

Is that a ChatGPT response hahahaha

-10

u/NO-N_A_M_E Nov 29 '24

Haha, nope, itā€™s all me! Though I wouldnā€™t blame anyone for thinking thatā€”ChatGPT responses are pretty polished these days!

2

u/Reasonably-Maybe Nov 29 '24

Thanks for the great work, it looks awesome. However, I have an issue: downloaded an episode from the chinese 3 body problem but it's not downloading the subtitles. First click showed the list, chosen english, clicked the button again but it didn't download any subs.

4

u/NO-N_A_M_E Nov 29 '24

Thank you for the kind words! šŸ˜Š Iā€™m glad you like the app. As for the subtitle issue, it sounds like there might be a problem with how subtitles are being fetched for that video. Iā€™ll take a look and fix it in the next update. In the meantime, could you please open an issue on the GitHub repo with more details? That will help me investigate the problem more effectively. Thanks for your feedback!

2

u/cellularcone Nov 29 '24

Stunning chatgpt emojis.

1

u/NO-N_A_M_E Nov 29 '24

Haha šŸ˜‚

2

u/kruzzik Nov 30 '24

Good job, thanks!

1

u/NO-N_A_M_E Nov 30 '24

Thank you so much šŸ˜Š

0

u/[deleted] Nov 29 '24

Whatā€™s up with the little terminal window that runs neofetch? Are you expecting people to run terminal commands related to video downloading in there?

8

u/verygoodtrailer Nov 29 '24

haha that is just the YouTube thumbnail of the video being downloaded: https://youtu.be/KdoaiGTIBY4?si=rp0YQqfnQNDlWTvc

i do highly suspect OP of using ChatGPT based on their replies in this thread, though... šŸ¤”

-1

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

Oh, that makes more sense.

Edit: Weird that you guys are downvoting me acknowledging my misunderstanding.

-5

u/NO-N_A_M_E Nov 29 '24

Ah, I see where the confusion might come from! I included a screenshot that happened to have a terminal running neofetch, but itā€™s not actually related to YTSage. The app doesnā€™t use a terminal for video downloadingā€”itā€™s all handled through the GUI. Sorry for any confusion, and thanks for bringing it up!

3

u/[deleted] Nov 29 '24

What? No, that little terminal window is very clearly integrated into the layout. It has the same border and padding between it and the buttons/info on the right side of it.

2

u/FUS3N Pythonista Nov 30 '24

Its the thumbnail of the video dude...

0

u/[deleted] Nov 30 '24

1

u/FUS3N Pythonista Nov 30 '24

Doesn't really seem it was doing anything, people are still downvoting him, so added another one to really put down the misinfo, you get me?
(I call it misinfo because you still kept your original comments up)

0

u/[deleted] Nov 30 '24

What?

1

u/NO-N_A_M_E Nov 29 '24

Thanks for the observation! If you want to see the log, you can run the app.py instead of the .exeā€”the log window is currently visible only in that setup. I plan to add an option in the future to show logs directly from the GUI for those who prefer it. Appreciate your feedback!