yt-dlp: 2024.03.10 YouTube: ERROR: unable to download video data: HTTP Error 403: Forbidden

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

  • I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

Provide a description that is worded well enough to be understood

$ yt-dlp https://www.youtube.com/watch?v=nJ6A6GC_ki4
[youtube] Extracting URL: https://www.youtube.com/watch?v=nJ6A6GC_ki4
[youtube] nJ6A6GC_ki4: Downloading webpage
[youtube] nJ6A6GC_ki4: Downloading ios player API JSON
[youtube] nJ6A6GC_ki4: Downloading android player API JSON
[youtube] nJ6A6GC_ki4: Downloading m3u8 information
[info] nJ6A6GC_ki4: Downloading 1 format(s): 244+251
ERROR: unable to download video data: HTTP Error 403: Forbidden

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 https://www.youtube.com/watch?v=nJ6A6GC_ki4
[debug] Command-line config: ['-vU', 'https://www.youtube.com/watch?v=nJ6A6GC_ki4']
[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@2023.07.06 [b532a3481]
[debug] Lazy loading extractors is disabled
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-5.15.0-73-generic-x86_64-with-glibc2.35 (OpenSSL 3.0.2 15 Mar 2022, glibc 2.35)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, secretstorage-3.3.1, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1863 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.07.06, Current version: stable@2023.07.06
yt-dlp is up to date (stable@2023.07.06)
[youtube] Extracting URL: https://www.youtube.com/watch?v=nJ6A6GC_ki4
[youtube] nJ6A6GC_ki4: Downloading webpage
[youtube] nJ6A6GC_ki4: Downloading ios player API JSON
[youtube] nJ6A6GC_ki4: Downloading android player API JSON
[youtube] nJ6A6GC_ki4: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] nJ6A6GC_ki4: Downloading 1 format(s): 244+251
[debug] Invoking http downloader on "https://rr2---sn-5hne6n6e.googlevideo.com/videoplayback?expire=1692195317&ei=lYXcZNyWCpuK6dsPiJGg-AI&ip=80.89.235.70&id=o-AECIz8FuVZ__W_EfhNGd0Ur8IEVQtwyI7kypC6j4Tr7O&itag=244&source=youtube&requiressl=yes&mh=MH&mm=31%2C26&mn=sn-5hne6n6e%2Csn-4g5edn6r&ms=au%2Conr&mv=u&mvi=2&pl=24&gcr=nl&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=12357755&dur=246.346&lmt=1575098546134993&mt=1692172857&fvip=2&keepalive=yes&fexp=24007246%2C24363392&c=IOS&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgO-WT4WtR7GwGTUM9uiMGZbPK9XOvrUr1wGYyy0bBvIoCIFwxrI0FPp9Fag6KGjJZQMnC66QMC0qUYMHWWznZTmKv&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AG3C_xAwRQIhAKMiNOfsIDWyn-cD4aUaPHX_6iGLhIK4Wqidhh4bUtgZAiB_pHuBsf3atSGZKKBmcsjKNN4hrCwYMEIakqlMB-PtUQ%3D%3D"
ERROR: unable to download video data: HTTP Error 403: Forbidden
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/networking/_urllib.py", line 438, in _send
    res = opener.open(urllib_req, timeout=float(request.extensions.get('timeout') or self.timeout))
  File "/usr/lib/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/usr/lib/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.10/urllib/request.py", line 563, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.10/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 4059, in urlopen
    return self._request_director.send(req)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/networking/common.py", line 114, in send
    response = handler.send(request)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/networking/_helper.py", line 203, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/networking/common.py", line 325, in send
    return self._send(request)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/networking/_urllib.py", line 443, in _send
    raise HTTPError(UrllibResponseAdapter(e.fp), redirect_loop='redirect error' in str(e)) from e
