Jump to content

Who here has a Youtube-DL compile for WinXP?


Recommended Posts

Posted

By the way, during building the XP version, I get these warnings:

8852 WARNING: lib not found: fileextd.dll dependency of C:\Python311\KERNELxp.dll
8882 WARNING: lib not found: kernelex.dll dependency of C:\Python311\KERNELxp.dll

🤔


Posted
10 hours ago, VistaLover said:

so I took that to mean: 

1. You're gonna use adang1345's "CPython-3.14.0-win32" build to compile them, which is Vista+ compatible 

2. Use the special, Vista-compatible, build of PyInstaller-6.15 (by 3dyd) to produce the standalone "yt-dlp_x86_win7.exe" binaries (as I believe was the case when preparing recent 3.13.7-based binaries) ...

Why did you change plans :dubbio:?

Thanks again for your time and efforts :) ...

I use adang1345's Python builds for both x86 and x86-64 builds.

I have PyInstaller 6.16.0 for both and I can't remember having used PyInstaller 6.15 (by 3dyd) before this latest build for Win7...

Btw, that `K32EnumProcessModules` error also happens on Vista when building with the latest Python 3.13.8 from adang1345 and PyInstaller 6.16.

Maybe you could ask adang1345?

Do you want me to "downgrade" to that custom PyInstaller (for the Win7 builds)?

Posted (edited)
6 hours ago, nicolaasjan said:

I think that must be because I built directly after the standalone one, i.e. without deleting the build directory and start over.

After I built the `onedir` version today from a fresh source directory, I got:

[debug] yt-dlp version nicolaasjan/yt-dlp@2025.10.13.080600 (win_x86_dir)
[debug] Python 3.11.4 (CPython x86 32bit) - Windows-XP-5.1.2600-SP3 (OpenSSL 3.5.2 5 Aug 2025)

Thanks for the prompt explanation :worship: ; I'm probably being obsessive-compulsive here :rolleyes: , but can you share the fixed "yt-dlp.exe" binary (I think that one only should suffice) inside the fixed (today's) "yt-dlp_x86_winXP.zip" archive? Many thanks indeed...

Edited by VistaLover
Posted (edited)
1 hour ago, nicolaasjan said:

I use adang1345's Python builds for both x86 and x86-64 builds.

I have PyInstaller 6.16.0 for both and I can't remember having used PyInstaller 6.15 (by 3dyd) before this latest build for Win7

Testing previous "yt-dlp_x86_win7.exe" assets from GH

https://github.com/nicolaasjan/yt-dlp/releases/download/2025.09.23.052315/yt-dlp_x86_win7.exe

doesn't launch under Vista SP2 32-bit ("K32EnumProcessModules" error); this one uses adang's CPython-3.13.7-win32 implementation.

Both the next two following releases, 

https://github.com/nicolaasjan/yt-dlp/releases/download/2025.09.27.071342/yt-dlp_x86_win7.exe

https://github.com/nicolaasjan/yt-dlp/releases/download/2025.10.05.061237/yt-dlp_x86_win7.exe

launch fine here (Vista SP2 32-bit, see also my previous post); these two also use adang's CPython-3.13.7-win32 implementation. You've told us you build yourself the "win7" assets manually and then upload them to GH; so, what was the change between v2025.09.23.052315 and v2025.09.27.071342 in your building env that enabled Vista support for the latter (and the one after it):dubbio:Likewise, what was the change, besides the CPython upgrade from 3.13.7 -> 3.14.0, that removed Vista support in 

https://github.com/nicolaasjan/yt-dlp/releases/download/2025.10.13.080600/yt-dlp_x86_win7.exe ? 

1 hour ago, nicolaasjan said:

Maybe you could ask adang1345?

IMHO, this is not the root cause; see my comment just above about "v2025.09.23.052315 vs v2025.09.27.071342"; in any case, he's just providing a Vista-compatible Python interpreter, fixing the various Python modules shouldn't be his concern ;) ...

1 hour ago, nicolaasjan said:

I have PyInstaller 6.16.0 for both and I can't remember having used PyInstaller 6.15 (by 3dyd) before this latest build for Win7... Btw, that `K32EnumProcessModules` error also happens on Vista when building with the latest Python 3.13.8 from adang1345 and PyInstaller 6.16.

My impression so far about the PyInstaller Python module is: 

1. PyInstaller==5.13.2 is the last one which produces XP+Vista compatible packages; but this one doesn't support py>3.12

