[YouTube] 403 error even with deno
Author: H-A-M-G-E-RCreated Sep 8, 2026Updated Sep 16, 2026
Labelssite-bugtriagesite:youtube
Checklist
- I've read the NO AI / NO LLM POLICY and understand I may be blocked from the repository if it is violated
- I'm reporting that yt-dlp is broken on a supported site
- I've verified that I have updated yt-dlp to nightly or master (update instructions)
- I've checked that all provided URLs are playable in a browser with the same IP and same login details
- I've checked that all URLs and arguments with special characters are properly quoted or escaped
- I've searched known issues, the FAQ, and the bugtracker for similar issues including closed ones. DO NOT post duplicates
- I've read about sharing account credentials and I'm willing to share it if required
Region
US
Provide a description that is worded well enough to be understood
[email protected] deno and ffmpeg installed Trying to download a Z3Cubing video called "I built a Solar-Powered Rubik's Cube."
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': TruetoYoutubeDLparams instead - Copy the WHOLE output (starting with
[debug] Command-line config) and insert it below
Complete Verbose Output
./yt-dlp.exe --cookies-from-browser firefox -vU https://www.youtube.com/watch?v=0MizhtCrHQ0
[debug] Command-line config: ['--cookies-from-browser', 'firefox', '-vU', 'https://www.youtube.com/watch?v=0MizhtCrHQ0']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version [email protected] from yt-dlp/yt-dlp [594bd50c2] (win_exe)
[debug] Python 3.10.11 (CPython AMD64 64bit) - Windows-10-10.0.26200-SP0 (OpenSSL 1.1.1t 7 Feb 2023)
[debug] exe versions: ffmpeg N-126435-gf93cd72dde-20260906 (setts), ffprobe N-126435-gf93cd72dde-20260906
[debug] Optional libraries: Cryptodome-3.23.0, brotli-1.2.0, certifi-2026.07.22, curl_cffi-0.16.0, mutagen-1.48.1, requests-2.34.2, sqlite3-3.40.1, urllib3-2.7.0, websockets-16.1.1, yt_dlp_ejs-0.8.0
[debug] JS runtimes: deno-2.9.6
[debug] Proxy map: {}
Extracting cookies from firefox
[debug] Extracting cookies from: "C:\Users\burge\AppData\Roaming\Mozilla\Firefox\Profiles\\\xtlenso6.default-release\cookies.sqlite"
[debug] Firefox cookies database version: 17
Extracted 344 cookies from firefox
[debug] Request Handlers: urllib, requests, websockets, curl_cffi
[debug] Plugin directories: none
[debug] Loaded 1744 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: [email protected] from yt-dlp/yt-dlp
yt-dlp is up to date ([email protected] 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, node (unavailable), quickjs (unavailable)
[youtube] Extracting URL: https://www.youtube.com/watch?v=0MizhtCrHQ0
[youtube] 0MizhtCrHQ0: Downloading webpage
[youtube] 0MizhtCrHQ0: Downloading web embedded client config
[debug] [youtube] Forcing "main" player JS variant for player f572e43c
original url = /s/player/f572e43c/player_es6.vflset/en_US/base.js
[debug] [youtube] 0MizhtCrHQ0: Detected experiment to bind GVS PO Token to video ID for web_embedded client
[youtube] 0MizhtCrHQ0: Downloading player f572e43c-main
[youtube] 0MizhtCrHQ0: Downloading web embedded player API JSON
[debug] [youtube] 0MizhtCrHQ0: Detected a 15s ad skippable after 5s for web_embedded
[youtube] 0MizhtCrHQ0: Downloading tv downgraded player API JSON
[debug] [youtube] 0MizhtCrHQ0: tv_downgraded player response playability status: UNPLAYABLE
[debug] [youtube] 0MizhtCrHQ0: Detected a 55s ad skippable after 5s for web
[debug] [youtube] 0MizhtCrHQ0: Detected a 15s ad skippable after 5s for web
[youtube] [jsc:deno] Solving JS challenges using deno
[debug] [youtube] [jsc:deno] Using challenge solver lib script v0.8.0 (source: python package, variant: minified)
[debug] [youtube] [jsc:deno] Using challenge solver core script v0.8.0 (source: python package, variant: minified)
[debug] [youtube] [jsc:deno] Running deno: 'C:\Users\burge\.deno\bin\deno.EXE' run --ext=js --no-code-cache --no-prompt --no-remote --no-lock --node-modules-dir=none --no-config --no-npm --cached-only -
[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] 0MizhtCrHQ0: Downloading 1 format(s): 399+251-19
[debug] Invoking http downloader on "https://rr4---sn-bvvbaxivnuxqjvhj5nu-p5is.googlevideo.com/videoplayback?expire=1788847901&ei=vVKfapf0B4Hdy_sPvsqFkA0&ip=2601%3A2c3%3A897f%3A1420%3A2474%3A1bd3%3Ad230%3Ad4cf&id=o-AKyzrayQw1o__zAZb39CWN-V5jPepYpOyXnz0gU77uTR&itag=399&aitags=133%2C134%2C135%2C136%2C160%2C242%2C243%2C244%2C247%2C278%2C298%2C299%2C302%2C303%2C394%2C395%2C396%2C397%2C398%2C399&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1788826301%2C&mh=An&mm=31%2C29&mn=sn-bvvbaxivnuxqjvhj5nu-p5is%2Csn-q4fzenek&ms=au%2Crdu&mv=m&mvi=4&pl=34&rms=au%2Cau&initcwndbps=4206250&siu=1&bui=AR3QkAlVuVC8NeYORtEjgHKVaI7sZz1mlasyJMO82b2DXLHdY-KvwzYhNUtAATNWHdBQ0b9rPg&spc=I-rgIQQ3JSBLnhAVIvuit5_3lc5r1FNpyWopfCbMEwJiZnp5UpAzq8rFXizMzeO3OWZQuGohRkfc5E3FkGeULVN7UrQ&vprv=1&svpuc=1&mime=video%2Fmp4&ns=I-7TC88oIthobwlkbCmVIjIY&rqh=1&gir=yes&clen=142830826&dur=847.413&lmt=1782539150179417&mt=1788825901&fvip=5&keepalive=yes&fexp=51565116%2C52135441%2C52183203%2C52189887&c=WEB_EMBEDDED_PLAYER&sefc=1&txp=443G534&n=qwa5mBkIvFjOVg&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AE0s2JYwRAIgGCzuvvUFSecCzoD_AzH7G44tiVN-NfMR8bWBqqa77FkCICipGHFw-HAwWNMQL_Dn4cjhghDjincz-vPL3FnrKwHl&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=APaTxxMwRgIhALhh03y56Xm4O5uogEUCZE35eQbxRKxdEupHZ1T7TL33AiEA8dnkao9mnXi_Sx6lR6aLj2-r9jYSoNP4lxh2wfyvPFI%3D"
[download] Sleeping 4.00 seconds as required by the site...
ERROR: unable to download video data: HTTP Error 403: Forbidden
Traceback (most recent call last):
File "yt_dlp\YoutubeDL.py", line 3570, in process_info
File "yt_dlp\YoutubeDL.py", line 3323, in dl
File "yt_dlp\downloader\common.py", line 480, in download
File "yt_dlp\downloader\http.py", line 362, in real_download
File "yt_dlp\downloader\http.py", line 119, in establish_connection
File "yt_dlp\YoutubeDL.py", line 4304, in urlopen
File "yt_dlp\networking\common.py", line 117, in send
File "yt_dlp\networking\_helper.py", line 194, in wrapper
File "yt_dlp\networking\common.py", line 359, in send
File "yt_dlp\networking\_requests.py", line 361, in _send
yt_dlp.networking.exceptions.HTTPError: HTTP Error 403: Forbidden
Source: yt-dlp/yt-dlp