yt_dlp.networking.exceptions.HTTPError: HTTP Error 403: Forbidden

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3377, in process_info
    partial_success, real_download = self.dl(fname, new_info)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3116, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/common.py", line 455, in download
    ret = self.real_download(filename, info_dict)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/http.py", line 364, in real_download
    establish_connection()
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/http.py", line 120, in establish_connection
    ctx.data = self.ydl.urlopen(request)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 4078, in urlopen
    raise _CompatHTTPError(e) from e
yt_dlp.networking.exceptions._CompatHTTPError: HTTP Error 403: Forbidden

About this issue

  • Original URL
  • State: open
  • Created 10 months ago
  • Reactions: 27
  • Comments: 57 (11 by maintainers)

Most upvoted comments

Youtube has been blocking data center IPs since May – your first Ubuntu 20.04.5 LTS x86_64 log is an example of #7143

And as of ~2 days ago, Youtube has started with a new kind of IP blocking that only applies to the videoplayback endpoint (format/stream URLs), which results in the 403 errors in your other logs. This IP blocking is impacting Piped as well, see https://github.com/TeamPiped/Piped/issues/2809

Reminder that this issue is for version 2023.07.06+.

If you are on anything older, please update - you are running into a different issue that was already fixed in the previous release ahead of YouTube rolling out a change.

If someone can reproduce this issue on 2023.07.06+, please post a verbose log with --check-formats so we can confirm the type of issue this is. already got them. Dupes not needed

me

Additional info: the issue in no-more. I guess the bans are just temporarily made by youtube. I also read a comment of someone who had a temporary ban too

https://github.com/LuanRT/YouTube.js Maybe use this API to download videos

I’ve been experiencing this issue and --force-ipv4 works for me. This seems indeed a block from the Youtube side. To be clear, I have IPv6 configured properly.

