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.17k stars 10.03k forks source link

Project dead? #29965

Closed cypheron closed 2 years ago

cypheron commented 3 years ago

Who is left maintaining still project? Even though there are more than 3,800 issues and almost 1k pull requests there hasn't been any commit for more than 2 months.

Also there has been no feedback on most of the proposed extractors by the community, for which I created an overview a while back. It would be nice to see at least a comment from the maintainers.

dirkf commented 3 years ago

Supposing the current project owner and maintainers are not just on a summer break, or a death march project, it would have to be decided whether the project can attract enough support to continue with the same aims, either as-is, or in a fork, with new maintainers.

The yt-dlp project seems to be attracting most interest nowadays, but does not support Python 2, nor even Python < 3.6, which would seem to be the distinguishing feature between the two projects (there are quite few UI and other enhancements as well). Leading Linux distros that are still in extended support came with Python 2 and 3.5 as an option.

I would like to support a Python 2 platform (where the host is a set-top box for which Python 3.6+ may never be built), but it might be possible to do so by cherry-picking and adapting yt-dlp changes.

dirkf commented 3 years ago

No doubt a fine work, even if the site support is limited compared with yt-dl, but there are good reasons why @rg3's choice of Python for yt-dl was successful and they are still valid.

For instance, the platform to which I referred was frozen before Go was created and has trouble with GCC beyond v4.5. Even if there is some Py3 code feature it can usually be compat-ed out to run in older versions.

evilangelmd commented 3 years ago

there are quite few UI and other enhancements as well

didn't knew cli program has UI :D

dirkf commented 3 years ago

It's difficult to use a program with no UI, even if not a GUI! But the point was to contrast new command-line options, which may just be a different way to set the program's parameters, with internal changes like multi-threaded download.

fastily commented 3 years ago

Wish I could sticky this somewhere. The (actively maintained) spiritual successor is yt-dlp

ahm750 commented 3 years ago

The problem with yt-dlp is that it's flagged as a virus by some anti-virus programs.

nicolaasjan commented 3 years ago

The problem with yt-dlp is that it's flagged as a virus by some anti-virus programs.

One false positive on Virustotal: https://www.virustotal.com/gui/file/69f84c6a82af36d50af70368d924032712488974246b8c60020dd992c9d5551f

More in this pinned issue.

rautamiekka commented 3 years ago

The problem with yt-dlp is that it's flagged as a virus by some anti-virus programs.

Don't blindly trust security softwares, the link to a pinned issue explains it.

ahm750 commented 3 years ago

I understand. The issue is that I've built a GUI on top of yt-dlp and some users have avoided installing it after their anti-virus flags it as a virus. I'll try making a custom build of pyinstaller and hope that it would minimize the false positives.

mechalincoln commented 3 years ago

The lead maintainer is @dstftw. I began to believe the theory that he passed away from COVID.

I just emailed him directly, so we'll see if we get a reply or not.

dirkf commented 3 years ago

The problem with yt-dlp is that it's flagged as a virus by some anti-virus programs.

No, as above, the problem is that it doesn't take account of Python versions <3.6. There may be technical quibbles beyond that, but the project's definition doesn't meet the requirements of some users.

7ngel commented 3 years ago

Yep, no issues are ever fixed. Pretty ridiculous.

ghost commented 3 years ago

Leading Linux distros that are still in extended support came with Python 2 and 3.5 as an option.

Which "leading Linux distros" are you talking about?

All of these are 3.6 or newer. And whether they include Python 2 or not is irrelevant if they include Python 3.

For embedded devices I have more sympathy, but on a regular x86 machine it should be easy enough to install a newer version of Python using pyenv if you're somehow stuck with an older unsupported distro.

Do note that Python 3.6 was released nearly 5 years ago. Python 3.5 has been EOL for 1 year, and Python 2.7 has been EOL for nearly 2 years. While it's true that youtube-dl is a very popular project, it simply becomes a maintenance burden to support EOL versions for which neither upstream nor distributions provide support anymore.

(Python 2 is technically still supported by older distros, but it's been long deprecated. In Debian 11 and Ubuntu 21.04 it is not installed by default and only included because certain packages still depend on it. It doesn't even come with pip anymore, which has also dropped support for Python 2.)

triplesixman commented 3 years ago

A good alternative is yt-dlp indeed. But it is very slow to run, which is a handicap for some types of use.

