Jump to content

Who here has a Youtube-DL compile for WinXP?


j7n

Recommended Posts

5 hours ago, Mark-XP said:

i'll look in this thread here more often, to get a well maintained yt-dlp version for my classic XP and 7 environments.

Latest yt-dlp for XP is also uploaded to my GitHub repo. :)

Direct link:

https://github.com/nicolaasjan/yt-dlp/releases/latest/download/yt-dlp_x86_Windows-XP.zip

For Windows 7 you can also still use one from the official Release files, or one from the nightly builds.

The 64bit version (yt-dlp.exe) is built with Python 3.8.10 and the 32bit version (yt-dlp_x86.exe) is built with Python 3.7.9, so that one will work on Vista as well. However support for 3.7 wil probably be dropped soon...

Edited by nicolaasjan
Link to comment
Share on other sites


1 hour ago, nicolaasjan said:

How did you do that?

With Python 3.9.13 from here:

D:\Storage\Media\Binaries>python "yt-dlp_git\yt_dlp\__main__.py" -vgf 22 "8kl6q_9qZOs"
[debug] Command-line config: ['-vgf', '22', '8kl6q_9qZOs']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8 (No VT), error utf-8 (No VT), screen utf-8 (No VT)
[debug] yt-dlp version stable@2023.07.06 [b532a3481] (source)
[debug] Lazy loading extractors is disabled
[debug] Python 3.9.13 (CPython x86 32bit) - Windows-XP-5.1.2600-SP3 (OpenSSL 1.1.1i  8 Dec 2020)
[debug] exe versions: ffmpeg N-102342-g5541cff-Reino (fdk,setts)
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, secretstorage-3.3.3, sqlite3-2.6.0, websockets-11.0.2
[debug] Proxy map: {}
[debug] Loaded 1863 extractors
[youtube] Extracting URL: 8kl6q_9qZOs
[youtube] 8kl6q_9qZOs: Downloading webpage
[youtube] 8kl6q_9qZOs: Downloading ios player API JSON
[youtube] 8kl6q_9qZOs: Downloading android player API JSON
[youtube] 8kl6q_9qZOs: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[info] 8kl6q_9qZOs: Downloading 1 format(s): 22
https://rr2---sn-32o-bg9e.googlevideo.com/videoplayback?[...]
Edited by Reino
Link to comment
Share on other sites

14 hours ago, dmiranda said:

I like the idea of 32mb ffmpeg

... Do note, though ;), that this specific binary size pertains to native compilation under Linux

On 7/7/2023 at 8:05 AM, nicolaasjan said:

On my main Linux system I compile FFmpeg myself (with the help of this guide, and without libaom, libsvtav1 and libvmaf).

Resulting binary: ~32MB.

Cross-compilation on Linux targeting WinXP will result in quite larger binaries, compared to the ones produced for native Linux usage... Even larger file sizes are being produced under native Windows FFmpeg compilation :o ...

Regards :)

Link to comment
Share on other sites

8 hours ago, Reino said:

The source itself, as far as I can tell, is still compatible.

... No, it's NOT (compatible with any CPython version < 3.7); you're just "cheating" ;) :P, by running the "source" with a "community" recompiled/produced (see my previous reply to @Mark-XP here) CPython version 3.9 : 

5 hours ago, Reino said:

With Python 3.9.13 from here

which doesn't officially (as in by the PSF) support Windows < 8.1 (BTW, Python code doesn't target specific OS versions, only specific Python versions) ...

8 hours ago, Reino said:

"The official yt-dlp binary has long ago abandoned..."

You added "binary" yourself, there ;) ; I was referring to the yt-dlp source code, which should also cover all binaries compiled from it! 

As I wrote already, the PSF EoL'ed Windows XP SP3 with CPython 2.7.18 and 3.4.10, none of which is currently supported by yt-dlp (source) code ;) ; as I also wrote previously, the youtube-dl (source) code does still support both aforementioned CPython versions (and, thus, XP SP3); is now everything crystal clear? I hope so :lol:...

Warmest (as in being under yet another :( heatwave here) greetings from Greece :) !

Edited by VistaLover
clarifications
Link to comment
Share on other sites

I guess I didn't even realize I was actually cheating. :lol:

You're right. I knew that 3.4.10 is the latest WinXP compatible release.

Not everything is crystal clear. :P What does PSF stand for?

Link to comment
Share on other sites

23 hours ago, VistaLover said:

