Ezytdl Versions Save

Advanced electron-based frontend for yt-dlp

3.0.0-dev.358

2 months ago

3.0.0-dev.356

2 months ago

3.0.0-dev.355

2 months ago

2.4.2

10 months ago



Release v2.4.2

YOU CAN NOW SHOW THE FILE LOCATION IN THE FILES APP!

image image

this is a small update again, hence minor version semver change.

the only other change is that the app (hopefully) has fixed the updater bugs where nightly wouldn't upgrade to stable and vice versa. if you still have issues, please open an issue on github, i really want to fix this issue.

2.3.2

10 months ago



Release v2.3.2

a new tab has appeared

mouse pointer hovering over the "convert" button shown at the top of the app

YOU CAN NOW CONVERT FILES STORED LOCALLY ON YOUR COMPUTER -- IN BATCH, TOO!!

there is now a little icon beside each download progress card thingy, which will indicate if it was a conversion or download request (using the same icon as the tab button)

there is now a little icon beside each download progress card thingy, which will indicate if it was a conversion or download request (using the same icon as the tab button)


you can now add custom FFmpeg GPU acceleration arguments!

the file will be located in {config dir}/ezytdl/ffmpegGPUArgs.json -- the app's default arguments are included in this json file, so you can use them for reference.

NOTE: just like the ffmpeg presets json file, you cannot modify the app's default gpu args, you must copy them and create a new object in the json file.


there are a LOT of bugfixes & improvements this time -- as always, there's more to come lol

here's that list!

  • the highlight bugfix / improvements:
  • EVERY SINGLE SYNCHRONOUS FUNCTION (possible) HAS BEEN "PROMISIFIED" -- this means that the app will no longer freeze (or will freeze MUUUUCH less) from simple file operations when you're downloading / converting a file (or multiple)! this is a HUGE improvement, and i'm so glad i finally got around to doing it (after putting it off for so long)
  • NOTIFICATIONS IN-APP NOW HAVE BUTTONS. this means that you can now click on the notification to dismiss it always! this is essentially a QoL improvement.
  • animations will no longer pause when the app is minimized! i finally got sick of minimizing the app to do something else, and coming back to the animation finally completing when i tab back to the app, with downloads / conversions not starting until then. this WAS the intended functionality since the start, but it took me until now to discover that anime.js has its own property that pauses animations on minimize / window obstruction
  • there have been MANY improvements in optimization, and the app should now run a lot smoother -- less data is now transferred between the main process and the UI process, and the app should now be a lot more responsive.
  • the app will now take your system color, and make it vibrant! this makes it look a lot better when you're using a dark theme, and it's just a nice touch in general, and allows multiple color schemes to be achieved.
  • when trimming media, the app now gives you a proper percentage of how much of the target file duration instead of the amount of time relative to the entire media's duration.
  • on mac systems (and maybe linux systems??), the app will now retrieve the whole system PATH env variable, and use that to find the ffmpeg binary. this was untested, but i'm hoping it works.
  • "Could not convert the audio stream to * -- target codec not supported" has been fixed!
  • formats are now properly sorted by quality / preference (as they should've been, i don't know what changed)
  • the app will now stagger format lookups, so that it doesn't make a million requests at once (this is a good thing, i promise)
  • the in-app update button is now functional when updates are available!
  • mp4 bitrates are now set to reasonable (imo) values, and will look better on default conversions.

thank you for reading all the way down here. look in your settings, and you'll find a very nice "secret" conversion preset.

2.2.0

10 months ago


Release v2.2.0

YOU CAN NOW TRIM THE MEDIA YOU DOWNLOAD!

A popular request I've had for a while now (you know who you are) is to be able to download certain portions of media -- this is now possible!

image

When you download individual pieces of media (not playlists), you can now trim the file down to only what you wanted to save!

NOTE: This is only possible when FFmpeg is present, and you are actually converting media.


YOU CAN NOW CREATE CUSTOM CONVERSION PRESETS!

This release introduces a new feature that allows you to create custom conversion presets. You can now create your own conversion presets and use them to convert your downloaded videos.

You can create presets straight in the app -- just fill out the conversion options regularly, and click on "Save as Preset"

image

Once you've saved the preset, the option will then appear!

image