2. PyInstaller >=6.0.0 target by default Win7+ systems (ofc, I haven't tested myself all individual versions 6.0.0-6.16.0); they say so on the module's PyPI page

Quote

Windows (32bit/64bit/ARM64):

PyInstaller should work on Windows 7 or newer, but we only officially support Windows 8+.

So, my educated guess is that v6.16.0 produces, by default, Win7+-compatible binaries (but does this "default" depend on the actual OS the module is being run on? Have you tried building the "win7_x86" variants on a Vista VM with adang's CPython?)

3dyd's PyInstaller==6.15.0 fork is special in that it makes sure the produced binary retains NT6.0 support, because: 

https://github.com/3dyd/pyinstaller-builds/blob/d1a786dcb4316557df3c97f14e16cac7092b744c/.github/workflows/build-package.yml#L44

CFLAGS=-DPSAPI_VERSION=1 LDFLAGS=-lpsapi python waf all --target-arch=32bit --gcc

where "CFLAGS=-DPSAPI_VERSION=1" is the crucial configuration! That is why I was, up until now, under the impression the working v2025.09.27.071342 and v2025.10.05.061237 yt-dlp_x86_win7.exe binaries had been compiled with 3dyd's PyInst mod...

1 hour ago, nicolaasjan said:

Do you want me to "downgrade" to that custom PyInstaller (for the Win7 builds)?

Right now, "we" should get to the bottom of this conundrum; but my clairvoyant skills are limited here; I've already described all I could think of ;) ; as for using 3dyd's mod for the "win7" assets (since you're adamant you haven't used it until now), this won't hurt at all the Win7 users; plus, GH offers some extended retention of previous builds (10 last), whereas the dropbox "Vista" links expire/404/change etc., with the newer "Vista" build overwriting the previous one... As for the "downgrade", we can always nudge 3dyd for a newer build, though your previous request in his tracker has been standing idle thus far :whistle:...

Thanks again (and really sorry for being a PITA :P) ...

Edited by VistaLover
Posted
2 hours ago, VistaLover said:

can you share the fixed "yt-dlp.exe" binary (I think that one only should suffice) inside the fixed (today's) "yt-dlp_x86_winXP.zip" archive? Many thanks indeed...

Edited 37 minutes ago by VistaLover

I'll send the whole zip file:)

Posted
40 minutes ago, nicolaasjan said:

I'll send the whole zip file:)

:worship: :thumbup ; and as I had suspected, just the "yt-dlp.exe" file was enough ;) ; and if you

1. delete the 4 wrapper DLLs targeting XP (kernelxp.dll, ntext.dll, psapi.dll, ws2_xx.dll)
2. substitute files python311.dll_overlapped.pyd_socket.pyd with their Vista counterparts (thanks, cmalex :wub:), you can even run the "onedir" distribution under Vista SP2 32-bit: 

yt-dlp -v

[debug] Command-line config: ['--ffmpeg-location', '<redacted>\\FFmpeg', '--downloader-args', 'ffmpeg:-v 8 -stats', '-v']
[debug] Encodings: locale cp1253, fs utf-8, pref cp1253, out utf-8 (No VT), error utf-8 (No VT), screen utf-8 (No VT)
[debug] yt-dlp version nicolaasjan/yt-dlp@2025.10.13.080600 (win_x86_dir)
[debug] Python 3.11.4 (CPython x86 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.5.2 5 Aug 2025)
[debug] exe versions: ffmpeg n8.1-dev-630-N-121254-g635cb45 (setts), ffprobe n8.1-dev-630-N-121254-g635cb45
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.1.0, certifi-2025.10.05, mutagen-1.47.0, requests-2.32.5, sqlite3-3.50.4, urllib3-2.5.0, websockets-15.0.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Plugin directories: none
[debug] Loaded 1834 extractors

Usage: yt-dlp_x86 [OPTIONS] URL [URL...]

yt-dlp_x86: error: You must provide at least one URL.
Type yt-dlp --help to see a list of all options.

Best wishes :) ...

Posted
1 hour ago, VistaLover said:

so, what was the change between v2025.09.23.052315 and v2025.09.27.071342 in your building env that enabled Vista support for the latter (and the one after it) ?

I'm sorry. I have no idea... 

Quote

Have you tried building the "win7_x86" variants on a Vista VM with adang's CPython?)

Yes, that is the special yt-dlp_Py3.14.0_x86_Vista.

Quote

IMHO, this is not the root cause; see my comment just above about "v2025.09.23.052315 vs v2025.09.27.071342"; in any case, he's just providing a Vista-compatible Python interpreter, fixing the various Python modules shouldn't be his concern ;) ...

True, but maybe he has an idea.

I'm as puzzled as you are in this case...

In the meantime, I'll use the 3dyd PyInstaller the next time for the Windows 7 builds.

Posted
On 10/13/2025 at 8:14 PM, nicolaasjan said:

Updated yt-dlp_Py3.14.0_x86_Vista.

(with IOS patch ;) )

@Reino; Please test if this still suits your needs.

 

It does. Thank you!

I can confirm, the binary works on Win11 Pro (on my brand new Framework Desktop). ;)

Posted
2 hours ago, nicolaasjan said:
4 hours ago, VistaLover said:

so, what was the change between v2025.09.23.052315 and v2025.09.27.071342 in your building env that enabled Vista support for the latter (and the one after it) ?

I'm sorry. I have no idea... 

... At least I got this figured out, as it was seriously bugging me :angry: ; the "what" is hidden inside a changelog

https://github.com/adang1345/PythonVista/blob/master/CHANGELOG.md

