nicolaasjan Posted 14 hours ago Posted 14 hours ago 31 minutes ago, VistaLover said: I hope it's now clear to you ... Yes, I think so. _video.py.diff.zip I use the `git diff` command to make diff files. I presume you have git for Windows installed? The last version to support Windows Vista and Server 2008 was v2.37.1 https://git-scm.com/docs/git-diff
VistaLover Posted 12 hours ago Posted 12 hours ago (edited) 2 hours ago, nicolaasjan said: _video.py.diff.zip ... But why double plus signs in the "test iOS HLS streams" block? @@ -3579,6 +3581,10 @@ class YoutubeIE(YoutubeBaseInfoExtractor): if missing_pot: f['format_note'] = join_nonempty(f.get('format_note'), 'MISSING POT', delim=' ') f['source_preference'] -= 20 ++ # XXX: Check if IOS HLS formats are affected by PO token enforcement; temporary ++ # See https://github.com/yt-dlp/yt-dlp/issues/13511 ++ if proto == 'hls' and client_name == 'ios': ++ f['__needs_testing'] = True itags[itag].add(key) 2 hours ago, nicolaasjan said: I presume you have git for Windows installed? ... Not quite ; I do have a quite old by now (ca. 2016) "portable" installation of a native Windows 32-bit compiler called "media-autobuild_suite" lying around on an external HDD somewhere (that compiler was used until ca. 2018 to compile non-free custom FFmpeg builds), which comes with many MSYS2 utilities, including diff; then I do have a portable installation of GitPortable, with the portable package frozen at v2.11.1-devtest.1 ; that was the last that had a dedicated portable launcher for the CLI version, all versions after that have only one launcher, for the GUI version; I never bothered to update Git itself inside that past v2.22.0-32-bit ... 2 hours ago, nicolaasjan said: The last version to support Windows Vista and Server 2008 was v2.37.1 Thanks for that ; has this been properly documented somewhere, or was it a "trial-and-error" discovery? Last info I had about ceasing NT 6.0 support was this: https://github.com/git-for-windows/git/releases/tag/v2.36.0.windows.1 Quote Git for Windows will also stop supporting Windows Vista soon after Git for Windows 2.36.0 is released. Actually, the software I used to create the patch file I uploaded here is a much older but very simple app, part of DiffUtils for Windows ; the cmd I used was: diff -u -b "_video.py.a" "_video.py.b" > "_video.py.patch" Edited 12 hours ago by VistaLover 1
VistaLover Posted 11 hours ago Posted 11 hours ago 8 hours ago, nicolaasjan said: Updated yt-dlp_x86 for Vista: link. ... So, this one has been compiled with @vladimir-andreevich's CPython-3.11.9-win32, Vista-compatible, implementation; very nice ... Tip1: v3.11.9 has been compiled with the OpenSSL-3.0.13 dependency (files libcrypto-3.dll+libssl-3.dll); if one downloads python-3.12.10-embed-win32.zip , files libcrypto-3.dll+libssl-3.dll are of version 3.0.16; these are interchangeable with the v3.0.13 files, so one can have CPython-3.11.9 with the updated OpenSSL-3.0.16 dependency ... Tip2: If one copies files _ssl.pyd+libcrypto-3.dll+libssl-3.dll from inside cmalex's py3.11.4 (for XP) distribution and overwrites existing files (of same name) inside Vladimir's 3.11.9 distribution, one can have CPython-3.11.9 with the updated OpenSSL-3.5.2 dependency ... 1
VistaLover Posted 9 hours ago Posted 9 hours ago 11 hours ago, nicolaasjan said: Bad news: ... Well, isn't this the norm lately? Bad news from everywhere ... But if it involves yt-dlp/youtube-dl, then it must surely come from most satanic Google ... During the last years, "they"'ve been mercilessly throwing in the direction of the popular YT-downloaders whatever they could devise to thwart their normal operation ; proprietary HTML5 player blobs with encrypted signature (n-sig), (lately) streams protected with PO Tokens, various manipulations of signed-in cookies, irreversible breakage of the "hack" to download age-gated clips without being signed-in, very intense IP blocking client-side, using their proprietary streaming protocol called SABR, even full-blown DRM on (TV) streams was trialed some weeks ago (plus other things I forget) ... All this time, the yt-dlp devs tried the best they had in their arsenal to combat Google's anti-download agenda; up until now, the n-sig decrypting "issue" had been successfully dealt with with frequent updates on the yt-dlp side (as soon as a new yt-player showed up), using for decryption what is called a Native JS Interpreter (pure-Pyrhon-based); successful decryption of n-sig is vital these days, because it's an "all or nothing case"; many months ago, YT would let you download at significantly throttled speeds without a decrypted n-sig, but currently you're plainly being denied any download ... The Native JS Interpreter worked fine until (and including) yt-player 0004de42 ; then, yt-player 2b83d2e has started to propagate across YT CDNs: https://github.com/yt-dlp/yt-dlp/issues/14400 I have to rely on the expertise of the yt-dlp devs, but, most sadly, it appears this new yt-player is a new kind of a formidable beast that is no match for the Python-based JSinterp ... At the moment, a stop-gap solution has been implemented, https://github.com/yt-dlp/yt-dlp/pull/14398 but, as it's noted, Quote This is only expected to work for a limited time. ... hence: https://github.com/yt-dlp/yt-dlp/issues/14404 I do remember well that in the past, in the case of an unsolvable signature, PhantomJS would kick-in; it didn't work in all cases, the 32-bit executable requires Vista+ and the project has now become an "abandonware", thus having been rejected, for "security" reasons, by the overwhelming majority of the yt-dlp "fanbois" (most of them already on Win11) ... I haven't closely followed yt-dlp development ever since they dropped py3.7 support, but has PhantomJS already been dropped as a JSinterp fallback inside the yt-dlp code? In any case, the proposed "solution" by the yt-dlp team isn't suitable for the retrocomputing (Windows) communities whichever way you look at it ; deno is built on recent versions of Node JS and, as such, requires Win10+; the standalone Windows executable they provide is ONLY 64-bit ; this means: a) 32-bit OSes are unsupported (unless someone can compile deno from source as a Windows x86 binary) b) every Windows OS below 10 will be unsupported (that will include Win8.1, that official yt-dlp still supports); this is the part that infuriates me the most : our "brave" retrocomputing heros have gone to great lengths to backport recent CPython versions to XP+Vista (cmalex , literally from the front line ), Vista+Win7 (Vladimir Andreevich), Win7+ (Aohan Dang), just so that XP/Vista/Win7 users can continue to use yt-dlp, but most evil Google , with just one strike, will nullify all those combined efforts ; because how good would yt-dlp/youtube-dl be if it can't fetch YouTube ? Yes, the upstream original app, youtube-dl, that never had a JSinterp fallback (namely PhantomJS) to begin with, in the last months relied mainly on yt-dlp "solutions" to fix its broken JSinterp, whenever the case arose ... Given that youtube-dl caters specifically to older CPython versions (hence, older OSes capable of running said older CPython versions), its predicament is more pronounced: https://github.com/ytdl-org/youtube-dl/issues/33186 Since every open-source app/project out there seems to support almost every Linux distro (a hyperbole, perhaps, but you get the drift ), it's legacy Windows OS users, again, that will be screwed over ... So full of wrath right now... FWIW, yt-player 2b83d2e has just arrived in my neck of the woods : yt-dl -F "hS4uoPz_A00" [debug] System config: [] [debug] User config: [] [debug] Custom config: [] [debug] Command-line args: ['--ffmpeg-location', '.\\FFmpeg', '--external-downloader-args', '-v 8 -stats', '-vF', 'hS4uoPz_A00'] [debug] Encodings: locale cp1253, fs mbcs, out cp737, pref cp1253 [debug] youtube-dl version 2025.06.29 (single file build) [debug] ** This version was built from the latest master code at https://github.com/ytdl-org/youtube-dl. [debug] ** For support, visit the main site. [debug] Python 3.4.4 (CPython x86 32bit) - Windows-Vista-6.0.6003-SP2 - OpenSSL 1.0.2d 9 Jul 2015 [debug] exe versions: ffmpeg n6.1-dev-2615-N-112499-ga76b409, ffprobe n6.1-dev-2615-N-112499-ga76b409, phantomjs 2.1.1, rtmpdump 2.4 [debug] Proxy map: {} [youtube] hS4uoPz_A00: Downloading webpage [youtube] hS4uoPz_A00: Downloading TVHTML5 API JSON [youtube] hS4uoPz_A00: Downloading player 2b83d2e0-main WARNING: [youtube] Falling back to generic n function search ERROR: Unable to extract nsig function code (caused by RegexNotFoundError('Unable to extract Initial JS player n function name; please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose option and include the complete output.',)); please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose option and include the complete output. Traceback (most recent call last): File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1856, in _decrypt_nsig File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1968, in _extract_n_function_code File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1971, in _extract_n_function_code_jsi File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1948, in _extract_n_function_name File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1892, in generic_n_function_search File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\common.py", line 1093, in _search_regex youtube_dl.utils.RegexNotFoundError: Unable to extract Initial JS player n function name; please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose option and include the complete output. Traceback (most recent call last): File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1856, in _decrypt_nsig File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1968, in _extract_n_function_code File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1971, in _extract_n_function_code_jsi File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1948, in _extract_n_function_name File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1892, in generic_n_function_search File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\common.py", line 1093, in _search_regex youtube_dl.utils.RegexNotFoundError: Unable to extract Initial JS player n function name; please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose option and include the complete output. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\YoutubeDL.py", line 886, in wrapper File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\YoutubeDL.py", line 982, in __extract_info File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\common.py", line 573, in extract File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 2480, in _real_extract File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 2006, in _unthrottle_format_urls File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1833, in inner File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1825, in inner File "D:\a\ytdl-nightly\ytdl-nightly\youtube_dl\extractor\youtube.py", line 1858, in _decrypt_nsig youtube_dl.utils.ExtractorError: Unable to extract nsig function code (caused by RegexNotFoundError('Unable to extract Initial JS player n function name; please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose option and include the complete output.',)); please report this issue on https://github.com/ytdl-org/youtube-dl/issues , using the appropriate issue template. Make sure you are using the latest version; type youtube-dl -U to update. Be sure to call youtube-dl with the --verbose option and include the complete output. Commiserations... 1
nicolaasjan Posted 1 hour ago Posted 1 hour ago 9 hours ago, VistaLover said: ... But why double plus signs in the "test iOS HLS streams" block? I was a bit tired when editing that file... Fixed now. Quote Thanks for that ; has this been properly documented somewhere, or was it a "trial-and-error" discovery? Last info I had about ceasing NT 6.0 support was this: https://github.com/git-for-windows/git/releases/tag/v2.36.0.windows.1 From the Requirements page: Quote Git for Windows requires Windows 8.1 or later on i686 and x86_64 CPU architectures. The last version to support Windows 7, 8, Server 2008 R2 and Server 2012 was v2.46.2. The last version to support Windows Vista and Server 2008 was v2.37.1. The last version of Git for Windows to support Windows XP and Windows Server 2003 is v2.10.0. The diff files I provided should be placed inside the yt-dlp source folder and applied with these commands: git apply _base.py.diff git apply _video.py.diff Quote I haven't closely followed yt-dlp development ever since they dropped py3.7 support, but has PhantomJS already been dropped as a JSinterp fallback inside the yt-dlp code? I still see it in the code, but it won't be of any use for at least YouTube...
nicolaasjan Posted 40 minutes ago Posted 40 minutes ago Updated yt-dlp for Vista (OpenSSL 3.5.2) here.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now