mechalincoln commented 3 years ago

I received a reply:


Sergey M. 6:22 AM (10 hours ago) to me

Hello,

Currently I have no free time to spend on youtube-dl as I'm busy with work, ongoing renovation and other post-relocation stuff.

Best, Sergey.

пт, 17 сент. 2021 г. в 03:19, JD

Hi. I've used youtube-dl for a long time, and I noticed that updates stopped a few months ago.

Is the project dead or are you unable to maintain it?

Just curious.

Thanks again.


triplesixman commented 3 years ago

I received a reply:

Sergey M. 6:22 AM (10 hours ago) to me

Hello,

Currently I have no free time to spend on youtube-dl as I'm busy with work, ongoing renovation and other post-relocation stuff.

Best, Sergey.

пт, 17 сент. 2021 г. в 03:19, JD

Hi. I've used youtube-dl for a long time, and I noticed that updates stopped a few months ago.

Is the project dead or are you unable to maintain it?

Just curious.

Thanks again.

Is this a real answer? Because he never answered me for my part.

Because if the answer is true, it's amazing that only one person decides if the project should evolve, be updated etc. or not. Isn't it supposed to be a community platform? Why not allow several people to take over in these cases? What happens in case of a more serious problem? I find all this very strange.

ahm750 commented 3 years ago

I received a reply:

Sergey M. 6:22 AM (10 hours ago) to me

Hello,

Currently I have no free time to spend on youtube-dl as I'm busy with work, ongoing renovation and other post-relocation stuff.

Best, Sergey.

пт, 17 сент. 2021 г. в 03:19, JD

Hi. I've used youtube-dl for a long time, and I noticed that updates stopped a few months ago.

Is the project dead or are you unable to maintain it?

Just curious.

Thanks again.

Shouldn't he be adding a new maintainer while he's away?

mechalincoln commented 3 years ago

I received a reply: Sergey M. 6:22 AM (10 hours ago) to me Hello, Currently I have no free time to spend on youtube-dl as I'm busy with work, ongoing renovation and other post-relocation stuff. Best, Sergey. пт, 17 сент. 2021 г. в 03:19, JD Hi. I've used youtube-dl for a long time, and I noticed that updates stopped a few months ago. Is the project dead or are you unable to maintain it? Just curious. Thanks again.

Is this a real answer? Because he never answered me for my part.

Because if the answer is true, it's amazing that only one person decides if the project should evolve, be updated etc. or not. Isn't it supposed to be a community platform? Why not allow several people to take over in these cases? What happens in case of a more serious problem? I find all this very strange.

That's what he emailed me, verbatim.

ahm750 commented 3 years ago

I received a reply:

Sergey M. 6:22 AM (10 hours ago) to me

Hello,

Currently I have no free time to spend on youtube-dl as I'm busy with work, ongoing renovation and other post-relocation stuff.

Best, Sergey.

пт, 17 сент. 2021 г. в 03:19, JD

Hi. I've used youtube-dl for a long time, and I noticed that updates stopped a few months ago.

Is the project dead or are you unable to maintain it?

Just curious.

Thanks again.

Could you ask him to add a new maintainer?

mara004 commented 3 years ago

I would like to support a Python 2 platform

By all means, Python 2 is deprecated. There is no point at supporting it anymore. Python >= 3.6 offers some powerful language features that are worth dropping support for older Python versions.

dirkf commented 3 years ago

I would like to support a Python 2 platform

By all means, Python 2 is deprecated. There is no point at supporting it anymore. ...

There is, if your platform only supports Py2. Not everyone is running yt-dl on a stock PC and it may not be practical to change a platform just because Py3.6+ might be a slightly better language (and even if it were, why not just rewrite yt-dl in an even better language ...).

yt-dlp has taken the ball and run with it past Py3.6, so there's the place to post changes that need that language version.

