ytdl-org / youtube-dl

Command-line program to download videos from YouTube.com and other video sites
http://ytdl-org.github.io/youtube-dl/
The Unlicense
132.29k stars 10.03k forks source link

Built-in way to "update from Git" (latest GitHub commit on branch master) #32012

Open cousteaulecommandant opened 1 year ago

cousteaulecommandant commented 1 year ago

Checklist

Description

I'd love to be able to update to the latest, cutting-edge, not-yet-officially-released version of youtube-dl from the GitHub repo whenever I had a problem with it, just to see if it's already been fixed, but without having to get myself into complications with downloading and installing from git (or having a tool that does all that for me), and without having to wait to the next "stable" release.

Something like:

youtube-dl -UU  # short form; using -U twice as in "update more"
youtube-dl --update-experimental  # long form

which would automatically download the latest commit in branch 'master'.

Of course, since updating to the latest commit is dangerous and can break a bunch of things on certain systems, there should be an easy way to revert that and "downgrade" to a "normal" release. Therefore, if I'm on an "experimental" release, running youtube-dl -U (single -U) or some other option like youtube-dl --update-stable should revert back to a "normal" release. If the release is older than the one I'm using, then it could prompt me if I'm sure I want to revert, but still let me revert. (If it's newer then it's pointless to ask; just update to the newer, stable release.) This should solve almost every possible issue that may arise from this (except, of course, if an experimental release breaks the update system, in which case I guess the user will need to manually reinstall youtube-dl).

Do you think this would be feasible?

(And yes; I'm aware that this feature won't be available for regular installs until a new version of youtube-dl is released, which may take some time; and once that happens it's likely that new releases will be more frequent anyway so this feature will be a bit pointless by then... but it would still be nice to have this feature just in case releases ever stop coming again.)

dirkf commented 1 year ago

I'm inclined to think if you want a bleeding edge you should probably get to grips with the relevant pip commands.

You can always pull an unofficial (or, possibly in the future, official) nightly build.

cousteaulecommandant commented 1 year ago

you should probably get to grips with the relevant pip commands.

Well, I was hoping for youtube-dl to do that for me :(

pukkandan commented 1 year ago

It's not possible for standalone exe to update to source code (git) varant. For this to work, youtube-dl would have to create a new exe on each commit like https://github.com/yt-dlp/yt-dlp-nightly-builds.

cousteaulecommandant commented 1 year ago

Oh... I can see how that can be a problem. I would have thought that the updater simply downloaded the Python source code (or a zipped version), but if it actually needs to build the .exe that won't be so easy.

(Unless the installer just downloads the Python code and simply executes that code instead of the one built into the executable... not sure how feasible that is. Maybe not much.)