[debug] Command-line config: ['-f', '22', '-6', '-v', 'https://www.youtube.com/watch?v=dQw4w9WgXcQ']
[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@2023.07.06 [b532a3481] (pip)
[debug] Python 3.9.2 (CPython aarch64 64bit) - Linux-6.1.21-v8+-aarch64-with-glibc2.31 (OpenSSL 1.1.1n  15 Mar 2022, glibc 2.31)
[debug] exe versions: ffmpeg 4.3.6-0, ffprobe 4.3.6-0
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2020.06.20, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1855 extractors
[youtube] Extracting URL: https://www.youtube.com/watch?v=dQw4w9WgXcQ
[youtube] dQw4w9WgXcQ: Downloading webpage
[youtube] dQw4w9WgXcQ: Downloading ios player API JSON
[youtube] dQw4w9WgXcQ: Downloading android player API JSON
[youtube] dQw4w9WgXcQ: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[info] dQw4w9WgXcQ: Downloading 1 format(s): 22
[debug] Invoking http downloader on "https://rr1---sn-cn3tc-ac5l.googlevideo.com/videoplayback?expire=1692729211&ei=G6vkZPK1ON2nhcIPtZmwmAs&ip=2a02%3Ac7c%3A6c23%3Aeb00%3A7ae5%3A116d%3Ad8ef%3A3a1c&id=o-AEUuCp7aOlsINX29310lxe4pg1GWpMj6EzInyHzFtYnH&itag=22&source=youtube&requiressl=yes&mh=7c&mm=31%2C29&mn=sn-cn3tc-ac5l%2Csn-aigl6nze&ms=au%2Crdu&mv=m&mvi=1&pl=39&initcwndbps=2188750&spc=UWF9f8bE4YX__7eUEgWyuQ117WObxVE&vprv=1&svpuc=1&mime=video%2Fmp4&cnr=14&ratebypass=yes&dur=212.091&lmt=1691804638167900&mt=1692707440&fvip=2&fexp=24007246%2C51000022&c=ANDROID&txp=4532434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Ccnr%2Cratebypass%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAMYbUpPW2giKyhfBwHwbsg0ByNqL1lLyJoZ8FZPCOLkFAiAD2ew4LWxQxx860wh_1igWaO-4Fa_6PivNomyU3SIN3g%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgRFSSMnudEmYc6PtBIQzXdqBesrXHYo6BuGo-WCojkYECIBajBF5BpXKfQqukP95rxkVUbgx-bhGflKb_x-g8GP6k"
ERROR: unable to download video data: HTTP Error 403: Forbidden
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 3363, in process_info
    success, real_download = self.dl(temp_filename, info_dict)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 3084, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/downloader/common.py", line 461, in download
    ret = self.real_download(filename, info_dict)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/downloader/http.py", line 377, in real_download
    establish_connection()
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/downloader/http.py", line 129, in establish_connection
    ctx.data = self.ydl.urlopen(request)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 3863, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python3.9/urllib/request.py", line 523, in open
    response = meth(req, response)
  File "/usr/lib/python3.9/urllib/request.py", line 632, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.9/urllib/request.py", line 561, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.9/urllib/request.py", line 494, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.9/urllib/request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

I have issues too, but only when using my IPv6. Switching to IPv4 (replace -6 with -4) works fine (though probably because only my IPv6 is blocked?). Opening youtube videos in a browser shows the video but it stays buffering forever (console shows 403s). Passing cookies worked yesterday but doesn’t any more. And idk how to enable/disable HTTP2.
Also, while I’ve specified a format here, removing the format specifier just returns this:

[info] dQw4w9WgXcQ: Downloading 1 format(s): 616+251
[debug] Invoking hlsnative downloader on "https://manifest.googlevideo.com/api/manifest/hls_playlist/expire/1692729175/ei/96rkZPHTAtzLmLAP8_qCyA8/ip/2a02:c7c:6c23:eb00:7ae5:116d:d8ef:3a1c/id/750c38c3d5a05dc4/itag/616/source/youtube/requiressl/yes/ratebypass/yes/pfa/1/wft/1/sgovp/clen%3D99468660%3Bdur%3D212.040%3Bgir%3Dyes%3Bitag%3D356%3Blmt%3D1691805380373878/hls_chunk_host/rr1---sn-cn3tc-ac5l.googlevideo.com/mh/7c/mm/31,29/mn/sn-cn3tc-ac5l,sn-aigzrnld/ms/au,rdu/mv/m/mvi/1/pl/39/initcwndbps/1961250/vprv/1/playlist_type/DVR/dover/13/txp/453C434/mt/1692707204/fvip/1/short_key/1/keepalive/yes/fexp/24007246,51000024/beids/24350017/sparams/expire,ei,ip,id,itag,source,requiressl,ratebypass,pfa,wft,sgovp,vprv,playlist_type/sig/AOq0QJ8wRQIhAIYGK-oleVXCyM2f9I6WtXez_yet_GwSTxyBQckI_WWNAiAcANPlZ5LwPbNZvO4XQ0ayu2En6HD1ZnLbZ_IeykI-GQ%3D%3D/lsparams/hls_chunk_host,mh,mm,mn,ms,mv,mvi,pl,initcwndbps/lsig/AG3C_xAwRgIhAPulyIhBdgCj-1aXb0wwyBBoRVtc6PGTATJv3BS2gsn4AiEA84fvBlxMM9-Nl3r533xMz_Wma0Wg3nupYY0arw1q6aQ%3D/playlist/index.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 39
[download] Destination: Rick Astley - Never Gonna Give You Up (Official Music Video) [dQw4w9WgXcQ].f616.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 ...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 2 (1/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 2 (2/10)...
[download] Got error: HTTP Error 403: Forbidden. Retrying fragment 2 (3/10)...

This started happening to me yesterday. Is this related?

Just want to make sure. Are you all guys referring to yt-dlp [URL] command line? Or maybe you’re using its API in python? In such a case make sure that you also pip install --upgrade yt-dlp

  1. If you mean “–cookies-from-browser firefox”, so no
  2. No captcha, the video plays normally
  3. Nothing, a blank page including sources
  4. No (network.http.spdy.enabled.http2 = false)

Reminder that this issue is for version 2023.07.06+.

If you are on anything older, please update - you are running into a different issue that was already fixed in the previous release ahead of YouTube rolling out a change.

If someone can reproduce this issue on 2023.07.06+, please post a verbose log with --check-formats so we can confirm the type of issue this is.

root@vm3312288:~# yt-dlp -vU https://www.youtube.com/watch?v=nJ6A6GC_ki4 --check-formats
[debug] Command-line config: ['-vU', 'https://www.youtube.com/watch?v=nJ6A6GC_ki4', '--check-formats']
[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@2023.07.06 [b532a3481]
[debug] Lazy loading extractors is disabled
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-5.15.0-73-generic-x86_64-with-glibc2.35 (OpenSSL 3.0.2 15 Mar 2022, glibc 2.35)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, secretstorage-3.3.1, sqlite3-2.6.0, websockets-11.0.3
[debug] Proxy map: {}
[debug] Loaded 1863 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Available version: stable@2023.07.06, Current version: stable@2023.07.06
yt-dlp is up to date (stable@2023.07.06)
[youtube] Extracting URL: https://www.youtube.com/watch?v=nJ6A6GC_ki4
[youtube] nJ6A6GC_ki4: Downloading webpage
[youtube] nJ6A6GC_ki4: Downloading ios player API JSON
[youtube] nJ6A6GC_ki4: Downloading android player API JSON
[youtube] nJ6A6GC_ki4: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] Testing format 244
[info] Unable to download format 244. Skipping...
[info] Testing format 606
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 48
[download] Destination: /tmp/tmp7thl7cci.tmp
[download] Got error: HTTP Error 403: Forbidden
  File "/usr/local/bin/yt-dlp", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/__init__.py", line 1008, in main
    _exit(*variadic(_real_main(argv)))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/__init__.py", line 998, in _real_main
    return ydl.download(all_urls)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3518, in download
    self.__download_wrapper(self.extract_info)(
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3493, in wrapper
    res = func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1564, in extract_info
    return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1575, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1731, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1790, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2878, in process_video_result
    formats_to_download = list(format_selector({
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2360, in selector_function
    yield from f(ctx)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2459, in final_selector
    return selector_function(ctx_copy)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2371, in selector_function
    picked_formats = list(f(ctx))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2380, in selector_function
    for pair in itertools.product(selector_1(ctx), selector_2(ctx)):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2449, in selector_function
    yield matches[format_idx - 1]
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/utils/_utils.py", line 2177, in __getitem__
    self._cache.extend(itertools.islice(self._iterable, n))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2341, in _check_formats
    yield from self._check_formats(formats)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2115, in _check_formats
    success, _ = self.dl(temp_file.name, f, test=True)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3116, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/common.py", line 455, in download
    ret = self.real_download(filename, info_dict)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/hls.py", line 375, in real_download
    return self.download_and_append_fragments(ctx, fragments, info_dict)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/fragment.py", line 524, in download_and_append_fragments
    download_fragment(fragment, ctx)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/fragment.py", line 469, in download_fragment
    for retry in RetryManager(self.params.get('fragment_retries'), error_callback):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/utils/_utils.py", line 5092, in __iter__
    self.error_callback(self.error, self.attempt, self.retries)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/fragment.py", line 466, in error_callback
    self.report_retry(err, count, retries, frag_index, fatal)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/common.py", line 401, in report_retry
    RetryManager.report_retry(
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/utils/_utils.py", line 5099, in report_retry
    return error(f'{e}. Giving up after {count - 1} retries') if count > 1 else error(str(e))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/common.py", line 404, in <lambda>
    error=IDENTITY if not fatal else lambda e: self.report_error(f'\r[download] Got error: {e}'),
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1053, in report_error
    self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 981, in trouble
    tb_data = traceback.format_list(traceback.extract_stack())

ERROR: fragment 1 not found, unable to continue
  File "/usr/local/bin/yt-dlp", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/__init__.py", line 1008, in main
    _exit(*variadic(_real_main(argv)))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/__init__.py", line 998, in _real_main
    return ydl.download(all_urls)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3518, in download
    self.__download_wrapper(self.extract_info)(
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3493, in wrapper
    res = func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1564, in extract_info
    return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1575, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1731, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1790, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2878, in process_video_result
    formats_to_download = list(format_selector({
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2360, in selector_function
    yield from f(ctx)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2459, in final_selector
    return selector_function(ctx_copy)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2371, in selector_function
    picked_formats = list(f(ctx))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2380, in selector_function
    for pair in itertools.product(selector_1(ctx), selector_2(ctx)):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2449, in selector_function
    yield matches[format_idx - 1]
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/utils/_utils.py", line 2177, in __getitem__
    self._cache.extend(itertools.islice(self._iterable, n))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2341, in _check_formats
    yield from self._check_formats(formats)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2115, in _check_formats
    success, _ = self.dl(temp_file.name, f, test=True)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3116, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/common.py", line 455, in download
    ret = self.real_download(filename, info_dict)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/hls.py", line 375, in real_download
    return self.download_and_append_fragments(ctx, fragments, info_dict)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/fragment.py", line 525, in download_and_append_fragments
    result = append_fragment(
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/fragment.py", line 489, in append_fragment
    self.report_error(f'fragment {frag_index} not found, unable to continue')
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1053, in report_error
    self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 981, in trouble
    tb_data = traceback.format_list(traceback.extract_stack())


[info] Unable to download format 606. Skipping...
[info] Testing format 135
[info] Unable to download format 135. Skipping...
[info] Testing format 231
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 48
[download] Destination: /tmp/tmpr31nefhu.tmp
[download] Got error: HTTP Error 403: Forbidden
  File "/usr/local/bin/yt-dlp", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/__init__.py", line 1008, in main
    _exit(*variadic(_real_main(argv)))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/__init__.py", line 998, in _real_main
    return ydl.download(all_urls)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3518, in download
    self.__download_wrapper(self.extract_info)(
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3493, in wrapper
    res = func(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1564, in extract_info
    return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1575, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1731, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1790, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2878, in process_video_result
    formats_to_download = list(format_selector({
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2360, in selector_function
    yield from f(ctx)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2459, in final_selector
    return selector_function(ctx_copy)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2371, in selector_function
    picked_formats = list(f(ctx))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2380, in selector_function
    for pair in itertools.product(selector_1(ctx), selector_2(ctx)):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2449, in selector_function
    yield matches[format_idx - 1]
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/utils/_utils.py", line 2177, in __getitem__
    self._cache.extend(itertools.islice(self._iterable, n))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2341, in _check_formats
    yield from self._check_formats(formats)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 2115, in _check_formats
    success, _ = self.dl(temp_file.name, f, test=True)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 3116, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/common.py", line 455, in download
    ret = self.real_download(filename, info_dict)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/hls.py", line 375, in real_download
    return self.download_and_append_fragments(ctx, fragments, info_dict)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/fragment.py", line 524, in download_and_append_fragments
    download_fragment(fragment, ctx)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/fragment.py", line 469, in download_fragment
    for retry in RetryManager(self.params.get('fragment_retries'), error_callback):
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/utils/_utils.py", line 5092, in __iter__
    self.error_callback(self.error, self.attempt, self.retries)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/fragment.py", line 466, in error_callback
    self.report_retry(err, count, retries, frag_index, fatal)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/common.py", line 401, in report_retry
    RetryManager.report_retry(
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/utils/_utils.py", line 5099, in report_retry
    return error(f'{e}. Giving up after {count - 1} retries') if count > 1 else error(str(e))
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/downloader/common.py", line 404, in <lambda>
    error=IDENTITY if not fatal else lambda e: self.report_error(f'\r[download] Got error: {e}'),
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 1053, in report_error
    self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/yt_dlp/YoutubeDL.py", line 981, in trouble
    tb_data = traceback.format_list(traceback.extract_stack())

ERROR: fragment 1 not found, unable to continue
[info] Unable to download format 233. Skipping...
[info] Testing format 18
[info] Unable to download format 18. Skipping...
[info] Testing format 17
[info] Unable to download format 17. Skipping...

I think it has some trouble when fetching formats

I don’t download often and my VPS IP is still blocked.

I’ve experienced the same kind of blocking (403 on videoplayback if not logged in) from about two months on my home IP address, and had just been unblocked today. It seems that the blocking is temporary

具体错误信息如下:yt-dlp -vU https://www.youtube.com/watch?v=nJ6A6GC_ki4 --check-formats [debug] Command-line config: [‘-vU’, ‘https://www.youtube.com/watch?v=nJ6A6GC_ki4’, ‘–check-formats’] [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@2023.07.06 [b532a3481] (pip) [debug] Python 3.10.11 (CPython x86_64 64bit) - Linux-5.10.0-21-amd64-x86_64-with-glibc2.31 (OpenSSL 1.1.1n 15 Mar 2022, glibc 2.31) [debug] exe versions: ffmpeg 4.3.5-0, ffprobe 4.3.5-0 [debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2023.05.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-11.0.3 [debug] Proxy map: {} [debug] Loaded 1855 extractors [debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest Available version: stable@2023.07.06, Current version: stable@2023.07.06 yt-dlp is up to date (stable@2023.07.06) [youtube] Extracting URL: https://www.youtube.com/watch?v=nJ6A6GC_ki4 [youtube] nJ6A6GC_ki4: Downloading webpage [youtube] nJ6A6GC_ki4: Downloading ios player API JSON [youtube] nJ6A6GC_ki4: Downloading android player API JSON [youtube] nJ6A6GC_ki4: Downloading m3u8 information [debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto [debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id [debug] Default format spec: bestvideo*+bestaudio/best [info] nJ6A6GC_ki4: Downloading 1 format(s): 244+251 [debug] Invoking http downloader on “https://rr1---sn-5hneknee.googlevideo.com/videoplayback?expire=1692886148&ei=JBDnZJKnCYG1-ga4uqLYAg&ip=50.7.204.18&id=o-AGR1YEIKRkhsf8-rZ_UIJSh8Zo-uPzbAvbUw8OZeZMYR&itag=244&source=youtube&requiressl=yes&mh=MH&mm=31%2C26&mn=sn-5hneknee%2Csn-4g5edn6r&ms=au%2Conr&mv=u&mvi=1&pl=23&gcr=us&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=12357755&dur=246.346&lmt=1575098546134993&mt=1692863804&fvip=2&keepalive=yes&fexp=24007246%2C51000022&beids=24350018&c=IOS&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgFDmBNnh4DMUj3C9oRG8vWTJiniAIaHhnAeCA2x7L5n0CIQCBL7BDvqyWgZ660QYm8Cpxc4vwE7dg2JROG_S7MEwtyQ%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl&lsig=AG3C_xAwRAIgYwiQlZQHm-FIWl1omj7nQ0Mts5Olt_kSTcjO_Q8QCPUCIAHKPY-Uk9x1khvYOSvmPucG-kTVAm6wAAqpNeP695K0” ERROR: unable to download video data: HTTP Error 403: Forbidden Traceback (most recent call last): File “/usr/local/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py”, line 3345, in process_info partial_success, real_download = self.dl(fname, new_info) File “/usr/local/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py”, line 3084, in dl return fd.download(name, new_info, subtitle) File “/usr/local/lib/python3.10/site-packages/yt_dlp/downloader/common.py”, line 461, in download ret = self.real_download(filename, info_dict) File “/usr/local/lib/python3.10/site-packages/yt_dlp/downloader/http.py”, line 377, in real_download establish_connection() File “/usr/local/lib/python3.10/site-packages/yt_dlp/downloader/http.py”, line 129, in establish_connection ctx.data = self.ydl.urlopen(request) File “/usr/local/lib/python3.10/site-packages/yt_dlp/YoutubeDL.py”, line 3863, in urlopen return self._opener.open(req, timeout=self._socket_timeout) File “/usr/local/lib/python3.10/urllib/request.py”, line 525, in open response = meth(req, response) File “/usr/local/lib/python3.10/urllib/request.py”, line 634, in http_response response = self.parent.error( File “/usr/local/lib/python3.10/urllib/request.py”, line 563, in error return self._call_chain(*args) File “/usr/local/lib/python3.10/urllib/request.py”, line 496, in _call_chain result = func(*args) File “/usr/local/lib/python3.10/urllib/request.py”, line 643, in http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError: HTTP Error 403: Forbidden

@Kuchizu Does it work in a browser? If yes, can you please test yt-dlp again, so we know it’s not just a random issue?

Not seen for me either on nightly:

yt-dlp -vU --ignore-config --check-formats https://www.youtube.com/watch?v=nJ6A6GC_ki4
[debug] Command-line config: ['-vU', '--ignore-config', '--check-formats', 'https://www.youtube.com/watch?v=nJ6A6GC_ki4']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2023.08.14.182926 [876b70c8e] (zip)
[debug] Python 3.8.10 (CPython x86_64 64bit) - Linux-5.4.0-156-generic-x86_64-with-glibc2.29 (OpenSSL 1.1.1f  31 Mar 2020, glibc 2.31)
[debug] exe versions: ffmpeg N-111711-gd295b6b693-Nico-20230808 (fdk,setts), ffprobe N-111711-gd295b6b693-Nico-20230808, phantomjs 2.1.1, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.18.0, brotli-1.0.9, certifi-2023.07.22, mutagen-1.46.0, secretstorage-3.3.3, sqlite3-2.6.0, websockets-11.0.3, xattr-0.9.6
[debug] Proxy map: {}
[debug] Loaded 1863 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Available version: nightly@2023.08.14.182926, Current version: nightly@2023.08.14.182926
Current Build Hash: d66b5383fd468d11b0400e423e6db8704cc0f5fcfd3db28e06d0e821ceb3a546
yt-dlp is up to date (nightly@2023.08.14.182926)
[youtube] Extracting URL: https://www.youtube.com/watch?v=nJ6A6GC_ki4
[youtube] nJ6A6GC_ki4: Downloading webpage
[youtube] nJ6A6GC_ki4: Downloading ios player API JSON
[youtube] nJ6A6GC_ki4: Downloading android player API JSON
[youtube] nJ6A6GC_ki4: Downloading m3u8 information
[debug] Sort order given by extractor: quality, res, fps, hdr:12, source, vcodec:vp9.2, channels, acodec, lang, proto
[debug] Formats sorted by: hasvid, ie_pref, quality, res, fps, hdr:12(7), source, vcodec:vp9.2(10), channels, acodec, lang, proto, size, br, asr, vext, aext, hasaud, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] Testing format 244
[download] Destination: /tmp/tmpl8r18f26.tmp
[download] 100% of   10.00KiB in 00:00:00 at 214.98KiB/s
[info] Testing format 251
[download] Destination: /tmp/tmp5_q4a7bk.tmp
[download] 100% of   10.00KiB in 00:00:00 at 207.07KiB/s
[info] nJ6A6GC_ki4: Downloading 1 format(s): 244+251
[debug] Invoking http downloader on "https://rr2---sn-5hne6n6e.googlevideo.com/videoplayback?expire=1692213787&ei=u83cZPnbLsKP6dsP0LivmAI&ip=<REDACTED>&id=o-AJwEITjJcZCvHOSDzwG2286DqQthhdKgP0Odizcq3FrG&itag=244&source=youtube&requiressl=yes&mh=MH&mm=31%2C29&mn=sn-5hne6n6e%2Csn-5hneknee&ms=au%2Crdu&mv=m&mvi=2&pl=14&gcr=nl&initcwndbps=2331250&vprv=1&svpuc=1&mime=video%2Fwebm&gir=yes&clen=12357755&dur=246.346&lmt=1575098546134993&mt=1692191865&fvip=1&keepalive=yes&fexp=24007246&c=IOS&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAP4_L7tTKC1GtmTyouAanx8PfvkNtnlLsGfISqcLDwglAiBk4OsBHwkT2KCyr6tQy0PZAx8ZmO8vQ-9s7DcQjdBbxg%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAMi-5D00hEQe6ywcV4MkEJLgx60F4tmlDkk-rtJjDUFmAiEAi2d_7I4Saiy9_zS3kdsJMJQB10mrrUAPx9dVPIbvW30%3D"
[download] Destination: ASIAN KUNG-FU GENERATION - Haruka Kanata [nJ6A6GC_ki4].f244.webm
[download] 100% of   11.79MiB in 00:00:01 at 10.37MiB/s
[debug] Invoking http downloader on "https://rr1---sn-5hneknee.googlevideo.com/videoplayback?expire=1692213787&ei=u83cZJTdNryx6dsP3bWnsAo&ip=<REDACTED>&id=o-AJeRG_ZbutvvWk9hFz8BjB7OnJe3vHK5WyCJJZNzeRVi&itag=251&source=youtube&requiressl=yes&mh=MH&mm=31%2C26&mn=sn-5hneknee%2Csn-4g5edn6r&ms=au%2Conr&mv=m&mvi=1&pl=14&gcr=nl&initcwndbps=2428750&spc=UWF9f7a2kMCg73ZgWI4Vk2LMkmaopKQ&vprv=1&svpuc=1&mime=audio%2Fwebm&gir=yes&clen=3915179&dur=246.361&lmt=1575097462677934&mt=1692191865&fvip=2&keepalive=yes&fexp=24007246&beids=24350018&c=ANDROID&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRgIhAM841goM-7-WlvHQN1CA9I14efHP8-5mA35FZE8AdvmEAiEAyPCn3bUiOAAxxpwc-9RuPTckIboR6hAbIn4f50pfb3M%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRAIgc-8eCV0Pm5en8JMDNq7hajx4EuoPx72LRD43NZOfk5cCIH7kEzuZYuELvboLa3Ryc_fJRA1OHSuKY3RWlEuOJMsy"
[download] Destination: ASIAN KUNG-FU GENERATION - Haruka Kanata [nJ6A6GC_ki4].f251.webm
[download] 100% of    3.73MiB in 00:00:00 at 10.03MiB/s
[Merger] Merging formats into "ASIAN KUNG-FU GENERATION - Haruka Kanata [nJ6A6GC_ki4].webm"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:ASIAN KUNG-FU GENERATION - Haruka Kanata [nJ6A6GC_ki4].f244.webm' -i 'file:ASIAN KUNG-FU GENERATION - Haruka Kanata [nJ6A6GC_ki4].f251.webm' -c copy -map 0:v:0 -map 1:a:0 -movflags +faststart 'file:ASIAN KUNG-FU GENERATION - Haruka Kanata [nJ6A6GC_ki4].temp.webm'
Deleting original file ASIAN KUNG-FU GENERATION - Haruka Kanata [nJ6A6GC_ki4].f244.webm (pass -k to keep)
Deleting original file ASIAN KUNG-FU GENERATION - Haruka Kanata [nJ6A6GC_ki4].f251.webm (pass -k to keep)

Not seen for me with yt-dlp 2023.06.22 (but SOCS issue), nor with yt-dl master WIP with SOCS fix, using --test.

I have the same issue. And it started yesterday. Even for videos that was already downloaded earlier I have this error:

ERROR: unable to download video data: HTTP Error 403: Forbidden

So, looking for solution/patch…

UPD: Was fixed after update to 2023.07.06 version. Thanks for update, guys!