Because if [Sergey's answer "I have no free time to spend on youtube-dl"] is true, it's amazing that only one person decides if the project should evolve, be updated etc. or not. Isn't it supposed to be a community platform? Why not allow several people to take over in these cases? What happens in case of a more serious problem? I find all this very strange.

Indeed. In the past it has been stated that the lack of competent candidates, or, at least, candidates acceptable to the active maintainer(s), prevented the appointment of additional maintainers. One might also observe that there were more developers in the past but AFAIK none of the top contributors shown by GitHub other than @dstftw and @remitamine contributed to the project since it was restored to GitHub.

However it is always open to any person or group who doesn't care for the project's management to fork the project. Presumably anyone who did so would want to provide for succession planning in the organisation of the fork's development. This is not easy, as illustrated by plenty of open-source projects.

mara004 commented 3 years ago

There is, if your platform only supports Py2.

As far as I know, virtually all desktop or laptop systems around support Python 3. I haven't yet heard of a system that supports Python 2 only and not Python 3. Even if your distribution should for some reason not provide Python 3, you can still use the release binaries, a ppa, or build from source... Moreover, Python 2 and its libraries don't receive security updates anymore, so you shouldn't use it in any case.

and it may not be practical to change a platform just because Py3.6+ might be a slightly better language

a) Python 3 provides lots of useful features and libraries that take less code, are more reliable and maintained/supported b) Nowadays, more developers are used to these concepts than to ancient Python 2 idioms c) Keeping compatibility with legacy Python versions involves unnecessary workaroundish code that makes the project harder to maintain

why not just rewrite yt-dl in an even better language ...)

No. You can't just rewrite a project as large as youtube-dl in a different language - that would take very long and be of absolutely no benefit to users.

Indeed. In the past it has been stated that the lack of competent candidates, or, at least, candidates acceptable to the active maintainer(s), prevented the appointment of additional maintainers.

I can understand the hesitancy of dstftw et al. about accepting new mainatiners. Youtube-dl is a very popular project so you need to be careful not to introduce regressions, or in the worst case scenario make malware out of it. IMHO, you should respect that currently the maintainers have more important things to do. Be thankful for what they've done so far rather than quickly judging on their decisions although you have very little insights into the project's background.

dirkf commented 3 years ago

There is, if your platform only supports Py2.

As far as I know, virtually all desktop or laptop systems around support Python 3. ...

Not all Python platforms are commodity PCs: a Python implementation might even be flashed into a device.

I made the point because I had a specific case in mind, actually one whose UI is provided by a web-server and telnet/ssh, no keyboard or display, but has just enough headroom for Python 2. As a TV set-top box and media player it's an ideal target for yt-dl.

As it happens, the security-supported Linux OS where I'm typing does this:

$ python --version
Python 2.7.17
$

Not that there isn't a nest of Py 3 versions as well, but that's the default.

and it may not be practical to change a platform just because Py3.6+ might be a slightly better language

... c) Keeping compatibility with legacy Python versions involves unnecessary workaroundish code that makes the project harder to maintain

In fact, avoiding the "latest and greatest" features is a good rule for robust software.

why not just rewrite yt-dl in an even better language ...)

No. You can't just rewrite a project as large as youtube-dl in a different language - that would take very long and be of absolutely no benefit to users.

My point, really. A version of yt-dl that made extensive use of the latest Python features would have to be rewritten in order to run on a platform that only supports Python2.

I can understand the hesitancy of dstftw et al. about accepting new mainatiners. Youtube-dl is a very popular project so you need to be careful not to introduce regressions, or in the worst case scenario make malware out of it.

It's unfortunate that by some tragedy of the commons the popularity of the project seems to have overloaded all the qualified contributors to the point of withdrawal and yet did not generate candidates considered acceptable to support them.

mara004 commented 3 years ago

As a TV set-top box and media player it's an ideal target for yt-dl.

This is a) extremely hypothetical/unlikely and b) if the Python implementation is flashed into the device you most probably wouldn't be able to update youtube-dl anyway (if this were possible, you could also deploy a new Python version...). Any project needs to shift forward in its underlying technology at some point. I think this is the time now for youtube-dl / yt-dlp.

avoiding the "latest and greatest" features is a good rule for robust software.

Yeah, but always sticking with outdated idioms and workarounds isn't. Python 2 really is deprecated, outdated, and should not be considered anymore in modern software development.

It's unfortunate that by some tragedy of the commons the popularity of the project seems to have overloaded all the qualified contributors to the point of withdrawal and yet did not generate candidates considered acceptable to support them.

It's better to do a fork in this case, as yt-dlp did. This way users notice the maintainer change an can make a conscious descision whether they want it or not. The good news is that a project as popular and interesting as youtube-dl is unliekly to get unmaintained, even in case of a fork and new developers.

ghost commented 3 years ago