Cross-compilation on Linux targeting WinXP will result in quite larger binaries, compared to the ones produced for native Linux usage... Even larger file sizes are being produced under native Windows FFmpeg compilation :o ...

(offtopic)

Today I cross-compiled ffmpeg-nonfree (both 32 and 64bit) with the script from here.

Took 5 hours. Sandbox directory 27.8GB. :yes:

Doesn't work on XP. :(

On Vista it gave:

error.png.a869f0bb29c946393c0ba47a0fd106fb.png

On Windows 7 it worked. :)

File size of the 64bit version is ~116MB, but you have to take into account that a lot of libs are enabled:

ffmpeg version N-111790-g7e246a5db5-ffmpeg-windows-build-helpers Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 10.2.0 (GCC)
configuration: --pkg-config=pkg-config --pkg-config-flags=--static --extra-version=ffmpeg-windows-build-helpers --enable-version3 --disable-debug --disable-w32threads --arch=x86_64 --target-os=mingw32 --cross-prefix=/media/ext3-data/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/bin/x86_64-w64-mingw32- --enable-libcaca --enable-gray --enable-libtesseract --enable-fontconfig --enable-gmp --enable-libass --enable-libbluray --enable-libbs2b --enable-libflite --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libvorbis --enable-libwebp --enable-libzimg --enable-libzvbi --enable-libmysofa --enable-libopenjpeg --enable-libopenh264 --enable-libvmaf --enable-libsrt --enable-libxml2 --enable-opengl --enable-libdav1d --enable-cuda-llvm --enable-gnutls --enable-libsvtav1 --enable-libvpx --enable-libaom --enable-nvenc --enable-nvdec --extra-libs=-lharfbuzz --extra-libs=-lm --extra-libs=-lshlwapi --extra-libs=-lmpg123 --extra-libs=-lpthread --extra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCACA_STATIC --enable-amf --disable-libmfx --enable-libaribcaption --enable-gpl --enable-frei0r --enable-librubberband --enable-libvidstab --enable-libx264 --enable-libx265 --enable-avisynth --enable-libaribb24 --enable-libxvid --enable-libdavs2 --enable-libxavs2 --enable-libxavs --extra-cflags='-mtune=generic' --extra-cflags=-O3 --enable-static --disable-shared --prefix=/media/ext3-data/git/ffmpeg-windows-build-helpers/sandbox/cross_compilers/mingw-w64-x86_64/x86_64-w64-mingw32 --enable-nonfree --enable-libfdk-aac --enable-decklink
libavutil      58. 17.100 / 58. 17.100
libavcodec     60. 23.100 / 60. 23.100
libavformat    60. 10.100 / 60. 10.100
libavdevice    60.  2.101 / 60.  2.101
libavfilter     9. 11.100 /  9. 11.100
libswscale      7.  3.100 /  7.  3.100
libswresample   4. 11.100 /  4. 11.100
libpostproc    57.  2.100 / 57.  2.100

 

Edited by nicolaasjan
Link to comment
Share on other sites

  • 3 weeks later...
13 hours ago, nicolaasjan said:

yt-dlp updated to nightly@2023.09.05 [c6ef55379].

Temporary fix for Facebook manually included for whoever uses that site.

... According to my tests (and records of them kept ;) ), the FB related PR#7890 was already present in your py3.8

[debug] yt-dlp version nightly@2023.09.02 [2301b5c1b] (win_x86_exe)

previous build; while the "nightly@2023.08.31 [7237c8dca]" one did not include it :P ...

FWIW, this PR has now been officially merged into yt-dlp master branch:

https://github.com/yt-dlp/yt-dlp/commit/d3d81cc98f554d0adb87d24bfd6fabaaa803944d

Kindest regards :) ...

Link to comment
Share on other sites

  • 1 month later...

Hi @nicolaasjan :), hope you're doing great and that the Dutch weather hasn't turned very cold yet ;) ...

In yt-dlp/commit/8a8b545 , PR #3668 was merged; this one adds an optional dependency to the requests python module, itself depending on the urllib3 python module; here's the latest yt-dlp requirements file:

mutagen
pycryptodomex
websockets
brotli; platform_python_implementation=='CPython'
brotlicffi; platform_python_implementation!='CPython'
certifi
requests>=2.31.0,<3
urllib3>=1.26.17,<3

The "official" yt-dlp_x86.exe file has those already bundled, e.g.:

[debug] yt-dlp version nightly@2023.10.15.085452 [4e38e2ae9] (win_x86_exe)
[debug] Python 3.7.9 (CPython x86 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 1.1.1g  21 Apr 2020)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, requests-2.31.0, sqlite3-3.31.1, urllib3-2.0.6, websockets-11.0.3

