Jump to content

Who here has a Youtube-DL compile for WinXP?


Recommended Posts

Posted

When tested if this Node version would work on Vista, I got this:

The procedure entry point EventSetInformation could not be located in the dynamic link library ADVAPI32.dll

 


Posted

Breaking news: 

https://github.com/yt-dlp/yt-dlp/issues/14404#issue-3444474002

Quote

6. What about QuickJS?

Edit: It will be supported.

10. What is the minimum required version of Node/Bun/QuickJS?

QuickJS: 2023-12-9

QuickJS version 2025-09-13 or later is strongly recommended for performance reasons

https://bellard.org/quickjs/binary_releases/?C=M;O=D

For my Vista SP2 32-bit laptop: 

https://bellard.org/quickjs/binary_releases/quickjs-win-i686-2025-09-13.zip

... and: 

qjs -h

QuickJS version 2025-09-13
usage: qjs [options] [file [args]]
-h  --help         list options
-e  --eval EXPR    evaluate EXPR
-i  --interactive  go to interactive mode
-m  --module       load as ES6 module (default=autodetect)
    --script       load as ES6 script (default=autodetect)
-I  --include file include an additional file
    --std          make 'std' and 'os' available to the loaded script
-T  --trace        trace memory allocation
-d  --dump         dump the memory usage stats
    --memory-limit n  limit the memory usage to 'n' bytes (SI suffixes allowed)
    --stack-size n    limit the stack size to 'n' bytes (SI suffixes allowed)
    --no-unhandled-rejection  ignore unhandled promise rejections
-s                    strip all the debug info
    --strip-source    strip the source code
-q  --quit         just instantiate the interpreter and quit

Though, this might still mean nothing, as I haven't gotten around to actually trying 

https://github.com/yt-dlp/yt-dlp/pull/14157

on this machine...

Wiki (WIP): 

https://github.com/coletdjnz/yt-dlp-wiki-dev/blob/ejs/EJS.md

Posted
6 hours ago, nicolaasjan said:

When tested if this Node version would work on Vista, I got this:

The procedure entry point EventSetInformation could not be located in the dynamic link library ADVAPI32.dll

Most sadly, this is only part of the story :( ; probing the v20.19.2 (32-bit) binary (a whooping 61.3 MiB in filesize) with DependencyWalker, I found a total of six (6) Vista-incompatible function calls: 

in advapi32.dll:

EventSetInformation

in kernel32.dll:

K32GetModuleBaseNameW
K32GetProcessMemoryInfo
ResolveLocaleName
TryAcquireSRWLockExclusive
TryAcquireSRWLockShared

The first one can also be a thing on a partially updated Win7 SP1 install (see this); thank you for already raising a Vista-support issue with Vladimir :thumbup ...

Posted
7 hours ago, nicolaasjan said:

Test binary here

1. This one does launch OK under Vista SP2 32-bit :) .

8 hours ago, nicolaasjan said:

Added to the config file:

--remote-components ejs:github
--js-runtimes node
--remote-components ejs:npm

2. Instead of the cmdline flag/config setting

"--remote-components ejs:github"

you could've built the PyInstaller binary with the EJS components bundled, as will upstream do ;) 

https://github.com/coletdjnz/yt-dlp-wiki-dev/blob/ejs/EJS.md#step-2-install-ejs-challenge-solver-scripts

Quote

Official PyInstaller-bundled executable -> No additional action required. All the necessary JavaScript components will be bundled with these executables.

You can install them via PyPI prior to PyInst compilation: 

python -m pip install -U yt-dlp-ejs

and, hopefully, they'll be integrated into the produced executable, just like the rest of the default Python modules...

3. " --remote-components ejs:npm" applies ONLY to deno/bun, NOT to node used on Win7 :whistle: 

https://github.com/coletdjnz/yt-dlp-wiki-dev/blob/ejs/EJS.md#option-2-enable-ejs-script-downloads-from-npm

4. At the time the binary was compiled, quickjs support hadn't yet arrived, thus: 

yt-dlp_x86 --ies youtube -vF "yrcIdXBwVww" --remote-components ejs:github --js-runtimes quickjs =>

...
WARNING: Ignoring unsupported JavaScript runtime(s): quickjs. Supported runtimes: deno, node, bun.
...
[debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node (unavailable)
...
[info] Available formats for yrcIdXBwVww:
ID  EXT   RESOLUTION FPS |  FILESIZE   TBR PROTO | VCODEC      ACODEC    MORE INFO
-----------------------------------------------------------------------------------
sb3 mhtml 48x27        0 |                 mhtml | images                storyboard
sb2 mhtml 80x45        1 |                 mhtml | images                storyboard
sb1 mhtml 160x90       1 |                 mhtml | images                storyboard
sb0 mhtml 320x180      1 |                 mhtml | images                storyboard
91  mp4   256x144     30 | ~ 3.43MiB  123k m3u8  | avc1.4D400C mp4a.40.5 WEB-S
92  mp4   426x240     30 | ~ 5.41MiB  195k m3u8  | avc1.4D4015 mp4a.40.5 WEB-S
93  mp4   640x360     30 | ~11.03MiB  397k m3u8  | avc1.4D401E mp4a.40.2 WEB-S
94  mp4   854x480     30 | ~20.21MiB  728k m3u8  | avc1.4D401F mp4a.40.2 WEB-S
95  mp4   1280x720    30 | ~41.07MiB 1479k m3u8  | avc1.64001F mp4a.40.2 WEB-S
96  mp4   1920x1080   30 | ~81.20MiB 2923k m3u8  | avc1.640028 mp4a.40.2 WEB-S

Best regards.

Posted (edited)
15 hours ago, VistaLover said:

I'm seeing archive "libfdk-aac-v2.0.3-158-gd8e6b1a-x86.7z" intended for Win7SP1_x86; this one affords a DLL much larger (2.10 MiB) than the DLL extracted from archive "libfdk-aac-2.0.3-158-d8e6b1a-win32-xpmod-P4.7z" (1.33 MiB) 

Either libfdk-aac library should work fine on Vista. 

The Windows 7 version was compiled with GCC 15 but it looks like I neglected to strip the file so it is larger than it needs to be.

I will link a corrected file next time.  Thanks for bringing that to my attention. 

Edited by autodidact
Posted
6 hours ago, VistaLover said:

Instead of the cmdline flag/config setting

"--remote-components ejs:github"

you could've built the PyInstaller binary with the EJS components bundled, as will upstream do ;) 

https://github.com/coletdjnz/yt-dlp-wiki-dev/blob/ejs/EJS.md#step-2-install-ejs-challenge-solver-scripts

You're right. I should have read the Wiki first. :blushing:

Here is an updated build with quickjs support and EJS bundled.

However, quickjs isn't that quick...

It took 28 minutes to figure out `yt-dlp -F URL` (in the meantime using a lot of memory and CPU).

spacer.png

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   1 member

×
×
  • Create New...