Not all Python platforms are commodity PCs: a Python implementation might even be flashed into a device.

I made the point because I had a specific case in mind, actually one whose UI is provided by a web-server and telnet/ssh, no keyboard or display, but has just enough headroom for Python 2. As a TV set-top box and media player it's an ideal target for yt-dl.

How exactly does that work? If you have no Telnet/SSH access, how do you install and run yt-dlp? If you can do that, why is it not possible to compile and install a newer Python version?

As it happens, the security-supported Linux OS where I'm typing does this:

$ python --version
Python 2.7.17
$

Not that there isn't a nest of Py 3 versions as well, but that's the default.

This is not a valid argument. What the python command resolves to is completely irrelevant as long as Python 3 is available in the default repos. Nearly every Linux distro except for Arch Linux purposefully continued to symlink python to python2 to preserve compatibility until Python 2 finally became EOL this year, and that wasn't a sudden shocking announcement either. Python 3.0 was released in 2008 and people were heavily encouraged to switch, there was plenty of time even if they had to wait for it to mature. You couldn't expect them to keep supporting Python 2 forever, especially since you're not paying a single dime for it.

Now the default for fresh installs of recent Debian/Ubuntu versions is to not have a python command at all, you have to explicitly specify python3 (unless you install python-is-python3). Developers were strongly encouraged to explicitly start specifying python2 or python3 in their shebangs years ago, and the vast majority of them did, especially for Python 3.

In fact, avoiding the "latest and greatest" features is a good rule for robust software.

Python 3.6 is far from the "latest and greatest", it's simply modern enough to be able to support without undue maintenance burden. In it's It's five years old and will become EOL in two months. Apart from the fact that Python 3.5 and below are now completely unsupported and will NOT receive updates even for critical security vulnerabilities, f-strings are a major usability improvement and 3.6 has a bunch of other improvements as well.

You can't expect developers to cater to your the needs of a very small niche 1% user base and support 10 year old software and hardware riddled with security vulnerabilities. Especially when you're talking about an open source project that is completely free.

If it was paid/contracted work, you'd have more luck, but even then, eventually outdated technology becomes a huge burden and it's simply not feasible to keep supporting ancient systems forever.

michealespinola commented 3 years ago

@mara004

I can understand the hesitancy of dstftw et al. about accepting new mainatiners. Youtube-dl is a very popular project so you need to be careful not to introduce regressions, or in the worst case scenario make malware out of it. IMHO, you should respect that currently the maintainers have more important things to do. Be thankful for what they've done so far rather than quickly judging on their decisions although you have very little insights into the project's background.

I think the real issue here is the lack of transparency and published status for the maintenance and custodianship of the project. Its been four months with no public notice as to what is going on or any expectation of an ETA. A very large community has been in limbo, and this isn't the first time this has happened.

Life happens. Most people understand this. But this is a detrimental way to maintain a project such as this. There is confusion in many youtube-dl forums, and people are jumping ship to yt-dlp. The community is fracturing, and this project is likely to be left in the wake because of how it is maintained.

dstftw was not the original author, and I don't see how they can continue to maintain this moving forward.

rautamiekka commented 3 years ago

Also, funny enough, after ytdl was renamed to ytdl-org, there was another guy who's stayed absolutely silent for longer than dstftw has. I wonder what happened to him.

dirkf commented 3 years ago

As a TV set-top box and media player it's an ideal target for yt-dl.

This is a) extremely hypothetical/unlikely and b) if the Python implementation is flashed into the device you most probably wouldn't be able to update youtube-dl anyway (if this were possible, you could also deploy a new Python version...).

Only the flashed Python is hypothetical (as I said earlier, there is telnet access):

Set-top box yt-dl output
humax# youtube-dl -v -F 'https://www.youtube.com/watch?v=G1RQTXF5SpQ'
[debug] System config: [u'--restrict-filenames', u'--prefer-ffmpeg', u'-f', u'best[height<=?1080][fps<=?60]', u'-o', u'/media/drive1/Video/%(title)s.%(ext)s']
[debug] User config: [u'-f', u'(best/bestvideo+bestaudio)[height<=?1080][fps<=?60][tbr<=?1900]']
[debug] Custom config: []
[debug] Command-line args: [u'-v', u'-F', u'https://www.youtube.com/watch?v=G1RQTXF5SpQ']
[debug] Encodings: locale ASCII, fs ASCII, out ASCII, pref ASCII
[debug] youtube-dl version 2021.06.06.1
[debug] Python version 2.7.1 (CPython) - Linux-2.6.18-7.1-7405b0-smp-with-libc0
[debug] exe versions: ffmpeg 4.1, ffprobe 4.1
[debug] Proxy map: {}
[youtube] G1RQTXF5SpQ: Downloading webpage
[info] Available formats for G1RQTXF5SpQ:
format code  extension  resolution note
249          webm       audio only tiny   50k , webm_dash container, opus @ 50k (48000Hz), 17.96MiB
250          webm       audio only tiny   67k , webm_dash container, opus @ 67k (48000Hz), 24.17MiB
140          m4a        audio only tiny  129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 46.35MiB
251          webm       audio only tiny  133k , webm_dash container, opus @133k (48000Hz), 47.90MiB
394          mp4        256x144    144p   67k , mp4_dash container, av01.0.00M.08@  67k, 30fps, video only, 24.31MiB
160          mp4        256x144    144p   82k , mp4_dash container, avc1.4d400c@  82k, 30fps, video only, 29.49MiB
278          webm       256x144    144p   92k , webm_dash container, vp9@  92k, 30fps, video only, 33.06MiB
395          mp4        426x240    240p  141k , mp4_dash container, av01.0.00M.08@ 141k, 30fps, video only, 50.74MiB
133          mp4        426x240    240p  160k , mp4_dash container, avc1.4d4015@ 160k, 30fps, video only, 57.53MiB
242          webm       426x240    240p  200k , webm_dash container, vp9@ 200k, 30fps, video only, 71.64MiB
396          mp4        640x360    360p  298k , mp4_dash container, av01.0.01M.08@ 298k, 30fps, video only, 106.70MiB
134          mp4        640x360    360p  361k , mp4_dash container, avc1.4d401e@ 361k, 30fps, video only, 129.32MiB
243          webm       640x360    360p  369k , webm_dash container, vp9@ 369k, 30fps, video only, 132.14MiB
397          mp4        854x480    480p  552k , mp4_dash container, av01.0.04M.08@ 552k, 30fps, video only, 197.65MiB
244          webm       854x480    480p  607k , webm_dash container, vp9@ 607k, 30fps, video only, 217.39MiB
135          mp4        854x480    480p  610k , mp4_dash container, avc1.4d401f@ 610k, 30fps, video only, 218.58MiB
398          mp4        1280x720   720p 1124k , mp4_dash container, av01.0.05M.08@1124k, 30fps, video only, 402.49MiB
136          mp4        1280x720   720p 1233k , mp4_dash container, avc1.4d401f@1233k, 30fps, video only, 441.57MiB
247          webm       1280x720   720p 1300k , webm_dash container, vp9@1300k, 30fps, video only, 465.66MiB
399          mp4        1920x1080  1080p 2063k , mp4_dash container, av01.0.08M.08@2063k, 30fps, video only, 738.64MiB
248          webm       1920x1080  1080p 2556k , webm_dash container, vp9@2556k, 30fps, video only, 915.24MiB
137          mp4        1920x1080  1080p 3746k , mp4_dash container, avc1.640028@3746k, 30fps, video only, 1.31GiB
18           mp4        640x360    360p  746k , avc1.42001E, 30fps, mp4a.40.2 (44100Hz), 267.23MiB
22           mp4        1280x720   720p 1362k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)
humax# 

The degree of difficulty in building a 2.7.18 is too high when the existing version works, and a 3.x is further out of reach, even if the result was able to run in the target environment.

Of course this doesn't make any sort of argument for not running an up-to-date Python when it's available.

Meldanor commented 3 years ago

The discussion about updating to Python 3 and its minority of incompatible users reminds me of XKCD 1172... there is always someone who will left behind. The question is: Does the projects success depends on this people? Or will it be more successful ( in terms of maintainability, performance, stability) if it moves on? I think yes.

As already discussed, Python 2 is legacy now. It works, its robust - but its legacy. More and more people are trained with Python 3 and are unable to pickup old legacy code like this project.

There is a blog from GitHub about an early adopt of a new Ruby version - to avoid costly migration because of big version gaps.

Wowfunhappy commented 3 years ago

My issue is that Python 3 doesn't come bundled with macOS. So I can't just download the youtube-dl binary and run it on any Mac computer, I need to actually set up a separate Python 3 installation.

Is there a reason youtube-dlp doesn't ship standalone binaries built with pyinstaller? IMO that would solve every problem...

ghost commented 3 years ago

My issue is that Python 3 doesn't come bundled with macOS. So I can't just download the youtube-dl binary and run it on any Mac computer, I need to actually set up a separate Python 3 installation.

That's true, they plan to drop Python 2 as well in the future, AFAIK there's already a warning saying it's deprecated. They want developers to bundle the Python runtime with their executables. The other option is to install Python with brew or pyenv.

Is there a reason youtube-dlp doesn't ship standalone binaries built with pyinstaller? IMO that would solve every problem...

It does, but only for Windows currently. There's already an issue tracking support for macOS binaries: yt-dlp/yt-dlp#1075

rautamiekka commented 3 years ago

My issue is that Python 3 doesn't come bundled with macOS. So I can't just download the youtube-dl binary and run it on any Mac computer, I need to actually set up a separate Python 3 installation.

Is there a reason youtube-dlp doesn't ship standalone binaries built with pyinstaller? IMO that would solve every problem...

Mac works like hybrid Linux and Window$: you can install stuff by an installer or use a 3rd-party repo, so I don't see why that's a problem.

michealespinola commented 3 years ago

you can install stuff by an installer or use a 3rd-party repo, so I don't see why that's a problem.

I agree. This should not be a preventative issue for running python 3 on a Mac. Installing python 3 is trivial. Anyone who can, should be off of python 2. I love what the /r/youtubedl sub on reddit auto-responds to python 2 related posts:

POSSIBLE COMMON ISSUE: It looks like you may be running an older version of Python. This is not recommended because old versions of Python have old versions of modules required by youtube-dl. Some of these are known to be out of date as well as out of spec with youtube-dl's coding. While you can attempt to update the modules you are having an issue with, it will likely be easier to simply run Python 3. Python 3 is not an update to Python 2. Python 3 will run side-by-side with Python 2.

Also please note that Python 2 has reached End Of Life status, meaning it will receive no further updates or bugfixes, including for security issues. Many frameworks and other add-on projects are following a similar policy.

https://www.python.org/doc/sunset-python-2/

https://www.python.org/psf/press-release/pr20191220/

https://www.python.org/dev/peps/pep-0373/

ghost commented 3 years ago

