Content Type
Profiles
Forums
Events
Everything posted by nicolaasjan
-
I don't need them now, but others might prefer them. What I'm wondering is, why are your dll's larger in file size than the ones from here? libcrypto-3.dll: 5.19MB vs 4.38MB libssl-3.dll: 1.21MB vs 1.01MB More features?
-
I don't need them now, but others might prefer them. What I'm wondering is, why are your dll's larger in file size than the ones from here? libcrypto-3.dll: 5.19MB vs 4.38MB libssl-3.dll: 1.21MB vs 1.01MB More features?
-
Yes, those are XP compatible. There are also binaries here, but they are Vista+.
-
I tried this on XP (renamed to qjs.exe), but when running `yt-dlp -v`, it throws this:
-
Yes, that one probably didn't include the modified `yt_dlp/update.py` file... The Windows 7 one from GitHub updates fine: yt-dlp -U Current version: nicolaasjan/yt-dlp@2026.01.29.071857 Latest version: nicolaasjan/yt-dlp@2026.01.30.064627 Current Build Hash: e13632c9721715691dbbc989030c42552301cd670c32f5388dfc39fe46aa1c15 Updating to nicolaasjan/yt-dlp@2026.01.30.064627 ... Updated yt-dlp to nicolaasjan/yt-dlp@2026.01.30.064627 No, I grabbed the two 32-bit dll's from an install of the updated OpenSSL from here. (the 64-bit ones from there are not usable, as I explained earlier in this thread) I have absolutely no idea how to compile that on Windows.
-
Then it's easy to add my custom builds to it. They are different. And they can be updated with `yt-dlp -U`. PS, Do you plan to update your OpenSSL page?
-
I let the GitHub workflow build releases (which should be identical to upstream) and when that's done, I manually add my (custom Python) compiled versions in the web interface. After that, I use a Python script to fetch all the files and generate the SHA-256 and SHA-512 checksum files locally. Then replace the ones GitHub created with these, in order to make the (custom) update function* of my versions work. (*after having synchronised my fork with upstream, I clone it locally and apply a diff to `./yt_dlp/update.py` and then use that source tree in my VM's to compile) While the workflow is still running, I grab the version number from it and use that to update it in my builds as well: Then locally e.g.: python devscripts/update-version.py -c "nicolaasjan/yt-dlp" -r "nicolaasjan/yt-dlp" "2026.01.30.064627" python devscripts/set-variant.py win7_exe python -m bundle.pyinstaller I admit it's a rather hacky procedure, but it works.
-
You can read all about it in the Wiki. Deno can't be used on Windows 7. Node can be used if you use this fork. Take node-v20.19.2-win-x64.zip. extract to e.g. C:\Bin\Node and add that folder to your PATH. Can also be done via CMD as administrator: setx /m PATH "%PATH%;C:\Bin\Node" QuickJS can also be used, but it's rather slow (put qjs.exe and libwinpthread-1.dll next to yt-dlp.exe). Then add to your config file: --js-runtimes quickjs Or: --js-runtimes node
-
My releases have just been updated.
-
Well, I got it from a forum from a large country that is currently under heavy sanctions. 😳 Link to post. Maybe you can wake him up?
-
I can get avc codec with this: --extractor-args "youtube:player_client=default,ios,-android_sdkless;formats=missing_pot" -f "bv[protocol=m3u8_native][height<=1080][ext=mp4][vcodec^=avc]+ba[protocol=m3u8_native][ext=m4a]/b[protocol=m3u8_native]" (JS runtime required)
-
I managed to get OpenSSL 3.6.1 on Windows XP. yt-dlp-XP.zip openssl.7z (32-bit) [debug] Command-line config: ['-v'] [debug] User config "C:\Documents and Settings\Nico\Application Data\yt-dlp\config.txt": ['--rm-cache-dir', '--console-title', '--add-metadata', '--embed-thumbnail', '--convert-thumbnails', 'jpg', '--js-runtimes', 'node', '--ppa', 'ffmpeg:-metadata synopsis=""', '-o', '~/Bureaublad/%(title)s.%(ext)s', '-S', 'res:1080,vcodec:avc,acodec:m4a', '--sponsorblock-remove', 'all', '-N', '6'] [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 local@2026.01.28 [5bf91072b] (win_x86_exe) [debug] Python 3.11.4 (CPython x86 32bit) - Windows-XP-5.1.2600-SP3 (OpenSSL 3.6.1 27 Jan 2026) [debug] exe versions: ffmpeg N-122539-g905a432403-WINXP (fdk,setts), ffprobe N-122539-g905a432403-WINXP, phantomjs 1.9.8 [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.01.04, mutagen-1.47.0, requests-2.32.5, sqlite3-3.50.4, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.3.2 [debug] JS runtimes: node-20.19.2 [debug] Proxy map: {} [debug] Request Handlers: urllib, requests, websockets [debug] Plugin directories: none [debug] Loaded 1856 extractors Removing cache dir C:\Documents and Settings\Nico/.cache\yt-dlp ... Special NodeJS for Windows XP: Node_XP.7z
-
Yes, without Deno runtime, I get 403. This succeeded however: yt-dlp -v -N 6 --extractor-args "youtube:player_client=default,ios,-android_sdkless;formats=missing_pot" -f "bv[protocol=m3u8_native]+ba[protocol=m3u8_native]/b[protocol=m3u8_native]" "MKjJTjWwD0M" [debug] Command-line config: ['-v', '-N', '6', '--extractor-args', 'youtube:player_client=default,ios,-android_sdkless;formats=missing_pot', '-f', 'bv[protocol=m3u8_native]+ba[protocol=m3u8_native]/b[protocol=m3u8_native]', 'MKjJTjWwD0M'] [debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8 [debug] yt-dlp version local@2026.01.28 [5bf91072b] (zip) [debug] Python 3.14.2 (CPython x86_64 64bit) - Linux-5.15.0-164-generic-x86_64-with-glibc2.35 (OpenSSL 3.6.1 27 Jan 2026, glibc 2.35) [debug] exe versions: ffmpeg N-122567-gf4ca7950d8-Nico-20260128 (fdk,setts), ffprobe N-122567-gf4ca7950d8-Nico-20260128, rtmpdump 2.4 [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.01.04, curl_cffi-0.13.0, mutagen-1.47.0, requests-2.32.5, secretstorage-3.5.0, sqlite3-3.37.2, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.3.2 [debug] JS runtimes: none [debug] Proxy map: {} [debug] Request Handlers: urllib, requests, websockets, curl_cffi [debug] Plugin directories: none [debug] Loaded 1856 extractors [debug] [youtube] [pot] PO Token Providers: none [debug] [youtube] [pot] PO Token Cache Providers: memory [debug] [youtube] [pot] PO Token Cache Spec Providers: webpo [debug] [youtube] [jsc] JS Challenge Providers: bun (unavailable), deno (unavailable), node (unavailable), quickjs (unavailable) [youtube] Extracting URL: MKjJTjWwD0M [youtube] MKjJTjWwD0M: Downloading webpage [debug] [youtube] Forcing "main" player JS variant for player afc53320 original url = /s/player/afc53320/player_es6.vflset/en_US/base.js [youtube] MKjJTjWwD0M: Downloading ios player API JSON [youtube] MKjJTjWwD0M: Downloading m3u8 information [debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec, channels, acodec, lang, proto [debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec, channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id [info] Testing format 616 [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 35 [download] Destination: /tmp/tmp7jo6ozpf.tmp [download] 100% of 712.00B in 00:00:00 at 2.50KiB/s [info] Testing format 234 [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 35 [download] Destination: /tmp/tmpzt5lsm1h.tmp [download] 100% of 80.05KiB in 00:00:00 at 1.07MiB/s [info] MKjJTjWwD0M: Downloading 1 format(s): 616+234 [debug] Invoking hlsnative downloader on "https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1769643300/ei/xEh6ab_6Ce2Ci9oPusXE4QU/ip/<REDACTED>/id/30a8c94e35b00f43/itag/616/source/youtube/requiressl/yes/ratebypass/yes/pfa/1/wft/1/sgovp/clen%3D70257329%3Bdur%3D173.633%3Bgir%3Dyes%3Bitag%3D356%3Blmt%3D1769571436466225/rqh/1/hls_chunk_host/rr2---sn-4g5ednkl.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/cps/397/met/1769621700,/mh/ko/mm/31,29/mn/sn-4g5ednkl,sn-4g5lznls/ms/au,rdu/mv/m/mvi/2/pl/16/rms/au,au/initcwndbps/4130000/bui/AW-iu_qRyHIl0Wd003fh4_bDXzyymGiQFBtbz7QuvIrVen-0TZAMVloWd_VimP74l9DSIcqdtDc_yU1u/spc/q5xjPO4YXM_kb-U2Z4RfI20o20rEr1WR5Q4m8XS7oFMdp1juouG_w0qYrexOJMzD/vprv/1/playlist_type/DVR/dover/13/txp/5532534/mt/1769620278/fvip/3/short_key/1/keepalive/yes/fexp/51552689,51565115,51565682,51580968/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,pfa,wft,sgovp,rqh,xpc,bui,spc,vprv,playlist_type/sig/AJEij0EwRQIhALQE-1nY7HuT-h0WimCIB-7yDqo2g5qa3N2LgSL7T-EHAiBjQr5WebC_0JCPO_Uwl3t3rHn4YNNNsyxDkmfqu_bKIA%3D%3D/lsparams/hls_chunk_host,cps,met,mh,mm,mn,ms,mv,mvi,pl,rms,initcwndbps/lsig/APaTxxMwRAIgFVmH1x5Eyyxjo9ollhoXy7cjZkbar4Th5WrMnzPAou4CIDeKtnEwOXqnDBVQkjHbVhWSrQ25JKhjlcUXSM-QmA6-/playlist/index.m3u8" [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 35 [download] Destination: Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].f616.mp4 [download] 100% of 67.03MiB in 00:00:07 at 8.71MiB/s [debug] Invoking hlsnative downloader on "https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1769643300/ei/xEh6ab_6Ce2Ci9oPusXE4QU/ip/<REDACTED>/id/30a8c94e35b00f43/itag/234/source/youtube/requiressl/yes/ratebypass/yes/pfa/1/goi/133/sgoap/clen%3D2812478%3Bdur%3D173.731%3Bgir%3Dyes%3Bitag%3D140%3Blmt%3D1769568370627241/rqh/1/hls_chunk_host/rr2---sn-4g5ednkl.googlevideo.com/xpc/EgVo2aDSNQ%3D%3D/cps/397/met/1769621700,/mh/ko/mm/31,29/mn/sn-4g5ednkl,sn-4g5lznls/ms/au,rdu/mv/m/mvi/2/pl/16/rms/au,au/initcwndbps/4130000/bui/AW-iu_qRyHIl0Wd003fh4_bDXzyymGiQFBtbz7QuvIrVen-0TZAMVloWd_VimP74l9DSIcqdtDc_yU1u/spc/q5xjPO4YXM_kb-U2Z4RfI20o20rEr1WR5Q4m8XS7oFMdp1juouG_w0qYrexOJMzD/vprv/1/playlist_type/DVR/dover/13/txp/5532534/mt/1769620278/fvip/3/short_key/1/keepalive/yes/fexp/51552689,51565115,51565682,51580968/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,pfa,goi,sgoap,rqh,xpc,bui,spc,vprv,playlist_type/sig/AJEij0EwRAIgSRH9tJYP99aXLeZ0RS2ZG2VWJX1ieEK19BBFRePFLssCIGA70lcAMXy9ls_SCgKV7dajB5VlZPFueNSmsjYW8Gfn/lsparams/hls_chunk_host,cps,met,mh,mm,mn,ms,mv,mvi,pl,rms,initcwndbps/lsig/APaTxxMwRAIgcYEj2WVVsqfMeFodEy9iWQ1OjF9LAFAiOaynPR6bwhQCIC56APb_RAwQMmUpmQb8Z_982Hdx3FvwvCCqrlaLRhCN/playlist/index.m3u8" [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 35 [download] Destination: Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].f234.mp4 [download] 100% of 2.70MiB in 00:00:00 at 4.93MiB/s [debug] ffmpeg command line: ffprobe -show_streams 'file:Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].f234.mp4' [Merger] Merging formats into "Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].mp4" [debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].f616.mp4' -i 'file:Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].f234.mp4' -c copy -map 0:v:0 -map 1:a:0 -bsf:a:0 aac_adtstoasc -movflags +faststart 'file:Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].temp.mp4' Deleting original file Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].f616.mp4 (pass -k to keep) Deleting original file Nebraska at Michigan | HIGHLIGHTS | Big Ten Basketball | 01⧸27⧸2026 [MKjJTjWwD0M].f234.mp4 (pass -k to keep)
-
Thanks again! Working fine as far as I can see: [debug] Command-line config: ['-v'] [debug] User config "C:\Users\Nico\AppData\Roaming\yt-dlp\config.txt": ['--rm-cache-dir', '--console-title', '--js-runtimes', 'node', '-o', '~/Desktop/%(title)s.%(ext)s', '-S', 'res:1080,vcodec:vp9,acodec:opus', '--embed-thumbnail', '--add-metadata', '--convert-thumbnails', 'jpg', '--ppa', 'ffmpeg:-metadata synopsis=""', '--force-ipv4', '-N', '6', '--sponsorblock-remove', 'all'] [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 local@2026.01.28 [5bf91072b] (win_exe) [debug] Python 3.14.2 (CPython AMD64 64bit) - Windows-7-6.1.7601-SP1 (OpenSSL 3.6.1 27 Jan 2026) [debug] exe versions: ffmpeg N-122272-g224b3ff82a-WIN7 (fdk,setts), ffprobe N-122272-g224b3ff82a-WIN7, phantomjs 2.5.0 [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.01.04, curl_cffi-0.13.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.50.4, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.3.2 [debug] JS runtimes: node-20.19.2 [debug] Proxy map: {} [debug] Request Handlers: urllib, requests, websockets, curl_cffi [debug] Plugin directories: none [debug] Loaded 1856 extractors Removing cache dir C:\Users\Nico/.cache\yt-dlp .. Test: yt-dlp-test.zip.
-
@autodidact Thank you for the FFmpeg builds. Now, would you be so kind to update OpenSSL 64-bit dll's to 3.6.1? 🙏 This is an important security update.
-
Done.
-
That's right. But what's new is that libcurl (and thus curl_cffi 0.14.0) have now started to enforce these extensions (no idea why). Since 0.14.0 doesn't offer any critical features that we can't live without on Windows 7, I will pin my version on 0.13.0 for as long as possible. At the moment there are no security issues with that version. It's an uphill battle with yt-dlp always wanting the latest and "greatest".
-
I don't think there will be many users of the 64-bit version that also have an old local DNS resolver, but nevertheless I will downgrade curl_cffi to version 0.13.0 for the next release. Forcing these modern DNS extensions on a legacy-OS target is counter-productive anyway. Meanwhile, here is a 64-bit test version, so we can see if curl_cffi 0.13.0 doesn't give issues for you with 2026.01.19.143412.
-
It could be, that the issue has arisen because I updated to the module curl_cffi 0.14.0. What happens when you add the `--force-ipv4` flag to your yt-dlp command?
-
What is the output of : nslookup -querytype=TYPE65 www.youtube.com (this checks if your local resolver/OS handles Type 65 queries correctly outside of yt-dlp) And what is the output of a --verbose log?
-
I have little to no understanding of networking, so I'm afraid I can´t help you with this particular issue. I just tested a random video from YouTube in my Windows 7 VM and all went fine.
-
My yt-dlp branch now shows: But this change is already applied in my own builds before the patch was officially merged.
-
It works. [debug] Command-line config: ['-v'] [debug] User config "C:\Users\Nico\AppData\Roaming\yt-dlp\config.txt": ['--rm-cache-dir', '--console-title', '--js-runtimes', 'node', '-o', '~/Desktop/%(title)s.%(ext)s', '-S', 'res:1080,vcodec:vp9,acodec:opus', '--embed-thumbnail', '--add-metadata', '--convert-thumbnails', 'jpg', '--ppa', 'ffmpeg:-metadata synopsis=""', '--force-ipv4', '-N', '6', '--sponsorblock-remove', 'all'] [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 nicolaasjan/yt-dlp@2026.01.09.064524 (win7_exe*) [debug] Python 3.14.2 (CPython AMD64 64bit) - Windows-7-6.1.7601-SP1 (OpenSSL 3.6.0 1 Oct 2025) [debug] exe versions: ffmpeg N-122272-g224b3ff82a-WIN7 (fdk,setts), ffprobe N-122272-g224b3ff82a-WIN7, phantomjs 2.5.0 [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.01.04, curl_cffi-0.13.0, mutagen-1.47.0, requests-2.32.5, sqlite3-3.50.4, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.3.2 [debug] JS runtimes: node-20.19.2 [debug] Proxy map: {} [debug] Request Handlers: urllib, requests, websockets, curl_cffi [debug] Plugin directories: C:\Users\Nico\AppData\Roaming\yt-dlp\plugins\bgutil-ytdlp-pot-provider\yt_dlp_plugins [debug] Loaded 1853 extractors Removing cache dir C:\Users\Nico/.cache\yt-dlp .. yt-dlp_win7.7z
-
@Reino Would you be able to compile OpenSSL shared libraries 3.6.0 64-bit for use in Windows 7 (Python 3.14.2 from adang1345)? The shared libraries from e.g. here are named libssl-3-x64.dll and libcrypto-3-x64.dll, which Python 64-bit doesn't recognise (see also post above) They should be named libssl-3.dll and libcrypto-3.dll instead.
-
@DesWer on GitHub in the Rumble thread asked me for a link to my Python for XP environment. Well, here it is, complete with all current dependencies installed: Python311_XP-folder.7z Extract it to e.g. C:\Python311 and add that folder, plus C:\Python311\Scripts to your PATH. Instead of building the standalone executable with PyInstaller, you can use pip to install the Nightly build directly: python -m pip install -U --pre "yt-dlp[default]" That will install/update the dependencies as well. (yt-dlp Nightly from 2026.01.02 is already included)