Your v2025.09.23.052315 yt-dlp_x86_win7.exe binary has been compiled with a flavour of 3.13.7 which, at that time, supported only Win7+ ;) ; Vista support for 3.13.7 came on Sep 25th, 2 days after v2025.09.23.052315 was built, but in time for the v2025.09.27.071342 to be built with a Vista-enabled 3.13.7 interpreter (this assumes you manually updated to the Vista-compat flavour of 3.13.7) ...

What is still unclear to me is: 
a) were both versions built on the same OS (Win7 SP1 ?) ?
b) were both versions packaged with "official" PyInstaller-6.16.0 ?

v2025.09.27.071342: 

[debug] yt-dlp version nicolaasjan/yt-dlp@2025.09.27.071342 (win7_x86_exe*)
[debug] Python 3.13.7 (CPython AMD64 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.0.16 11 Feb 2025)

and v2025.10.05.061237 

[debug] yt-dlp version nicolaasjan/yt-dlp@2025.10.05.061237 (win7_x86_exe*)
[debug] Python 3.13.7 (CPython AMD64 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.0.16 11 Feb 2025)

have been both compiled on a 64-bit OS, with the 32-bit build of Vista-compatible 3.13.7; why, then, is the next v2025.10.13.80600, built on a Vista-compatible 3.14.0, broken on actual Vista SP2 32-bit?

I have a hunch, based on adang1345's notes: 

https://github.com/adang1345/PythonVista/blob/master/README.md

Quote

Modify the Python source code to restore compatibility with Windows Vista SP2 and Windows Server 2008 SP2. At runtime, check whether a possibly unsupported Windows API function exists on the current system and use an alternative if it does not.

So, the same 3.14.0 CPython will behave differently when run on a Win7 machine to when run on a Vista machine; likewise for the PyInstaller-packaged resultant yt-dlp_x86.exe binaries; but this theory doesn't explain builds v2025.09.27.071342+v2025.10.05.061237 (which run OK on Vista), unless they were also compiled on a Vista SP2 64-bit VM :dubbio:...

FWIW, adang1345 has made a new release of 3.13.9 less than an hour ago, 

https://github.com/adang1345/PythonVista/tree/master/3.13.9

and issued a re-release of 3.14.0 along with the above: 

https://github.com/adang1345/PythonVista/tree/master/3.14.0

His changelog only mentions the addition of 3.13.9, though ;) ... 

4 hours ago, nicolaasjan said:

Yes, that is the special yt-dlp_Py3.14.0_x86_Vista.

This one launches OK: 

[debug] yt-dlp version local@2025.10.13 [eafedc218] (win_x86_exe)
[debug] Python 3.14.0 (CPython AMD64 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.0.18 30 Sep 2025)

Was a Vista SP2 64-bit VM used in this case? And which PyInst version?

4 hours ago, nicolaasjan said:

Can you test this Win7 build: yt-dlp_x86_win7.7z ?

Built with adang1345's Py3.14 with custom PyInstaller 6.15 on Windows 10.

This one launches fine :cheerleader:

yt-dlp_x86_win7.exe -v

[debug] Command-line config: ['-v']
[debug] Encodings: locale cp1253, fs utf-8, pref cp1253, out cp1253 (No VT), error cp1253 (No VT), screen cp1253 (No VT)
[debug] yt-dlp version nicolaasjan/yt-dlp@2025.10.13.080600 (win7_x86_exe*)
[debug] Python 3.14.0 (CPython x86 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.0.18 30 Sep 2025)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.1.0, certifi-2025.10.05, mutagen-1.47.0, requests-2.32.5, sqlite3-3.50.4, urllib3-2.5.0, websockets-15.0.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Plugin directories: none
[debug] Loaded 1834 extractors

Usage: yt-dlp_x86_win7.exe [OPTIONS] URL [URL...]

yt-dlp_x86_win7.exe: error: You must provide at least one URL.
Type yt-dlp --help to see a list of all options.

 

5 hours ago, nicolaasjan said:

I'm as puzzled as you are in this case...

Less puzzled now ;) , but still with unanswered questions :dubbio:...
Time to call it a night, regards...

Posted
9 hours ago, VistaLover said:

What is still unclear to me is: 
a) were both versions built on the same OS (Win7 SP1 ?) ?

No, both yt-dlp_x86_win7.exe versions were built on Windows 10 64bit with 32bit Python.

yt-dlp_win7.exe (and zipped) versions are built on Windows 7 64bit with 64bit Python.

Quote

b) were both versions packaged with "official" PyInstaller-6.16.0 ?

I think so. 🤔
 

Quote

 

This one launches OK: 

[debug] yt-dlp version local@2025.10.13 [eafedc218] (win_x86_exe)
[debug] Python 3.14.0 (CPython AMD64 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.0.18 30 Sep 2025)

Was a Vista SP2 64-bit VM used in this case? And which PyInst version?

 

Yes. And it was built with 3dyd's PyInstaller 6.15.0.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...