Skip to content

[youtube] The android_vr player_client has become erratic, often returning ONLY -f=18 #16150

Description

@Vangelis66

Checklist

Region

Southern Europe

Provide a description that is worded well enough to be understood

I have started noticing this erratic behaviour since yesterday, March 5th, 2026; my region has probably begun being the target of yet another Youtube A/B test and as a result the ANDR-V youtube player_client has started "malfunctioning", often times yielding only the 18 formatID (360p25 pre-muxed file, served over HTTPS) ; this is still quite random; retrying the same command will, more often than not, produce the whole range of available ANDR-V formats, so this is not a fatal issue yet when attempting to manually download a single YT clip, but automated scripts are highly likely to break as a result of this issue...

Since the ANDR-V client doesn't require n/sig decryption (that I know of) and it doesn't work at all with made-for-kids IDs or when passing logged-in YT cookies (FWIW, I don't have an account with them), enabling a JS runtime (quickjs in my case) isn't a factor that can change the outcome of the available ANDR-V formats; the use of a JS runtime here, "anonymously", will still produce the range of the WEB-S (inferior) formats...

When only -f=18 is returned, the WARNING generated reads like below:

[youtube] CDJsj-WiL_Y: Downloading android vr player API JSON
WARNING: [youtube] CDJsj-WiL_Y: Some android_vr client https formats have been skipped as they are missing a URL. YouTube may have enabled the SABR-only streaming experiment for the current session. See  https://github.com/yt-dlp/yt-dlp/issues/12482  for more details

Provide verbose output that clearly demonstrates the problem

  • Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
  • If using API, add 'verbose': True to YoutubeDL params instead
  • Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output

Invocation where the issue manifests itself (occurs in a random fashion):

[debug] Command-line config: ['--ffmpeg-location', 'FFmpeg', '--downloader-args', 'ffmpeg_i:-hide_banner -v 8 -stats', '-vUF', 'CDJsj-WiL_Y']
[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.03.03.162040 from yt-dlp/yt-dlp-master-builds [2ecc4c3bc] (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.02.25, 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] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-master-builds/releases/latest
Latest version: master@2026.03.03.162040 from yt-dlp/yt-dlp-master-builds
yt-dlp is up to date (master@2026.03.03.162040 from yt-dlp/yt-dlp-master-builds)
[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: CDJsj-WiL_Y
[youtube] CDJsj-WiL_Y: 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 player 9f4cc5e4 in place of player 6c5cb4f4
        Forcing "tv" player JS variant for player 9f4cc5e4
        original url = /s/player/6c5cb4f4/player_es6.vflset/en_US/base.js
[youtube] CDJsj-WiL_Y: Downloading android vr player API JSON
WARNING: [youtube] CDJsj-WiL_Y: Some android_vr client https formats have been skipped as they are missing a URL. YouTube may have enabled the SABR-only streaming experiment for the current session. See  https://github.com/yt-dlp/yt-dlp/issues/12482  for more details
[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 CDJsj-WiL_Y:
ID  EXT   RESOLUTION FPS CH |   FILESIZE  TBR PROTO | VCODEC      ACODEC    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
18  mp4   640x360     25  2 |  101.04MiB 385k https | avc1.42001E mp4a.40.2 22k [en] 360p, ANDR-V

Successful invocation:

[debug] Command-line config: ['--ffmpeg-location', 'FFmpeg', '--downloader-args', 'ffmpeg_i:-hide_banner -v 8 -stats', '-vUF', 'CDJsj-WiL_Y']
[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.03.03.162040 from yt-dlp/yt-dlp-master-builds [2ecc4c3bc] (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.02.25, 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] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-master-builds/releases/latest
Latest version: master@2026.03.03.162040 from yt-dlp/yt-dlp-master-builds
yt-dlp is up to date (master@2026.03.03.162040 from yt-dlp/yt-dlp-master-builds)
[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: CDJsj-WiL_Y
[youtube] CDJsj-WiL_Y: 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 player 9f4cc5e4 in place of player edc3ba07
        Forcing "tv" player JS variant for player 9f4cc5e4
        original url = /s/player/edc3ba07/player_es6.vflset/en_US/base.js
[youtube] CDJsj-WiL_Y: Downloading android vr player API JSON
[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 CDJsj-WiL_Y:
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
139 m4a   audio only      2 |   12.81MiB    49k https | audio only           mp4a.40.5   49k 22k [en] low, ANDR-V, m4a_dash
249 webm  audio only      2 |   13.25MiB    50k https | audio only           opus        50k 48k [en] low, ANDR-V, webm_dash
140 m4a   audio only      2 |   33.99MiB   129k https | audio only           mp4a.40.2  129k 44k [en] medium, ANDR-V, m4a_dash
251 webm  audio only      2 |   33.97MiB   129k https | audio only           opus       129k 48k [en] medium, ANDR-V, webm_dash
160 mp4   256x144     25    |   20.62MiB    79k https | avc1.4d400c      79k video only          144p, ANDR-V, mp4_dash
278 webm  256x144     25    |   26.49MiB   101k https | vp9             101k video only          144p, ANDR-V, webm_dash
394 mp4   256x144     25    |   15.87MiB    60k https | av01.0.00M.08    60k video only          144p, ANDR-V, mp4_dash
133 mp4   426x240     25    |   45.14MiB   172k https | avc1.4d4015     172k video only          240p, ANDR-V, mp4_dash
242 webm  426x240     25    |   43.56MiB   166k https | vp9             166k video only          240p, ANDR-V, webm_dash
395 mp4   426x240     25    |   30.01MiB   114k https | av01.0.00M.08   114k video only          240p, ANDR-V, mp4_dash
134 mp4   640x360     25    |   88.49MiB   337k https | avc1.4d401e     337k video only          360p, ANDR-V, mp4_dash
18  mp4   640x360     25  2 |  101.04MiB   385k https | avc1.42001E          mp4a.40.2       22k [en] 360p, ANDR-V
243 webm  640x360     25    |   79.01MiB   301k https | vp9             301k video only          360p, ANDR-V, webm_dash
396 mp4   640x360     25    |   56.57MiB   215k https | av01.0.01M.08   215k video only          360p, ANDR-V, mp4_dash
135 mp4   854x480     25    |  179.94MiB   685k https | avc1.4d401e     685k video only          480p, ANDR-V, mp4_dash
244 webm  854x480     25    |  132.75MiB   506k https | vp9             506k video only          480p, ANDR-V, webm_dash
397 mp4   854x480     25    |   90.22MiB   344k https | av01.0.04M.08   344k video only          480p, ANDR-V, mp4_dash
298 mp4   1280x720    50    |  434.12MiB  1654k https | avc1.640020    1654k video only          720p50, ANDR-V, mp4_dash
302 webm  1280x720    50    |  337.95MiB  1287k https | vp9            1287k video only          720p50, ANDR-V, webm_dash
398 mp4   1280x720    50    |  183.81MiB   700k https | av01.0.08M.08   700k video only          720p50, ANDR-V, mp4_dash
299 mp4   1920x1080   50    |  797.71MiB  3039k https | avc1.64002a    3039k video only          1080p50, ANDR-V, mp4_dash
303 webm  1920x1080   50    |  624.99MiB  2381k https | vp9            2381k video only          1080p50, ANDR-V, webm_dash
399 mp4   1920x1080   50    |  327.66MiB  1248k https | av01.0.09M.08  1248k video only          1080p50, ANDR-V, mp4_dash
308 webm  2560x1440   50    |    1.88GiB  7347k https | vp9            7347k video only          1440p50, ANDR-V, webm_dash
400 mp4   2560x1440   50    |  827.54MiB  3153k https | av01.0.12M.08  3153k video only          1440p50, ANDR-V, mp4_dash
315 webm  3840x2160   50    |    4.76GiB 18569k https | vp9           18569k video only          2160p50, ANDR-V, webm_dash
401 mp4   3840x2160   50    |    1.87GiB  7282k https | av01.0.13M.08  7282k video only          2160p50, ANDR-V, mp4_dash

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions