Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Question] youtube-dlc 2020.10.31 requires python3.9? #77

Closed
plissken1138 opened this issue Oct 31, 2020 · 23 comments
Closed

[Question] youtube-dlc 2020.10.31 requires python3.9? #77

plissken1138 opened this issue Oct 31, 2020 · 23 comments
Labels
question Further information is requested

Comments

@plissken1138
Copy link

plissken1138 commented Oct 31, 2020

Checklist

  • [x ] I'm asking a question
  • [x ] I've looked through the README and FAQ for similar questions
  • [ x] I've searched the bugtracker for similar questions including closed ones

Question

youtube-dlc 2020.10.31 requires python3.9? That won't work on Win7 x64!

https://imgur.com/a/z2KKfIJ

not sure if this is a bug so I posted as question.

@plissken1138 plissken1138 added the question Further information is requested label Oct 31, 2020
@ghost
Copy link

ghost commented Oct 31, 2020

Windows 7 reached EOL on January 14th, 2020.

@izemize
Copy link

izemize commented Oct 31, 2020

A lot of people, (like me) use win7. It possible build version with win7x64 support pls?!

@etec-masterofsynapse
Copy link

A lot of people, (like me) use win7. It possible build version with win7x64 support pls?!

That may be but please plan to upgrade to Windows 10 in the near future. Many developers won't provision work for an out-of-support operating system that could hold back development of new features, since Python 3.9 implements some maybe helpful stuff that the Win7 build wouldnt get.

@filler56789
Copy link

izemise wrote:

A lot of people, (like me) use win7. It possible build version with win7x64 support pls?!

I use Windows 7 x64 too, and here the 32-bit .EXE works as expected.
If I were a skilled programmer I myself would rewrite the source-code of youtube-dl in plain C or C++.
Since this program is a command-line interface executable I do not see the point of making it depend on the """latest and greatest""" (triple quotation-marks denoting irony) Python which doesn't work on Windows 7.

@nicolaasjan
Copy link

Then I just have to compile it myself from now on for my Win 7 VM.
No big deal for me.
I even compile it for a Windows XP VM with Python 3.4.4

The old youtube-dl had that backward compatibility...

since Python 3.9 implements some maybe helpful stuff that the Win7 build wouldnt get.

And what about the Linux users, with systems still supported for years to come and stuck with Python versions such as 3.6.9 in my case (Linux Mint 19.3)?
Won't I get this "helpful stuff" or will yt-dlc just stop working?

@etec-masterofsynapse
Copy link

Then I just have to compile it myself from now on for my Win 7 VM.
No big deal for me.
I even compile it for a Windows XP VM with Python 3.4.4

The old youtube-dl had that backward compatibility...

since Python 3.9 implements some maybe helpful stuff that the Win7 build wouldnt get.

And what about the Linux users, with systems still supported for years to come and stuck with Python versions such as 3.6.9 in my case (Linux Mint 19.3)?
Won't I get this "helpful stuff" or will yt-dlc just stop working?

At some point developers have to make the decision of deprecating support for previously working systems since they reach a barrier of much more work needed.

And in regards to your Mint 19.3, maybe its better to ask the question why your OS, which is still supported, doesnt get the newest Python?
Maybe complain to the Python devs that your OS doesnt get a new package update.

This issue isnt about youtube-dlc suddenly deprecating support for older systems, its Python needing newer OSs, or at least ones with up-to-date packages.

@nicolaasjan
Copy link

And in regards to your Mint 19.3, maybe its better to ask the question why your OS, which is still supported, doesnt get the newest Python?

Because it's a Long Term Support release (based on Ubuntu 18.04), aiming at stability, not the latest and greatest.
That's what rolling releases are for. ;)
It does however still gets the security fixes for Python.

@etec-masterofsynapse
Copy link

And in regards to your Mint 19.3, maybe its better to ask the question why your OS, which is still supported, doesnt get the newest Python?

Because it's a Long Term Support release (based on Ubuntu 18.04), aiming at stability, not the latest and greatest.
That's what rolling releases are for. ;)
It does however still gets the security fixes for Python.

Yes, I get the need of LTSCs, but cant you just upgrade one package "out-of-band" to the current version?
That would fix the problem.

And I hope you agree that your case with Mint LTSC is a completely different one than the Win7 case this issue started with.

@TaciturnShadow
Copy link

Windows 7 reached EOL on January 14th, 2020.

But Extended Security Updates up to January 10th, 2023, Windows 7 still supported.

@etec-masterofsynapse
Copy link

Windows 7 reached EOL on January 14th, 2020.

But Extended Security Updates up to January 10th, 2023, Windows 7 still supported.

Which need special contracts with Microsoft that consumers wont buy.
Especially since the upgrade to Windows 10 is free of charge.

@nicolaasjan
Copy link

Yes, I get the need of LTSCs, but cant you just upgrade one package "out-of-band" to the current version?
That would fix the problem.

I don't see the need to do that for now since yt-dlc still works fine and I don't want to break things or encounter a dependency hell.

And I hope you agree that your case with Mint LTSC is a completely different one than the Win7 case this issue started with.

Of course I know that, but I was afraid that these new features would somehow also be implemented in the Linux version and I would miss features or worse.

@benrg
Copy link

benrg commented Oct 31, 2020

You can work around this by downloading the version without bundled Python and running it with your own Python installation. Just replace "youtube-dlc.exe" with "py.exe youtube-dlc".

You can also build your own executable using make_win.bat, which is a one-liner. (Though of course you need your own Python for this, and you may need to "py -mpip install PyInstaller" first.)

