Skip to content

Signature solving failed #15556

Description

@jobsfan

Checklist

Region

HongKong

Provide a description that is worded well enough to be understood

yt-dlp --cookies-from-browser chrome "https://www.youtube.com/shorts/18rJogG1thE"
using the above command in terminal. and got the following

Extracting cookies from chrome
Extracted 3284 cookies from chrome
[youtube] Extracting URL: https://www.youtube.com/shorts/18rJogG1thE
[youtube] 18rJogG1thE: Downloading webpage
[youtube] 18rJogG1thE: Downloading tv downgraded player API JSON
[youtube] 18rJogG1thE: Downloading web safari player API JSON
WARNING: [youtube] 18rJogG1thE: 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] 18rJogG1thE: 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
[youtube] 18rJogG1thE: Downloading m3u8 information
[info] 18rJogG1thE: Downloading 1 format(s): 301
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 5
[download] Destination: Timeless x Cars | The Weeknd | ''Ever since i was a kid , i been legit" #theweeknd #music [18rJogG1thE].mp4
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (1/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (2/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (3/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (4/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (5/10)...

....
[download] fragment not found; Skipping fragment 5 ...
ERROR: The downloaded file is empty

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

yt-dlp -vU --proxy socks5://127.0.0.1:9191 --cookies-from-browser chrome "https://www.youtube.com/shorts/18rJogG1thE"


[debug] Command-line config: ['-vU', '--proxy', 'socks5://127.0.0.1:9191', '--cookies-from-browser', 'chrome', 'https://www.youtube.com/shorts/18rJogG1thE']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2025.12.08 from yt-dlp/yt-dlp [7a52ff29d] (pip)
[debug] Python 3.10.18 (CPython x86_64 64bit) - Linux-6.14.0-37-generic-x86_64-with-glibc2.39 (OpenSSL 3.5.2 5 Aug 2025, glibc 2.39)
[debug] exe versions: ffmpeg 6.1.1 (setts), ffprobe 6.1.1
[debug] Optional libraries: Cryptodome-3.23.0, certifi-2025.11.12, requests-2.32.5, secretstorage-3.4.0, sqlite3-3.50.4, urllib3-2.6.2
[debug] JS runtimes: none
[debug] Proxy map: {'all': 'socks5://127.0.0.1:9191'}
Extracting cookies from chrome
[debug] Extracting cookies from: "/home/myComputer/.config/google-chrome/Default/Cookies"
[Cookies] Loading cookie      0/  3548[debug] detected desktop environment: GNOME
[debug] Chosen keyring: GNOMEKEYRING
Extracted 3285 cookies from chrome
[debug] cookie version breakdown: {'v10': 0, 'v11': 3548, 'other': 0, 'unencrypted': 0}
[debug] Request Handlers: urllib, requests
[debug] Plugin directories: none
[debug] Loaded 1854 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2025.12.08 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2025.12.08 from yt-dlp/yt-dlp)
[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)
[youtube] Extracting URL: https://www.youtube.com/shorts/18rJogG1thE
[youtube] 18rJogG1thE: Downloading webpage
[debug] [youtube] Forcing "main" player JS variant for player b75a8e80
        original url = /s/player/b75a8e80/player_es6.vflset/en_US/base.js
[youtube] 18rJogG1thE: Downloading tv downgraded player API JSON
[youtube] 18rJogG1thE: Downloading web safari player API JSON
WARNING: [youtube] 18rJogG1thE: 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] 18rJogG1thE: 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
[youtube] 18rJogG1thE: 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
[debug] Default format spec: bestvideo*+bestaudio/best
[info] 18rJogG1thE: Downloading 1 format(s): 301
[debug] Invoking hlsnative downloader on "<manifest url omitted>/index.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 5
[download] Destination: Timeless x Cars | The Weeknd | ''Ever since i was a kid , i been legit" #theweeknd #music [18rJogG1thE].mp4
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (1/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (2/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (3/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (4/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (5/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (6/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (7/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (8/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (9/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 1 (10/10)...
[download] fragment not found; Skipping fragment 1 ...



Signature and n-challenge solving fails when downloading YouTube Shorts.

Environment has no available JS runtime (node/deno/bun/quickjs).
As a result, format extraction succeeds but HLS fragments return 403 Forbidden.

This happens even with valid cookies and proxy enabled.

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