Also Windows doesn't came with Python either (just a stub that directs you to the shitty Microsoft Store version), and Linux may not either depending on whether it's needed for something in the default install (though at least there it's directly installable from the default repos).

sebma commented 3 years ago

Shouldn't this discussion about youtube-dl alternatives and python versions be hosted in a another issue ? Would you agree continuing this discussion in another issue if I created a dedicated issue called youtube-dl alternatives ?

michealespinola commented 3 years ago

@sebma the discussion is intermixed because they are dividing factors between the forks

sebma commented 3 years ago

@michealespinola I do understand why :smile:

sebma commented 3 years ago

I've just created an issue if anyone wants to continue this discussion over there : #30098

Ashish0804 commented 3 years ago

I just hope the maintainers are healthy. Maintaining a FOSS project shouldn't be anyone's number 1 priority imo.

sebma commented 3 years ago

@Ashish0804 You're absolutely right, their health is the most important. And we should all be grateful for the time they sacrifice to write such great opensource software for free. God bless them !

rofl0r commented 3 years ago

in the end, RIAA got what they wanted. certainly just a coincidence.

minusf commented 2 years ago

My issue is that Python 3 doesn't come bundled with macOS. So I can't just download the youtube-dl binary and run it on any Mac computer, I need to actually set up a separate Python 3 installation.

there has been a bundled python3 in macos for quite a while, and it's not even 3.6.*

% /usr/bin/python3
Python 3.8.9 (default, Aug  3 2021, 19:21:54)
[Clang 13.0.0 (clang-1300.0.29.3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='macbook.local', release='20.6.0', 
version='Darwin Kernel Version 20.6.0: Tue Oct 12 18:33:38 PDT 2021;
root:xnu-7195.141.8~1/RELEASE_ARM64_T8101', machine='arm64')

i don't use it myself though, brew install python or even better brew install youtube-dl yt-dlp will take care of the python3 dependency

Wowfunhappy commented 2 years ago

Despite its presence in /usr/bin/, that copy of python3 isn't actually bundled with the OS. It's installed alongside xCode and/or the command line tools.

minusf commented 2 years ago

thanks for the correction. i have installed the command line tools so long ago, i considered it part of macos...

ghost commented 2 years ago

yt-dlp fork is also problematic to run on Windows XP. There are still many retrofans using this OS. Officially, the latest Python for XP is 3.4, but Russian hackers ran patched 3.7 and yt-dlp in it.

Ubuntu LTS has been supported for 10 years, I still use 16.04. But of course it is easy to install newer Python 3 from PPA or to compile myself. I have 3.8 instead of default 3.5 and have no problem switching to fork.

All recent events suggest that this is the work of Google and I can even guess the reasons.

ghost commented 2 years ago

The original youtube-dl specifically maintained compatibility with Windows XP because it used Python 3.4.4 built into the exe (and VS 2010 compiler). Because the developers were Russian (who love XP)? I don't understand why the new developers had to move to a newer version of python. Updates for updates.

nicolaasjan commented 2 years ago

yt-dlp fork is also problematic to run on Windows XP. There are still many retrofans using this OS. Officially, the latest Python for XP is 3.4, but Russian hackers ran patched 3.7 and yt-dlp in it.

Is it the one linked here?: https://rsload.net/soft/manager/35393-yt-dlp.html (Posted by DesweR (Oct 23, 2021 06:16 AM) Message # 9)

And do you know a link to the patched Python 3.7? Then I can build myself. :)

ghost commented 2 years ago

Python 3.7.1 + yt-dlp for Windows XP http://forum.ru-board.com/topic.cgi?forum=5&topic=49719&start=720#6 Direct link https://disk.yandex.ru/d/oygszhQilB1ZLg/youtube-dl ffmpeg for Windows XP https://rwijnsma.home.xs4all.nl/files/ffmpeg/?C=M;O=D

Applications used: http://retrosystemsrevival.blogspot.com/2021/01/python-371-for-windows-xp.html https://msfn.org/board/topic/177972-python-371-for-windows-xp/ https://github.com/yt-dlp/yt-dlp/releases

You may need redist 2015-2019. Warning: never install redist 2015-2019 on XP. This will cause a significant increase in memory consumption in many applications. Also, the latest builds don't work on XP (installed, but then library error). If you install and then uninstall, it's the same thing. Microsoft's uninstaller doesn't remove dll's from c:\windows\system32 when uninstalling. Use snapshots in VirtualBox to copy necessary dll's directly to application folder (not in system PATH).

If you want to compile patched Python 3.7.1 for fun, I don't think that's a good idea. Windows users don't like to compile from source (and it's hard, even on Windows 7+). Also, I think for the most part, binary patching and library swapping was used there. It's dirty. That's why binary is mostly common, but you can ask for the source.

nicolaasjan commented 2 years ago

Python 3.7.1 + yt-dlp for Windows XP http://forum.ru-board.com/topic.cgi?forum=5&topic=49719&start=720#6 Direct link https://disk.yandex.ru/d/oygszhQilB1ZLg/youtube-dl ffmpeg for Windows XP https://rwijnsma.home.xs4all.nl/files/ffmpeg/?C=M;O=D

Thanks! I knew already about rwijnsma's ffmpeg build b.t.w. I already tried the yt-dlp from that Google Drive link and it worked. :)

If you want to compile patched Python 3.7.1 for fun, I don't think that's a good idea. Windows users don't like to compile from source (and it's hard, even on Windows 7+). Also, I think for the most part, binary patching and library swapping was used there. It's dirty. That's why binary is mostly common, but you can ask for the source.

No, I meant building yt-dlp with it. But will the Python dependencies for yt-dlp install?

It's XP in a VM b.t.w.

ghost commented 2 years ago

Do you mean these dependencies? https://github.com/yt-dlp/yt-dlp#dependencies They are not present, but I hear pip works.

Run yt-dlp -v to check. At the moment I have in py version (running on linux):

[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8 [debug] yt-dlp version 2021.10.10 (zip) [debug] Python version 3.8.3 (CPython 32bit) - Linux-4.4.0-140-generic-i686-with-glibc2.17 [debug] exe versions: ffmpeg 4.3.1, ffprobe 4.3.1, rtmpdump 2.4 [debug] Optional libraries: mutagen, sqlite