If you need to add advanced options or other options that are usually not included in this "Save as Preset" option, you can manually edit the entry in %appdata%\ezytdl\ffmpegPresets.json (or your system's config directory)! -- you will find your saved preset like so:

image

You will also find all of the other presets that are default with the app -- you can use these as reference to what you can add to your preset options!

NOTE: If you attempt to overwrite an existing preset, it will be reset to default automatically. Presets with numbered keys are default to the app, and cannot be modified. To modify these presets, you can copy and paste them with a new key, modify those, and hide the default preset.


YOU CAN NOW HIDE CONVERSION PRESETS YOU WON'T BE USING

I've included a few extra presets this version, but you can now hide them from appearing! Just go to your settings, and scroll down until you find "Visible Conversion Presets" -- you will find every conversion preset available to you, including your own!

image

Everything that is set to enabled here will be visible on every download conversion!

image


And now, the bugfixes / enhancements.

  • Previously, when running hardware conversion detection, the app ran checks using the H.264 codec -- this is no longer the case; the app now detects the codec of the target media, and will test accordingly. This is especially useful if you need to use a custom value for "ffmpegTestMediaLink" in your config file.
  • When converting media to a new codec, the app will now check if the codec is supported by the FFmpeg build provided. If it is not, the app will let you know, and will cancel the conversion.
  • yt-dlp is now always instructed to save to a randomly-generated filename, and the app will automatically rename the file to the correct filename after the download is complete. This is to prevent the strange issue of the app adding unusual characters to the filename (due to encoding differences) when there are other characters such as emojis or certain symbols.
  • You can now enable whether or not you want nightly builds included in update checking -- this is useful if you used nightly builds, but auto-updated to a stable build, and never got another nightly build. This value will default to true if you are using a nightly build, and false if you are using a stable build.
  • Dragging format cards are now removed -- they previously slowed down the UI, and were not useful.

2.1.2

10 months ago


Release v2.1.2

small note: i released 2.1.1, but quickly pulled it due to a few more critical bugs. this 2.1.2 fixes those :D

i was so excited to release 2.1.0 that i didn't notice the MP4 conversion preset actually converted to an mp3

image

this has been fixed now lol


previously, the app auto-detected what hardware is compatible with ffmpeg's hardware encoding every time the app started, which slowed down the start time (and in some cases, the entire pc) an incredible amount. this has been removed, and you can now manually enable which hardware transcoding platform your device can utilize

image

i'd like to point out that i don't have an nvidia system, so i actually don't know if the nvidia conversions work at all. if anyone has nvidia and uses this app with hardware transcoding, PLEASE let me know if it works or if anything needs to be changed. i'm always open to comments :D

bonus feature: i've added a "config actions" thingy, meaning that buttons can be added to certain config options to perform certain actions -- here, "auto-detect" does exactly what the app previously did during startup, and automatically saves what is compatible.

you can also interactively select the download folder you'd like to use in the app now as well

image


here are some smaller additions / bugfixes

  • i've rewritten the entire compatibility detection part of the conversion process -- now instead of attempting one decoder and every encoder, it will dynamically figure out which encoders and decoders work, and will attempt multiple combinations of those before falling back to using only decoder, encoder*, and/or software.
    • in addition, if your hardware supports it, it will also allow using only a decoder and not using an encoder
  • i've modified the gif conversion preset to look a little better when it does convert -- unfortunately, this increases the filesize. soon, i'll make it a possibility to import your own conversion presets
  • it's now possible to use your own ffmpeg input & output arguments with the custom preset with advanced mode enabled
  • previously on startup, the app used to also generate all system tray icons, ALSO slowing down startup time -- now, when you open ezytdl from this version on, it will cache the icons to be used every time.

2.1.0 honorable mentions:

image

2.1.0

10 months ago


Release v2.1.0

When converting media, you can now choose a conversion preset, or use custom conversion arguments!

image

...as a bonus, you can now also pick the video & audio codec of the target file!

image


There is one critical bug from previous release that I had to fix:

  • When starting the app for the first time, it downloaded the yt-dlp bridge but nothing appeared on the UI -- it was essentially v o i d. This has been fixed!

2.0.1

10 months ago


Release v2.0.1

hotfix: app no longer gets stuck if old settings button was clicked, and the changelog is now a popout to prevent navigation issues

below is the release notes for v2.0.0


It's been two months since the last release, but hear me out.

a LOT of testing was needed for this release for the best experience -- there's a ton to unpack here. This update brings a lot of new features, optimizations, and bug fixes -- here are some of the highlights:


Rewritten yt-dlp integration

This is the headline of the release, and is what required the most amount of testing. I've written a bridge in Python that takes yt-dlp's exposed Python interface, and creates a thread for each yt-dlp call. This allows for multiple calls to be made at once, without relying on the system to load the libraries needed for yt-dlp on each execution, overall allowing the app (and your entire system) to be more responsive in every case possible -- this is MOST noticeable when downloading more than 4 files simultaneously.

Metadata

This one's a HIGHLY requested feature, and I'm very happy to announce that it's been finally added! You can now download media with metadata tags & thumbnails! If you download a playlist, you also have the option to save it as an album, which will additionall tag the track numbers and album artist!

Spotify integration

You can now download Spotify playlists and albums! This is a feature that has been requested for a while, and I'm happy to say that it's finally here. You can now download Spotify playlists and albums by pasting the link into the URL box, and clicking the "Download" button.

NOTE: This does NOT download directly from Spotify. This requests the metadata of the playlist / album, and searches YouTube for the best match for each song. If you save the metadata tags to the destination file, the app will save the Spotify metadata to the file, and not the YouTube metadata.

NOTE: You WILL need to create a Spotify API app on the developer console (the app will remind you) for this to work, as Spotify does not have a public key-less API. This is a one-time process, and you will not need to do this again unless you delete the app from your Spotify account.

NOTE: This feature is still in beta, so if you encounter any issues, please report them on the issue tracker

Threaded playlist iteration

This one's pretty big. Previously, the app relied on yt-dlp to iterate through a playlist to get the full metadata when collecting info -- this was incredibly slow, because yt-dlp was designed to iterate through playlists one-by-one. Now, ezytdl takes the basic information of the playlist, and if it determines that the playlist didn't have enough information during the initial scrape, it will get the information of each playlist entry, multiple at a time. This is a huge improvement, and makes resolving large playlists much faster.

Clipboard Checker

The app now gives you the option (disabled by default) to check your clipboard for URLs. If you enable this, the app will check your clipboard for URLs, and if it detects one, it will notify you asking if you'd like to download that specific link. This is useful if you're downloading a lot of videos at once, and don't want to have to copy and paste each URL into the app.

NOTE: The app does NOT do anything with the link UNTIL you have clicked the notification. This is to ensure that the app doesn't make requests without your permission.

NOTE: The app does NOT do anything with what's in the clipboard unless it's a link, and if it's a link, it will only do the aforementioned. No requests are sent anywhere, and nothing is hidden from you. Remember, this project is open source!

UI improvements

The UI has been improved in a few ways:

  • Clicking the "Settings" button no longer switches the entire app's page, but rather creates a pop-up in the same window. This removes the long-lasting issue of the window controls flashing when switching between the main page and the settings page.
  • The app now adapts to your system's color scheme! (windows & mac only)

Drag & drop elements

This one's pretty small, but you can now drag and drop certain elements to insert them where needed. The biggest use case for this is the "File Name Format" field in settings -- you can now drag a button and insert it precisely where you want it instead of only being able to click it which appends it to the end of the textbox. You can also drag and drop playlist / search entries into the url box, and this will get the information of that specific entry.

File name & path sanitization

A huge issue in the app previously was that it did not properly sanitize filenames and paths, which caused issues when downloading files with special characters. This has been fixed, and the app will now properly sanitize filenames and paths.

"Best Download" -> "Quick Download"

The "Best Download" button has been renamed to "Quick Download," as getting the best formats of certain YouTube videos downloaded separate audio and video streams, which is not ideal for most users. The "Quick Download" button will now download the best format that is both audio and video, and will download the best audio-only format if the video is unavailable.

...and there are a LOT more new options and features that would essentially take too much time to map out here, so i'll leave that to you to discover :D


i'd like to take this time to thank you for actually using this app; i created this as a simple wrapper for yt-dlp not expecting it to really get anywhere, and wasn't planning on working on it for this long, but here we are -- i've been getting compliments for the app a lot more than i was ready for, including certain statements like "the best downloader app."

overall, i'm very happy with how this project has turned out, and i'm very excited to see where it goes from here! thank you all for the continued support!

2.0.0

10 months ago


Release v2.0.0

It's been two months since the last release, but hear me out.

a LOT of testing was needed for this release for the best experience -- there's a ton to unpack here. This update brings a lot of new features, optimizations, and bug fixes -- here are some of the highlights:


Rewritten yt-dlp integration

This is the headline of the release, and is what required the most amount of testing. I've written a bridge in Python that takes yt-dlp's exposed Python interface, and creates a thread for each yt-dlp call. This allows for multiple calls to be made at once, without relying on the system to load the libraries needed for yt-dlp on each execution, overall allowing the app (and your entire system) to be more responsive in every case possible -- this is MOST noticeable when downloading more than 4 files simultaneously.

Metadata

This one's a HIGHLY requested feature, and I'm very happy to announce that it's been finally added! You can now download media with metadata tags & thumbnails! If you download a playlist, you also have the option to save it as an album, which will additionall tag the track numbers and album artist!

Spotify integration

You can now download Spotify playlists and albums! This is a feature that has been requested for a while, and I'm happy to say that it's finally here. You can now download Spotify playlists and albums by pasting the link into the URL box, and clicking the "Download" button.

NOTE: This does NOT download directly from Spotify. This requests the metadata of the playlist / album, and searches YouTube for the best match for each song. If you save the metadata tags to the destination file, the app will save the Spotify metadata to the file, and not the YouTube metadata.

NOTE: You WILL need to create a Spotify API app on the developer console (the app will remind you) for this to work, as Spotify does not have a public key-less API. This is a one-time process, and you will not need to do this again unless you delete the app from your Spotify account.

NOTE: This feature is still in beta, so if you encounter any issues, please report them on the issue tracker

Threaded playlist iteration

This one's pretty big. Previously, the app relied on yt-dlp to iterate through a playlist to get the full metadata when collecting info -- this was incredibly slow, because yt-dlp was designed to iterate through playlists one-by-one. Now, ezytdl takes the basic information of the playlist, and if it determines that the playlist didn't have enough information during the initial scrape, it will get the information of each playlist entry, multiple at a time. This is a huge improvement, and makes resolving large playlists much faster.

Clipboard Checker

The app now gives you the option (disabled by default) to check your clipboard for URLs. If you enable this, the app will check your clipboard for URLs, and if it detects one, it will notify you asking if you'd like to download that specific link. This is useful if you're downloading a lot of videos at once, and don't want to have to copy and paste each URL into the app.

NOTE: The app does NOT do anything with the link UNTIL you have clicked the notification. This is to ensure that the app doesn't make requests without your permission.

NOTE: The app does NOT do anything with what's in the clipboard unless it's a link, and if it's a link, it will only do the aforementioned. No requests are sent anywhere, and nothing is hidden from you. Remember, this project is open source!

UI improvements

The UI has been improved in a few ways:

  • Clicking the "Settings" button no longer switches the entire app's page, but rather creates a pop-up in the same window. This removes the long-lasting issue of the window controls flashing when switching between the main page and the settings page.
  • The app now adapts to your system's color scheme! (windows & mac only)

Drag & drop elements

This one's pretty small, but you can now drag and drop certain elements to insert them where needed. The biggest use case for this is the "File Name Format" field in settings -- you can now drag a button and insert it precisely where you want it instead of only being able to click it which appends it to the end of the textbox. You can also drag and drop playlist / search entries into the url box, and this will get the information of that specific entry.

File name & path sanitization

A huge issue in the app previously was that it did not properly sanitize filenames and paths, which caused issues when downloading files with special characters. This has been fixed, and the app will now properly sanitize filenames and paths.

"Best Download" -> "Quick Download"

The "Best Download" button has been renamed to "Quick Download," as getting the best formats of certain YouTube videos downloaded separate audio and video streams, which is not ideal for most users. The "Quick Download" button will now download the best format that is both audio and video, and will download the best audio-only format if the video is unavailable.

...and there are a LOT more new options and features that would essentially take too much time to map out here, so i'll leave that to you to discover :D


i'd like to take this time to thank you for actually using this app; i created this as a simple wrapper for yt-dlp not expecting it to really get anywhere, and wasn't planning on working on it for this long, but here we are -- i've been getting compliments for the app a lot more than i was ready for, including certain statements like "the best downloader app."

overall, i'm very happy with how this project has turned out, and i'm very excited to see where it goes from here! thank you all for the continued support!