and so does the latest yt-dlp_x86.exe file you provided yourself :thumbup (compiled via GitHub Actions):

[debug] yt-dlp version nicolaasjan/yt-dlp@2023.10.14.034319 [8a8b54523] (win_x86_exe)
[debug] Python 3.7.9 (CPython x86 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 1.1.1g  21 Apr 2020)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, requests-2.31.0, sqlite3-3.31.1, urllib3-2.0.6, websockets-11.0.3

HOWEVER :(, the py3.8 based ,

[debug] yt-dlp version nightly@2023.10.14 [8a8b54523] (win_x86_exe)
[debug] Python 3.8.13+ (CPython x86 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.1.0-dev )
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, sqlite3-3.35.5, websockets-11.0.3

and py3.9 based,

[debug] yt-dlp version nightly@2023.10.14 [8a8b54523] (win_x86_exe)
[debug] Python 3.9.13 (CPython x86 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.1.0-dev )
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, sqlite3-3.37.2, websockets-11.0.3

latest offerings do NOT :no: ; as the official 32-bit yt-dlp builds will soon move to py3.8 :} , I'll have to rely more on your own py3.8/py3.9 builds (at least until I set up myself an environment to produce mine ;) ); is it technically possible to add requests+urllib3 to those builds of yours :P ?

Kindest regards :) ...

Link to comment
Share on other sites

On 10/15/2023 at 11:25 PM, VistaLover said:

is it technically possible to add requests+urllib3 to those builds of yours :P ?

It was possible to add these, but the resulting binary didn't seem to pick up requests 2.31.0. :unsure::

[debug] Command-line config: ['-v', '--ignore-config']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out cp1252 (No VT), error cp1252 (No VT), screen cp1252 (No VT)
[debug] yt-dlp version nightly@2023.10.15 [4e38e2ae9] (win_x86_exe)
[debug] Python 3.8.13+ (CPython x86 32bit) - Windows-XP-5.1.2600-SP3 (OpenSSL 3.1.0-dev )
[debug] exe versions: ffmpeg N-111893-gbef151d-Reino (setts), ffprobe N-111893-gbef151d-Reino
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, sqlite3-3.35.5, urllib3-2.0.6, websockets-11.0.3
[debug] Proxy map: {}
[debug] Request Handlers: urllib
[debug] Loaded 1890 extractors

Pip list:

Package                   Version
------------------------- ---------
altgraph                  0.17.3
Brotli                    1.1.0
certifi                   2023.7.22
charset-normalizer        3.3.0
future                    0.18.2
idna                      3.4
importlib-metadata        6.8.0
mutagen                   1.47.0
packaging                 23.2
pefile                    2022.5.30
pip                       23.2.1
pycryptodomex             3.19.0
pyinstaller               5.13.2
pyinstaller-hooks-contrib 2022.14
pywin32-ctypes            0.2.1
requests                  2.31.0
setuptools                68.2.2
urllib3                   2.0.6
websockets                11.0.3
wheel                     0.41.2
zipp                      3.17.0

[notice] A new release of pip is available: 23.2.1 -> 23.3
[notice] To update, run: python.exe -m pip install --upgrade pip

Notice: I reverted to pip 23.2.1, because 23.3 gave this all the time:

 WARNING: There was an error checking the latest version of pip.

If adding these optional dependencies somehow fail to do their job, I'm not sure I'll implement them...

Could you test the build linked above, because I have no idea in which scenario to test this myself...

PS,

The Dutch weather turned to 6°C at the moment... 🙁

Link to comment
Share on other sites

Addendum:

The Py3.9 build did better:

[debug] Command-line config: ['-v', '--ignore-config']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out cp1252 (No VT), error cp1252 (No VT), screen cp1252 (No VT)
[debug] yt-dlp version nightly@2023.10.15 [4e38e2ae9] (win_x86_exe)
[debug] Python 3.9.13 (CPython x86 32bit) - Windows-XP-5.1.2600-SP3 (OpenSSL 3.1.0-dev )
[debug] exe versions: ffmpeg N-111893-gbef151d-Reino (setts), ffprobe N-111893-gbef151d-Reino
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2023.07.22, mutagen-1.47.0, requests-2.31.0, sqlite3-3.37.2, urllib3-2.0.6, websockets-11.0.3
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests
[debug] Loaded 1890 extractors

 

Link to comment
Share on other sites

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...