Skip to content

[youtube] SABR streaming + missing JS runtime cause "Only images available" error on restricted server #15793

Description

@undevelopper

Checklist

Region

Europe

Provide a description that is worded well enough to be understood

Region information

  • User location: Morocco
  • Server location: Europe (specific country unknown).

I downloaded the tool using
.exec curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o tools/yt-dlp
inside a WhatsApp bot chat. The ".exec" command allows me to execute system commands within the chat. The bot is hosted on a free Node.js Pterodactyl server. I cannot execute admin commands like sudo through it.

Server Information:
Linux b608c98b-5a04-4062-80a7-8ac2c8b5664f 4.15.0-22-generic #24-Ubuntu SMP Wed May 16 12:15:17 UTC 2018 x86_64 GNU/Linux

What I've tried:

Using cookies or without cookies
Installing the latest version of the tool
Restarting the server
Searching for solutions on GitHub but couldn't find anything suitable for my situation
Tried almost all solutions from GitHub or AI, none solved my problem

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

Command failed: tools/yt-dlp -vU --cookies tools/cookies.txt "https://youtu.be/zWH_9VRWn8Y?si=ncAzIF1LCrlKHj0S"
[debug] Command-line config: ['-vU', '--cookies', 'tools/cookies.txt', 'https://youtu.be/zWH_9VRWn8Y?si=ncAzIF1LCrlKHj0S']
[debug] Encodings: locale utf-8, fs utf-8, pref utf-8, out utf-8 (No ANSI), error utf-8 (No ANSI), screen utf-8 (No ANSI)
[debug] yt-dlp version stable@2026.01.31 from yt-dlp/yt-dlp [9a9a6b6fe] (zip)
[debug] Python 3.11.2 (CPython x86_64 64bit) - Linux-4.15.0-22-generic-x86_64-with-glibc2.36 (OpenSSL 3.0.18 30 Sep 2025, glibc 2.36)
[debug] exe versions: ffmpeg 5.1.8-0 (setts), ffprobe 5.1.8-0
[debug] Optional libraries: sqlite3-3.40.1, yt_dlp_ejs-0.4.0
[debug] JS runtimes: none
[debug] Proxy map: {}
[debug] Request Handlers: urllib
[debug] Plugin directories: none
[debug] Loaded 1856 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
[debug] [youtube] Found YouTube account cookies
[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)
[debug] [youtube] Forcing "main" player JS variant for player 652bbb94
        original url = /s/player/652bbb94/player_es6.vflset/en_US/base.js
[debug] [youtube] zWH_9VRWn8Y: Detected a 20s ad for web
[debug] [youtube] zWH_9VRWn8Y: Detected a 10s ad skippable after 5s for web_safari
WARNING: [youtube] zWH_9VRWn8Y: Signature solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
WARNING: [youtube] zWH_9VRWn8Y: n challenge solving failed: Some formats may be missing. Ensure you have a supported JavaScript runtime and challenge solver script distribution installed. Review any warnings presented before this message. For more details, refer to  https://github.com/yt-dlp/yt-dlp/wiki/EJS
[debug] [youtube] zWH_9VRWn8Y: Detected experiment to bind GVS PO Token to video ID for web client
[debug] [youtube] zWH_9VRWn8Y: Some web client https formats have been skipped as they are missing a URL. YouTube is forcing SABR streaming for this client. See  https://github.com/yt-dlp/yt-dlp/issues/12482  for more details
[debug] [youtube] zWH_9VRWn8Y: Some web_safari client https formats have been skipped as they are missing a URL. YouTube is forcing SABR streaming for this client. See  https://github.com/yt-dlp/yt-dlp/issues/12482  for more details
WARNING: Only images are available for download. use --list-formats to see them
[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
[debug] Default format spec: bestvideo*+bestaudio/best
ERROR: [youtube] zWH_9VRWn8Y: Requested format is not available. Use --list-formats for a list of available formats
Traceback (most recent call last):
  File "/home/container/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1698, in wrapper
    return func(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1854, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 1913, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/container/tools/yt-dlp/yt_dlp/YoutubeDL.py", line 3058, in process_video_result
    raise ExtractorError(
yt_dlp.utils.ExtractorError: [youtube] zWH_9VRWn8Y: Requested format is not available. Use --list-formats for a list of available formats

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions