j7n Posted February 22 Author Posted February 22 Oh, it's different again. Probably not. I only saw the error in about 1 out of 20 downloads before. Downloading android vr player API JSON
VistaLover Posted February 22 Posted February 22 (edited) On 2/21/2026 at 2:02 PM, j7n said: [youtube] cnX5zJ_qGz0: Downloading ios downgraded player API JSON WARNING: [youtube] YouTube said: ERROR - Precondition check failed. WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (1/3)... I saw that "WARNING" only once (but I don't fetch YT that often ) and put it down to a transient "glitch" on YT's side; BTW, it was specific to the "ios-downgraded" YT player client (see below) ... On 2/22/2026 at 2:27 PM, j7n said: Oh, it's different again. The "ios-downgraded" YT player client (m3u8 formats) had a very short lifespan , as it was removed in https://github.com/yt-dlp/yt-dlp/commit/c3674575faa23b20e97be8b73f68b9f7b4cea9ab (https://github.com/yt-dlp/yt-dlp/pull/15786) as a result of https://github.com/yt-dlp/yt-dlp/issues/15782 The sample YT clip on that issue was geo-blocked (Vietnam-only), so I couldn't test/replicate myself (and I do wonder whether the devs could, either); but the firm conviction (by the devs) that the IOS client is "unreliable" led to "ios-downgraded" being unceremoniously axed (and the issue was later locked, due to OT chit-chat) ... The last official master build with that client enabled was 2026.01.31.224855; the last nicolaasjan build with that client enabled was 2026.01.30.064627; the fact your log mentions "ios downgraded player" means you're on one of the "older" builds... On 2/22/2026 at 2:27 PM, j7n said: Downloading android vr player API JSON The removal of the "ios_downgraded player" means that currently, without enabling a JS runtime (and without a YT account), ONLY the "android_vr" formats are available (no m3u8, though); with a JS runtime enabled, you'll also get the few WEB-S (web_safari) m3u8 formats offered... FWIW, for me (in my part of the world), the "ios_downgraded" yt-client formats (ALL m3u8) still work as I write this; so, I try to locally revert c367457 and make use of them: yt-dlp -vF "cnX5zJ_qGz0" => [debug] Command-line config: ['--ffmpeg-location', 'FFmpeg', '--downloader-args', 'ffmpeg_i:-hide_banner -v 8 -stats', '-vF', 'cnX5zJ_qGz0'] [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 master@2026.02.21.201720 from yt-dlp/yt-dlp-master-builds [646bb31f3] (zip) [debug] Python 3.11.14 (CPython x86 32bit) - Windows-Vista-6.0.6003-SP2 (OpenSSL 3.6.1 27 Jan 2026) [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.2.0, certifi-2026.01.04, mutagen-1.47.0, requests-2.32.5, sqlite3-3.51.2, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.5.0 [debug] JS runtimes: none [debug] Proxy map: {} [debug] Request Handlers: urllib, requests, websockets [debug] Plugin directories: none [debug] Loaded 1864 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: cnX5zJ_qGz0 [youtube] cnX5zJ_qGz0: Downloading webpage WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add --js-runtimes RUNTIME[:PATH] to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See https://github.com/yt-dlp/yt-dlp/wiki/EJS for details on installing one [debug] [youtube] Forcing "tv" player JS variant for player 4c5cf06a original url = /s/player/4c5cf06a/player_es6.vflset/en_US/base.js [youtube] cnX5zJ_qGz0: Downloading android vr player API JSON [youtube] cnX5zJ_qGz0: Downloading ios downgraded player API JSON [debug] [youtube] cnX5zJ_qGz0: ios_downgraded client https formats require a GVS PO Token which was not provided. They will be skipped as they may yield HTTP Error 403. You can manually pass a GVS PO Token for this client with --extractor-args "youtube:po_token=ios_downgraded.gvs+XXX". For more information, refer to https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide [youtube] cnX5zJ_qGz0: 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] Available formats for cnX5zJ_qGz0: ID EXT RESOLUTION FPS CH | FILESIZE TBR PROTO | VCODEC VBR ACODEC ABR ASR MORE INFO ------------------------------------------------------------------------------------------------------------------------------------ sb3 mhtml 48x27 0 | mhtml | images storyboard sb2 mhtml 80x45 0 | mhtml | images storyboard sb1 mhtml 160x90 0 | mhtml | images storyboard sb0 mhtml 320x180 0 | mhtml | images storyboard 233 mp4 audio only | m3u8 | audio only unknown [en] Untested, Default, low, IOS-D 234 mp4 audio only | m3u8 | audio only unknown [en] Untested, Default, high, IOS-D 139 m4a audio only 2 | 6.36MiB 49k https | audio only mp4a.40.5 49k 22k [en] low, ANDR-V, m4a_dash 249 webm audio only 2 | 6.56MiB 50k https | audio only opus 50k 48k [en] low, ANDR-V, webm_dash 140 m4a audio only 2 | 16.89MiB 129k https | audio only mp4a.40.2 129k 44k [en] medium, ANDR-V, m4a_dash 251 webm audio only 2 | 15.25MiB 117k https | audio only opus 117k 48k [en] medium, ANDR-V, webm_dash 602 mp4 256x144 12 | ~ 11.26MiB 86k m3u8 | vp09.00.10.08 86k video only Untested, IOS-D 269 mp4 256x144 24 | ~ 22.13MiB 170k m3u8 | avc1.4D400C 170k video only Untested, IOS-D 160 mp4 256x144 24 | 9.00MiB 69k https | avc1.4d400c 69k video only 144p, ANDR-V, mp4_dash 603 mp4 256x144 24 | ~ 16.84MiB 129k m3u8 | vp09.00.11.08 129k video only Untested, IOS-D 278 webm 256x144 24 | 8.15MiB 63k https | vp9 63k video only 144p, ANDR-V, webm_dash 394 mp4 256x144 24 | 6.96MiB 53k https | av01.0.00M.08 53k video only 144p, ANDR-V, mp4_dash 229 mp4 426x240 24 | ~ 40.49MiB 310k m3u8 | avc1.4D4015 310k video only Untested, IOS-D 133 mp4 426x240 24 | 19.12MiB 147k https | avc1.4d4015 147k video only 240p, ANDR-V, mp4_dash 604 mp4 426x240 24 | ~ 28.77MiB 221k m3u8 | vp09.00.20.08 221k video only Untested, IOS-D 242 webm 426x240 24 | 17.28MiB 132k https | vp9 132k video only 240p, ANDR-V, webm_dash 395 mp4 426x240 24 | 16.42MiB 126k https | av01.0.00M.08 126k video only 240p, ANDR-V, mp4_dash 230 mp4 640x360 24 | ~ 95.31MiB 731k m3u8 | avc1.4D401E 731k video only Untested, IOS-D 134 mp4 640x360 24 | 36.77MiB 282k https | avc1.4d401e 282k video only 360p, ANDR-V, mp4_dash 18 mp4 640x360 24 2 | 78.17MiB 599k https | avc1.42001E mp4a.40.2 44k [en] 360p, ANDR-V 605 mp4 640x360 24 | ~ 68.00MiB 521k m3u8 | vp09.00.21.08 521k video only Untested, IOS-D 243 webm 640x360 24 | 37.60MiB 288k https | vp9 288k video only 360p, ANDR-V, webm_dash 396 mp4 640x360 24 | 29.57MiB 227k https | av01.0.01M.08 227k video only 360p, ANDR-V, mp4_dash 231 mp4 854x480 24 | ~136.31MiB 1045k m3u8 | avc1.4D401E 1045k video only Untested, IOS-D 135 mp4 854x480 24 | 69.02MiB 529k https | avc1.4d401e 529k video only 480p, ANDR-V, mp4_dash 606 mp4 854x480 24 | ~ 99.78MiB 765k m3u8 | vp09.00.30.08 765k video only Untested, IOS-D 244 webm 854x480 24 | 57.32MiB 440k https | vp9 440k video only 480p, ANDR-V, webm_dash 397 mp4 854x480 24 | 51.08MiB 392k https | av01.0.04M.08 392k video only 480p, ANDR-V, mp4_dash 232 mp4 1280x720 24 | ~185.82MiB 1425k m3u8 | avc1.4D401F 1425k video only Untested, IOS-D 136 mp4 1280x720 24 | 127.01MiB 974k https | avc1.4d401f 974k video only 720p, ANDR-V, mp4_dash 609 mp4 1280x720 24 | ~181.16MiB 1389k m3u8 | vp09.00.31.08 1389k video only Untested, IOS-D 247 webm 1280x720 24 | 106.76MiB 819k https | vp9 819k video only 720p, ANDR-V, webm_dash 398 mp4 1280x720 24 | 89.03MiB 683k https | av01.0.05M.08 683k video only 720p, ANDR-V, mp4_dash 270 mp4 1920x1080 24 | ~611.50MiB 4689k m3u8 | avc1.640028 4689k video only Untested, IOS-D 137 mp4 1920x1080 24 | 307.65MiB 2359k https | avc1.640028 2359k video only 1080p, ANDR-V, mp4_dash 614 mp4 1920x1080 24 | ~304.82MiB 2337k m3u8 | vp09.00.40.08 2337k video only Untested, IOS-D 248 webm 1920x1080 24 | 175.33MiB 1344k https | vp9 1344k video only 1080p, ANDR-V, webm_dash 399 mp4 1920x1080 24 | 161.10MiB 1235k https | av01.0.08M.08 1235k video only 1080p, ANDR-V, mp4_dash 620 mp4 2560x1440 24 | ~ 1.20GiB 9395k m3u8 | vp09.00.50.08 9395k video only Untested, IOS-D 271 webm 2560x1440 24 | 613.49MiB 4704k https | vp9 4704k video only 1440p, ANDR-V, webm_dash 400 mp4 2560x1440 24 | 513.02MiB 3934k https | av01.0.12M.08 3934k video only 1440p, ANDR-V, mp4_dash 625 mp4 3840x2160 24 | ~ 2.39GiB 18784k m3u8 | vp09.00.50.08 18784k video only Untested, IOS-D 313 webm 3840x2160 24 | 1.56GiB 12253k https | vp9 12253k video only 2160p, ANDR-V, webm_dash 401 mp4 3840x2160 24 | 948.58MiB 7273k https | av01.0.12M.08 7273k video only 2160p, ANDR-V, mp4_dash and then: yt-dlp -f 232+234 -N 2 "cnX5zJ_qGz0" => [youtube] Extracting URL: cnX5zJ_qGz0 [youtube] cnX5zJ_qGz0: Downloading webpage WARNING: [youtube] No supported JavaScript runtime could be found. Only deno is enabled by default; to use another runtime add --js-runtimes RUNTIME[:PATH] to your command/config. YouTube extraction without a JS runtime has been deprecated, and some formats may be missing. See https://github.com/yt-dlp/yt-dlp/wiki/EJS for details on installing one [youtube] cnX5zJ_qGz0: Downloading android vr player API JSON [youtube] cnX5zJ_qGz0: Downloading ios downgraded player API JSON [youtube] cnX5zJ_qGz0: Downloading m3u8 information [info] Testing format 232 [info] Testing format 234 [info] cnX5zJ_qGz0: Downloading 1 format(s): 232+234 [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 189 [download] Destination: Your RAM Is Fake. The Moon Broke Timezones. And Your Compiler Is Guessing. [cnX5zJ_qGz0].f232.mp4 [download] 100% of 132.64MiB in 00:03:59 at 567.14KiB/s [hlsnative] Downloading m3u8 manifest [hlsnative] Total fragments: 189 [download] Destination: Your RAM Is Fake. The Moon Broke Timezones. And Your Compiler Is Guessing. [cnX5zJ_qGz0].f234.mp4 [download] 100% of 17.02MiB in 00:00:44 at 393.03KiB/s [Merger] Merging formats into "Your RAM Is Fake. The Moon Broke Timezones. And Your Compiler Is Guessing. [cnX5zJ_qGz0].mp4" Deleting original file Your RAM Is Fake. The Moon Broke Timezones. And Your Compiler Is Guessing. [cnX5zJ_qGz0].f234.mp4 (pass -k to keep) Deleting original file Your RAM Is Fake. The Moon Broke Timezones. And Your Compiler Is Guessing. [cnX5zJ_qGz0].f232.mp4 (pass -k to keep) Edited February 23 by VistaLover 2
j7n Posted February 23 Author Posted February 23 I kept the previous version on Ytdlp around so that I can revert to it if Android VR stops working. So far I see no difference in their workings. Both give me h.264/aac.
autodidact Posted February 28 Posted February 28 (edited) FFmpeg update. XP: shared static libfdk-aac VISTAx86: shared static libfdk-aac Edited March 29 by autodidact Update links 4
nicolaasjan Posted April 8 Posted April 8 @autodidact There is again a security update for OpenSSL. Could you update your OpenSSL 64-bit dll's to 3.6.2? 🙏
autodidact Posted April 8 Posted April 8 2 hours ago, nicolaasjan said: @autodidact There is again a security update for OpenSSL. Could you update your OpenSSL 64-bit dll's to 3.6.2? 🙏 OpenSSL 3.6.2 1
VistaLover Posted April 8 Posted April 8 4 hours ago, nicolaasjan said: There is again a security update for OpenSSL. Quote The most severe CVE fixed in this release is Medium. ...
nicolaasjan Posted April 9 Posted April 9 Thanks for your effort @autodidact And yes, I know this update is not as important as the previous one. Confirmed working with the latest Python 3.14.4 from adang1345 (at least yt-dlp recognises it): [debug] Command-line config: ['-v'] [debug] User config "C:\Users\user\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.04.08.143024 (win7_exe*) [debug] Python 3.14.4 (CPython AMD64 64bit) - Windows-7-6.1.7601-SP1 (OpenSSL 3.6.2 7 Apr 2026) [debug] exe versions: ffmpeg git-2026-03-29-368f581-ffmpeg-windows-build-helpers (fdk,setts), ffprobe git-2026-03-29-368f581-ffmpeg-windows-build-helpers, phantomjs 2.5.0 [debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.02.25, curl_cffi-0.15.0, mutagen-1.47.0, requests-2.33.1, sqlite3-3.50.4, urllib3-2.6.3, websockets-16.0, yt_dlp_ejs-0.8.0 [debug] JS runtimes: node-20.19.2 [debug] Proxy map: {} [debug] Request Handlers: urllib, requests, websockets, curl_cffi [debug] Plugin directories: C:\Users\user\AppData\Roaming\yt-dlp\plugins\bgutil-ytdlp-pot-provider\yt_dlp_plugins [debug] Loaded 1864 extractors Removing cache dir C:\Users\user/.cache\yt-dlp .. yt-dlp_win7.zip (64-bit) @johk, it is now built with curl_cffi-0.15.0, so if this still doesn't work with your configuration, please use the 32-bit build. 2
johk Posted April 10 Posted April 10 (edited) Don't worry, as I knew this was going to happen soon or later, I had to "resign" and I spent time on testing another version and alternate software. But thanks to give this extra time to read, test, etc. So far so good, tested this new yt-dlp build, and works. But it is a shame because, as every software nowadays (despite the version I'm using now is still old, but isn't less true that the newer, in regard to the OPT DNS extension, hasn't evolved since) it lacks features the original software had and quite a few more issues. Newer doesn't mean better and almost all at MSFN, or these threads, more or less, agreed with this statement, and that is the sad story :/ EDIT: still, I don't find the need for this tool to require it. It doesn't add anything special, less as the behavior described earlier. Nonsense. Edited April 10 by johk 2
K4sum1 Posted May 1 Posted May 1 On 9/29/2025 at 1:37 PM, autodidact said: Thank you @nicolaasjan for your yt-dlp builds. I have made a Windows XP compatible build of FFmpeg that targets a Pentium 4. I relied heavily on rdp and @Reino build scripts so thanks also to them. ffmpeg-8.1-630-635cb4543f-win32-static-xpmod-P4.7z libfdk-aac-2.0.3-158-d8e6b1a-win32-xpmod-P4.7z I'm curious how you worked around w32pthreads.h? It calls for multiple Vista+ functions like SRW locks and such, but I find no mention of the file in any patch.
reboot12 Posted May 1 Posted May 1 (edited) I have been using the old version of ffmpeg.exe 3.4.1 (2017) for a long time with current versions of youtube-dl, e.g. to download and combine separate audio and video files: youtube-dl -f 136+140 link and this work OK. What are you using the newer version of ffmpeg for e.g. from http://blog.k-tai-douga.com/ ? Edited May 1 by reboot12
j7n Posted May 1 Author Posted May 1 I guess updating ffmpeg is worthwhile if you have multiple uses for it. For example, foo_input_ffmpeg for Foobar2000 to play odd formats, E-AC-3 en/de-coder, or whatever. I don't update it unless something doesn't work, and the new version promises to work better. Ffmpeg is getting crazy big, and relatively slow to repetedly open for short tracks. 1
reboot12 Posted May 2 Posted May 2 @j7n I no use Foobar2000 for playback audio/video I use VLC ffmpeg current version is about ~100 MB The old version of ffmpeg is completely sufficient for me.
j7n Posted May 2 Author Posted May 2 Maybe someone could make a ffmpeg build with the most heavy parts cut out. Audio players can selectively include only what they need up a few megabytes. I suspect that the size is mostly the latest 3rd party video codecs.
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