@blackjack4494
Copy link
Owner

The app I use in github actions added python 3.9 lately. The version in config file was set to 3.x so it was using the newest one. Hoewever I manually set it to 3.8 now. Next release should be coming soon already maybe 2-3 days.

@chrisr11
Copy link

chrisr11 commented Nov 4, 2020

@blackjack4494 So youtube-dlc won't be working with Windows 7?

@nicolaasjan
Copy link

I believe the 32-bit version (youtube-dlc_x86.exe) works on Windows 7. :)
https://github.com/blackjack4494/yt-dlc/releases

@Vangelis66
Copy link

I believe the 32-bit version (youtube-dlc_x86.exe) works on Windows 7.

Yes 👍 , the 32-bit executable is built on Python 3.5.4 32-bit and runs on Vista SP2 and up, 32+64-bit...

@blackjack4494 wrote:

Hoewever I manually set it to 3.8 now. Next release should be coming soon already maybe 2-3 days.

is that setting affecting only the 64-bit yt-dlc executable? I'd hate it if you broke Vista compatibility in your 32-bit offerings...

FWIW:
Windows XP SP3 EoS: Python 3.4.4
Windows Vista SP2 EoS: Python 3.7.9
Windows 7 SP1, Windows 8 EoS: Python 3.8.6
Python 3.9.0+ requires Win8.1 and up...

Since you don't already support WinXP in your 32-bit executables (I think that's because GitHub Actions don't provide support for Python 3.4.4), may I kindly ask that you update the Python version bundled in youtube-dlc_x86.exe to 3.7.9 (or the latest 3.7.x flavour GitHub Actions support), if at all possible?

@nicolaasjan wrote:

Then I just have to compile it myself from now on for my Win 7 VM.
No big deal for me.
I even compile it for a Windows XP VM with Python 3.4.4

The old youtube-dl had that backward compatibility...

Since I am a complete dunce when it comes to Python, could you please, maybe, post layman's detailed instructions on how I would go about compiling a 32-bit youtube-dlc.exe binary with Python 3.7.9 on my old Vista x86 laptop?
Sure, I did read first
https://github.com/blackjack4494/yt-dlc#installation
but it's still Greek to me...
Which way is preferable, pyinstaller+make_win.bat or python pyinst32.py
(and please provide step-by-step instructions, if you're so inclined...) ?

@blackjack4494
Copy link
Owner

They both do the same thing. However pyinst32 is automatically using current date as version number. You have to use specific python version in your case 3.7.9

@nicolaasjan
Copy link

nicolaasjan commented Nov 5, 2020

@Vangelis66

Since I am a complete dunce when it comes to Python, could you please, maybe, post layman's detailed instructions on how I would go about compiling a 32-bit youtube-dlc.exe binary with Python 3.7.9 on my old Vista x86 laptop?

  1. Go to https://github.com/blackjack4494/yt-dlc , click the green button "Code" and "download ZIP".
  2. If you don't already have pyinstaller, open cmd as administrator and run:
    python -m pip install pyinstaller (Python must be in your PATH; it's an option you can check when installing Python).
  3. Download the youtube-dlc source code: https://github.com/blackjack4494/yt-dlc/archive/master.zip
  4. Extract to the folder yt-dlc-master.
  5. In that folder click "pyinst32.py' to build the 32-bit version.
  6. youtube-dlc_x86.exe is built and can be found in the dist sub-directory.
  7. Rename it to youtube-dlc.exe and put it in place.
  8. Profit!

@filler56789
Copy link

The 64-bit executable still uses python 3.9 so it still doesn't run on Windows 7.

@thinkpad4
Copy link

@blackjack4494 Can the 64-bit version be switched to python 3.8 please? Thanks

@filler56789
Copy link

x64 .EXE version 2020.11.11.4 finally runs on Windows 7 🥳
Many thanks to @blackjack4494 ^_^

@Vangelis66
Copy link

Vangelis66 commented Nov 12, 2020

@nicolaasjan:

Many thanks for your step-by-step, thorough, Windows 32-bit executable compilation guide! 🥇

The thing is I avoid having Python installed (it hooks on many places, and it is a pain to uninstall fully/cleanly), the very few Python apps I currently use have either Python embedded in the executable or use a "portable" Python instance (see The embeddable package) ...

So, at first I tried to pull this through via the python-3.7.9-embed-win32.zip package and avoid full installation; if one wonders, there's a way to add additional packages there, but one thing I found out soon was that only wheels distributed packages would successfully install, while the sdist-only ones would fail (despite having latest setuptools+wheel installed) ...
I got pretty far in the end, but the resulting compiled executable (youtube-dlc_x86.exe) would throw a difficult to decipher (at least by me) error message, so I gave up on that route 😞 ...

The next day I decided to "bite the bullet" and go for a full-blown py3.7.9 install, then I followed your compilation guide; that ended in resounding success:

yt-dlc

Heel erg bedankt 😄

@nicolaasjan
Copy link

@Vangelis66
Graag gedaan!
(do you speak Dutch all of a sudden...) ;)

[debug] exe versions: none

I see you don't have ffmpeg installed (which is needed to make use of the full capabilities of youtube-dlc).
There is a version made by a Dutch guy, that works on Windows XP and Vista!
https://rwijnsma.home.xs4all.nl/files/ffmpeg/?C=M;O=D
Put ffmpeg.exe and ffprobe.exe in the same folder as youtube-dlc (or in a folder that is in your PATH).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests