Repository: yt-dlp/yt-dlp

Issue:
Crunchyroll HTTP error 403 Forbidden even with --cookies-from-browser and --user-agent
### DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

- [X] I understand that I will be **blocked** if I *intentionally* remove or skip any mandatory\* field

### Checklist

- [X] I'm reporting that yt-dlp is broken on a **supported** site
- [X] I've verified that I have **updated yt-dlp to nightly or master** ([update instructions](https://github.com/yt-dlp/yt-dlp#update-channels))
- [X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/yt-dlp/yt-dlp/wiki/FAQ#video-url-contains-an-ampersand--and-im-getting-some-strange-output-1-2839-or-v-is-not-recognized-as-an-internal-or-external-command)
- [X] I've searched [known issues](https://github.com/yt-dlp/yt-dlp/issues/3766) and the [bugtracker](https://github.com/yt-dlp/yt-dlp/issues?q=) for similar issues **including closed ones**. DO NOT post duplicates
- [X] I've read the [guidelines for opening an issue](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#opening-an-issue)
- [X] I've read about [sharing account credentials](https://github.com/yt-dlp/yt-dlp/blob/master/CONTRIBUTING.md#are-you-willing-to-share-account-details-if-needed) and I'm willing to share it if required

### Region

US

### Provide a description that is worded well enough to be understood

I've updated everything: yt-dlp, Chrome, and the user-agent. I tried on both Mac and Windows, even tried with a different IP (VPN), but I still get HTTP error 403 Forbidden.
```
yt-dlp --version                                                                                                      
2024.03.10
```

### Provide verbose output that clearly demonstrates the problem

- [X] 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
- [X] Copy the WHOLE output (starting with `[debug] Command-line config`) and insert it below

### Complete Verbose Output

```shell
[debug] Command-line config: ['-vU', 'https://www.crunchyroll.com/watch/GN7UD1N9E/']
[debug] User config "/Users/tama/.config/yt-dlp/config": ['--cookies-from-browser', 'chrome', '--no-playlist', '--sub-format', 'ass', '--sub-format', 'srt', '--sub-format', 'vtt', '--sub-langs', 'en', '--sub-langs', 'en-US', '--sub-langs', 'en-ja', '--sub-langs', 'eng', '--sub-langs', 'english-subs', '--sub-langs', 'ja', '--sub-langs', 'jp', '--sub-langs', 'jpn', '--sub-langs', 'th', '--sub-langs', 'tha', '--user-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '-o', '~/Downloads/%(title)s.%(ext)s']
[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@2024.03.10 from yt-dlp/yt-dlp [615a84447] (pip)
[debug] Python 3.12.2 (CPython arm64 64bit) - macOS-14.2.1-arm64-arm-64bit (OpenSSL 3.2.1 30 Jan 2024)
[debug] exe versions: ffmpeg 6.1.1 (setts), ffprobe 6.1.1
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, mutagen-1.47.0, requests-2.31.0, sqlite3-3.45.2, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
Extracting cookies from chrome
[debug] Extracting cookies from: "/Users/tama/Library/Application Support/Google/Chrome/Default/Cookies"
[debug] using find-generic-password to obtain password from OSX keychain
Extracted 603 cookies from chrome
[debug] cookie version breakdown: {'v10': 604, 'other': 0, 'unencrypted': 7}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1803 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2024.03.10 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2024.03.10 from yt-dlp/yt-dlp)
[crunchyroll] Extracting URL: https://www.crunchyroll.com/watch/GN7UD1N9E/
[debug] [crunchyroll] Using cxApiParam=noaihdevm_6iyg0a8l0q
[crunchyroll] Authenticating with grant_type=etp_rt_cookie
[crunchyroll] GN7UD1N9E: Downloading object info JSON (cms)
[crunchyroll] Retrieving signed policy
[crunchyroll] GN7UD1N9E: Downloading stream info JSON (signed cms)
[crunchyroll] To get all formats of a hardsub language, use "--extractor-args crunchyrollbeta:hardsub=<language_code or all>". See https://github.com/yt-dlp/yt-dlp#crunchyrollbeta-crunchyroll for more info
[crunchyroll] GN7UD1N9E: Downloading adaptive_hls HLS manifest
WARNING: [crunchyroll] Failed to download m3u8 information: HTTP Error 403: Forbidden
[crunchyroll] GN7UD1N9E: Downloading chapter info
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] GN7UD1N9E: Downloading 1 format(s): adaptive_hls-hardsub-ru-RU-meta
[debug] Invoking ffmpeg downloader on "https://pl.crunchyroll.com/evs3/bd4b3baeb3433b8c2083010401fae1d7/assets/8fe452ba919c039c01a606c90abfe125_,5464752.mp4,5464753.mp4,5464751.mp4,5464749.mp4,5464750.mp4,.urlset/master.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6Ly9wbC5jcnVuY2h5cm9sbC5jb20vZXZzMy9iZDRiM2JhZWIzNDMzYjhjMjA4MzAxMDQwMWZhZTFkNy9hc3NldHMvOGZlNDUyYmE5MTljMDM5YzAxYTYwNmM5MGFiZmUxMjVfLDU0NjQ3NTIubXA0LDU0NjQ3NTMubXA0LDU0NjQ3NTEubXA0LDU0NjQ3NDkubXA0LDU0NjQ3NTAubXA0LC51cmxzZXQvbWFzdGVyLm0zdTgiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MTA1NTIyNzN9fX1dfQ__&Signature=MUaKew1l~SsZren~ZvXAFjSLkROjrnTdMoaUoZIEd5tjeJbN5hoECvlwrdmUWlyGSLWl~CS7A70UUD7CIBREh~2nmEfpLr1DCSv2jgJYwdI-TjSKiEbfE3-VKmtiiwtOzKZUaXxOGVvrDA4MAcy8p4bbrA1r1VwltPegRo0FekTPSFkrM2ybv0TrWsE16hu17YZc-eMK~uEy8~enpFJuVB9ijlarLkIWf3Qj0G5GYVykFzhEApKwpjMv4aQKBX5DVi1WxO7JXyIcRZHxQREyR0~enmtSmqZjkoKexPvPNfzgEg~NX4gypLGbfP8j5cBB4mLlz7qer5HA7YV00I7~5Q__&Key-Pair-Id=APKAJMWSQ5S7ZB3MF5VA"
[download] Destination: /Users/tama/Downloads/Classroom of the Elite Season 3 Episode 11 – There is only one rule in love： bring happiness to those you love..mp4
[debug] ffmpeg command line: ffmpeg -y -loglevel verbose -cookies '' -headers 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Sec-Fetch-Mode: navigate
' -i 'https://pl.crunchyroll.com/evs3/bd4b3baeb3433b8c2083010401fae1d7/assets/8fe452ba919c039c01a606c90abfe125_,5464752.mp4,5464753.mp4,5464751.mp4,5464749.mp4,5464750.mp4,.urlset/master.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6Ly9wbC5jcnVuY2h5cm9sbC5jb20vZXZzMy9iZDRiM2JhZWIzNDMzYjhjMjA4MzAxMDQwMWZhZTFkNy9hc3NldHMvOGZlNDUyYmE5MTljMDM5YzAxYTYwNmM5MGFiZmUxMjVfLDU0NjQ3NTIubXA0LDU0NjQ3NTMubXA0LDU0NjQ3NTEubXA0LDU0NjQ3NDkubXA0LDU0NjQ3NTAubXA0LC51cmxzZXQvbWFzdGVyLm0zdTgiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MTA1NTIyNzN9fX1dfQ__&Signature=MUaKew1l~SsZren~ZvXAFjSLkROjrnTdMoaUoZIEd5tjeJbN5hoECvlwrdmUWlyGSLWl~CS7A70UUD7CIBREh~2nmEfpLr1DCSv2jgJYwdI-TjSKiEbfE3-VKmtiiwtOzKZUaXxOGVvrDA4MAcy8p4bbrA1r1VwltPegRo0FekTPSFkrM2ybv0TrWsE16hu17YZc-eMK~uEy8~enpFJuVB9ijlarLkIWf3Qj0G5GYVykFzhEApKwpjMv4aQKBX5DVi1WxO7JXyIcRZHxQREyR0~enmtSmqZjkoKexPvPNfzgEg~NX4gypLGbfP8j5cBB4mLlz7qer5HA7YV00I7~5Q__&Key-Pair-Id=APKAJMWSQ5S7ZB3MF5VA' -c copy -f mp4 'file:/Users/tama/Downloads/Classroom of the Elite Season 3 Episode 11 – There is only one rule in love： bring happiness to those you love..mp4.part'
ffmpeg version 6.1.1 Copyright (c) 2000-2023 the FFmpeg developers
  built with Apple clang version 15.0.0 (clang-1500.1.0.2.5)
  configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/6.1.1_4 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags='-Wl,-ld_classic' --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libaribb24 --enable-libbluray --enable-libdav1d --enable-libharfbuzz --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librist --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopenvino --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-videotoolbox --enable-audiotoolbox --enable-neon
  libavutil      58. 29.100 / 58. 29.100
  libavcodec     60. 31.102 / 60. 31.102
  libavformat    60. 16.100 / 60. 16.100
  libavdevice    60.  3.100 / 60.  3.100
  libavfilter     9. 12.100 /  9. 12.100
  libswscale      7.  5.100 /  7.  5.100
  libswresample   4. 12.100 /  4. 12.100
  libpostproc    57.  3.100 / 57.  3.100
[tcp @ 0x6000008b3180] Starting connection attempt to 18.172.170.20 port 443
[tcp @ 0x6000008b3180] Successfully connected to 18.172.170.20 port 443
[https @ 0x14d808800] HTTP error 403 Forbidden
[in#0 @ 0x600001ab0400] Error opening input: Server returned 403 Forbidden (access denied)
Error opening input file https://pl.crunchyroll.com/evs3/bd4b3baeb3433b8c2083010401fae1d7/assets/8fe452ba919c039c01a606c90abfe125_,5464752.mp4,5464753.mp4,5464751.mp4,5464749.mp4,5464750.mp4,.urlset/master.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6Ly9wbC5jcnVuY2h5cm9sbC5jb20vZXZzMy9iZDRiM2JhZWIzNDMzYjhjMjA4MzAxMDQwMWZhZTFkNy9hc3NldHMvOGZlNDUyYmE5MTljMDM5YzAxYTYwNmM5MGFiZmUxMjVfLDU0NjQ3NTIubXA0LDU0NjQ3NTMubXA0LDU0NjQ3NTEubXA0LDU0NjQ3NDkubXA0LDU0NjQ3NTAubXA0LC51cmxzZXQvbWFzdGVyLm0zdTgiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MTA1NTIyNzN9fX1dfQ__&Signature=MUaKew1l~SsZren~ZvXAFjSLkROjrnTdMoaUoZIEd5tjeJbN5hoECvlwrdmUWlyGSLWl~CS7A70UUD7CIBREh~2nmEfpLr1DCSv2jgJYwdI-TjSKiEbfE3-VKmtiiwtOzKZUaXxOGVvrDA4MAcy8p4bbrA1r1VwltPegRo0FekTPSFkrM2ybv0TrWsE16hu17YZc-eMK~uEy8~enpFJuVB9ijlarLkIWf3Qj0G5GYVykFzhEApKwpjMv4aQKBX5DVi1WxO7JXyIcRZHxQREyR0~enmtSmqZjkoKexPvPNfzgEg~NX4gypLGbfP8j5cBB4mLlz7qer5HA7YV00I7~5Q__&Key-Pair-Id=APKAJMWSQ5S7ZB3MF5VA.
Error opening input files: Server returned 403 Forbidden (access denied)


ERROR: ffmpeg exited with code 8
  File "/opt/homebrew/bin/yt-dlp", line 8, in <module>
    sys.exit(main())
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/__init__.py", line 1030, in main
    _exit(*variadic(_real_main(argv)))
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/__init__.py", line 1020, in _real_main
    return ydl.download(all_urls)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3558, in download
    self.__download_wrapper(self.extract_info)(
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3533, in wrapper
    res = func(*args, **kwargs)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1583, in extract_info
    return self.__extract_info(url, self.get_info_extractor(key), download, extra_info, process)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1594, in wrapper
    return func(self, *args, **kwargs)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1750, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1809, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 2968, in process_video_result
    self.process_info(new_info)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3434, in process_info
    success, real_download = self.dl(temp_filename, info_dict)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 3155, in dl
    return fd.download(name, new_info, subtitle)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/downloader/common.py", line 455, in download
    ret = self.real_download(filename, info_dict)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/downloader/external.py", line 80, in real_download
    self.report_error('%s exited with code %d' % (
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 1061, in report_error
    self.trouble(f'{self._format_err("ERROR:", self.Styles.ERROR)} {message}', *args, **kwargs)
  File "/opt/homebrew/Cellar/yt-dlp/2024.03.10/libexec/lib/python3.12/site-packages/yt_dlp/YoutubeDL.py", line 989, in trouble
    tb_data = traceback.format_list(traceback.extract_stack())




[debug] Command-line config: ['-vU', 'https://www.crunchyroll.com/watch/GN7UD1N9E/']
[debug] User config "C:\Users\Tama\AppData\Roaming\yt-dlp\config": ['--cookies-from-browser', 'chrome', '--sub-format', 'ass', '--sub-format', 'srt', '--sub-format', 'vtt', '--sub-langs', 'en', '--sub-langs', 'en-ja', '--sub-langs', 'en-US', '--sub-langs', 'eng', '--sub-langs', 'english-subs', '--sub-langs', 'ja', '--sub-langs', 'jp', '--sub-langs', 'jpn', '--sub-langs', 'th', '--sub-langs', 'tha', '--user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36', '-o', '~/Downloads/%(title)s.%(ext)s']
[debug] Encodings: locale cp932, fs utf-8, pref cp932, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2024.03.10 from yt-dlp/yt-dlp [615a84447] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22631-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg 2022-12-29-git-d39b34123d-full_build-www.gyan.dev (setts)
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
Extracting cookies from chrome
[debug] Extracting cookies from: "C:\Users\Tama\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
[debug] Found local state file at "C:\Users\Tama\AppData\Local\Google\Chrome\User Data\Local State"
Extracted 327 cookies from chrome
[debug] cookie version breakdown: {'v10': 328, 'other': 0, 'unencrypted': 0}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1803 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2024.03.10 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2024.03.10 from yt-dlp/yt-dlp)
[crunchyroll] Extracting URL: https://www.crunchyroll.com/watch/GN7UD1N9E/
[debug] [crunchyroll] Using cxApiParam=noaihdevm_6iyg0a8l0q
[crunchyroll] Authenticating with grant_type=etp_rt_cookie
[crunchyroll] GN7UD1N9E: Downloading object info JSON (cms)
[crunchyroll] Retrieving signed policy
[crunchyroll] GN7UD1N9E: Downloading stream info JSON (signed cms)
[crunchyroll] To get all formats of a hardsub language, use "--extractor-args crunchyrollbeta:hardsub=<language_code or all>". See https://github.com/yt-dlp/yt-dlp#crunchyrollbeta-crunchyroll for more info
[crunchyroll] GN7UD1N9E: Downloading adaptive_hls HLS manifest
WARNING: [crunchyroll] Failed to download m3u8 information: HTTP Error 403: Forbidden
[crunchyroll] GN7UD1N9E: Downloading chapter info
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), channels, acodec, size, br, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] GN7UD1N9E: Downloading 1 format(s): adaptive_hls-hardsub-ru-RU-meta
[debug] Invoking ffmpeg downloader on "https://pl.crunchyroll.com/evs3/bd4b3baeb3433b8c2083010401fae1d7/assets/8fe452ba919c039c01a606c90abfe125_,5464752.mp4,5464753.mp4,5464751.mp4,5464749.mp4,5464750.mp4,.urlset/master.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6Ly9wbC5jcnVuY2h5cm9sbC5jb20vZXZzMy9iZDRiM2JhZWIzNDMzYjhjMjA4MzAxMDQwMWZhZTFkNy9hc3NldHMvOGZlNDUyYmE5MTljMDM5YzAxYTYwNmM5MGFiZmUxMjVfLDU0NjQ3NTIubXA0LDU0NjQ3NTMubXA0LDU0NjQ3NTEubXA0LDU0NjQ3NDkubXA0LDU0NjQ3NTAubXA0LC51cmxzZXQvbWFzdGVyLm0zdTgiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MTA1NTI3NTR9fX1dfQ__&Signature=pvvok8qC0txsf4Zoot2o79lx7C5PHLJHC7IACgmYxvSOwRPxUO-i-j4UB8p1jui-VwbMgetEKQT3BeJC0C8wBEo3kFy7fiJIk05F559sMcXkzBxo8yLgprlZhEI7-vJ4RZxecpVmqMsCyQO-xkne5WQCY43o7H9jE60W5iO8FNIMpS2uFcoXkYlp9IZCpnOIJzCtmNyweFBapRD6Orr9NRecg31yY0aOw8Gdx-E~dPq2dT6FojzkiEZSGVj58K9uidwPs5WwCl~DdQcfeTlSH6o-0Q8BqWhgUxZOqD7ABBAEX-RW45~zixAHpFStWvIUy2lHGd9Rkn5UAet9Gx3jyQ__&Key-Pair-Id=APKAJMWSQ5S7ZB3MF5VA"
[download] Destination: C:\Users\Tama\Downloads\Classroom of the Elite Season 3 Episode 11 – There is only one rule in love： bring happiness to those you love..mp4
[debug] ffmpeg command line: ffmpeg -y -loglevel verbose -cookies "" -headers "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Sec-Fetch-Mode: navigate
" -i "https://pl.crunchyroll.com/evs3/bd4b3baeb3433b8c2083010401fae1d7/assets/8fe452ba919c039c01a606c90abfe125_,5464752.mp4,5464753.mp4,5464751.mp4,5464749.mp4,5464750.mp4,.urlset/master.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6Ly9wbC5jcnVuY2h5cm9sbC5jb20vZXZzMy9iZDRiM2JhZWIzNDMzYjhjMjA4MzAxMDQwMWZhZTFkNy9hc3NldHMvOGZlNDUyYmE5MTljMDM5YzAxYTYwNmM5MGFiZmUxMjVfLDU0NjQ3NTIubXA0LDU0NjQ3NTMubXA0LDU0NjQ3NTEubXA0LDU0NjQ3NDkubXA0LDU0NjQ3NTAubXA0LC51cmxzZXQvbWFzdGVyLm0zdTgiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MTA1NTI3NTR9fX1dfQ__&Signature=pvvok8qC0txsf4Zoot2o79lx7C5PHLJHC7IACgmYxvSOwRPxUO-i-j4UB8p1jui-VwbMgetEKQT3BeJC0C8wBEo3kFy7fiJIk05F559sMcXkzBxo8yLgprlZhEI7-vJ4RZxecpVmqMsCyQO-xkne5WQCY43o7H9jE60W5iO8FNIMpS2uFcoXkYlp9IZCpnOIJzCtmNyweFBapRD6Orr9NRecg31yY0aOw8Gdx-E~dPq2dT6FojzkiEZSGVj58K9uidwPs5WwCl~DdQcfeTlSH6o-0Q8BqWhgUxZOqD7ABBAEX-RW45~zixAHpFStWvIUy2lHGd9Rkn5UAet9Gx3jyQ__&Key-Pair-Id=APKAJMWSQ5S7ZB3MF5VA" -c copy -f mp4 "file:C:\Users\Tama\Downloads\Classroom of the Elite Season 3 Episode 11 – There is only one rule in love： bring happiness to those you love..mp4.part"
ffmpeg version 2022-12-29-git-d39b34123d-full_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      57. 43.100 / 57. 43.100
  libavcodec     59. 55.103 / 59. 55.103
  libavformat    59. 34.102 / 59. 34.102
  libavdevice    59.  8.101 / 59.  8.101
  libavfilter     8. 53.100 /  8. 53.100
  libswscale      6.  8.112 /  6.  8.112
  libswresample   4.  9.100 /  4.  9.100
  libpostproc    56.  7.100 / 56.  7.100
[tcp @ 00000192b26fc140] Starting connection attempt to 18.172.170.121 port 443
[tcp @ 00000192b26fc140] Successfully connected to 18.172.170.121 port 443
[https @ 00000192b26f7a80] HTTP error 403 Forbidden
https://pl.crunchyroll.com/evs3/bd4b3baeb3433b8c2083010401fae1d7/assets/8fe452ba919c039c01a606c90abfe125_,5464752.mp4,5464753.mp4,5464751.mp4,5464749.mp4,5464750.mp4,.urlset/master.m3u8?Policy=eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cCo6Ly9wbC5jcnVuY2h5cm9sbC5jb20vZXZzMy9iZDRiM2JhZWIzNDMzYjhjMjA4MzAxMDQwMWZhZTFkNy9hc3NldHMvOGZlNDUyYmE5MTljMDM5YzAxYTYwNmM5MGFiZmUxMjVfLDU0NjQ3NTIubXA0LDU0NjQ3NTMubXA0LDU0NjQ3NTEubXA0LDU0NjQ3NDkubXA0LDU0NjQ3NTAubXA0LC51cmxzZXQvbWFzdGVyLm0zdTgiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE3MTA1NTI3NTR9fX1dfQ__&Signature=pvvok8qC0txsf4Zoot2o79lx7C5PHLJHC7IACgmYxvSOwRPxUO-i-j4UB8p1jui-VwbMgetEKQT3BeJC0C8wBEo3kFy7fiJIk05F559sMcXkzBxo8yLgprlZhEI7-vJ4RZxecpVmqMsCyQO-xkne5WQCY43o7H9jE60W5iO8FNIMpS2uFcoXkYlp9IZCpnOIJzCtmNyweFBapRD6Orr9NRecg31yY0aOw8Gdx-E~dPq2dT6FojzkiEZSGVj58K9uidwPs5WwCl~DdQcfeTlSH6o-0Q8BqWhgUxZOqD7ABBAEX-RW45~zixAHpFStWvIUy2lHGd9Rkn5UAet9Gx3jyQ__&Key-Pair-Id=APKAJMWSQ5S7ZB3MF5VA: Server returned 403 Forbidden (access denied)


ERROR: ffmpeg exited with code 1
  File "yt_dlp\__main__.py", line 17, in <module>
  File "yt_dlp\__init__.py", line 1030, in main
  File "yt_dlp\__init__.py", line 1020, in _real_main
  File "yt_dlp\YoutubeDL.py", line 3558, in download
  File "yt_dlp\YoutubeDL.py", line 3533, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1583, in extract_info
  File "yt_dlp\YoutubeDL.py", line 1594, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1750, in __extract_info
  File "yt_dlp\YoutubeDL.py", line 1809, in process_ie_result
  File "yt_dlp\YoutubeDL.py", line 2968, in process_video_result
  File "yt_dlp\YoutubeDL.py", line 3434, in process_info
  File "yt_dlp\YoutubeDL.py", line 3155, in dl
  File "yt_dlp\downloader\common.py", line 455, in download
  File "yt_dlp\downloader\external.py", line 80, in real_download
  File "yt_dlp\YoutubeDL.py", line 1061, in report_error
  File "yt_dlp\YoutubeDL.py", line 989, in trouble
```



Discussion:
I'm having issues as well.

```
[debug] Command-line config: ['-vU', '-a', '!1-Batch-URL.txt', '--replace-in-metadata', 'series', ':', '', '--write-sub', '--sub-lang', 'en-US', '--user-agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0', '--cookies-from-browser', 'firefox', '-f', 'best[height=720]', '-o', 'Downloads\\%(series)s S%(season_number)02dE%(episode_number)02d.%(ext)s']
[debug] Batch file urls: ['https://www.crunchyroll.com/watch/GWDU8JD0Z/extreme-justice-is-extreme-injustice']
[debug] Encodings: locale cp1252, fs utf-8, pref cp1252, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version nightly@2024.03.10.232703 from yt-dlp/yt-dlp-nightly-builds [8463fb510] (win_exe)
[debug] Python 3.8.10 (CPython AMD64 64bit) - Windows-10-10.0.22631-SP0 (OpenSSL 1.1.1k  25 Mar 2021)
[debug] exe versions: ffmpeg N-107013-g93b31dae1d-20220527 (setts), ffprobe N-107013-g93b31dae1d-20220527
[debug] Optional libraries: Cryptodome-3.20.0, brotli-1.1.0, certifi-2024.02.02, mutagen-1.47.0, requests-2.31.0, sqlite3-3.35.5, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
Extracting cookies from firefox
[debug] Extracting cookies from: "C:\Users\User\AppData\Roaming\Mozilla\Firefox\Profiles\w22netn6.default-release\cookies.sqlite"
Extracted 2957 cookies from firefox
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1803 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp-nightly-builds/releases/latest
Latest version: nightly@2024.03.10.232703 from yt-dlp/yt-dlp-nightly-builds
yt-dlp is up to date (nightly@2024.03.10.232703 from yt-dlp/yt-dlp-nightly-builds)
[crunchyroll] Extracting URL: https://www.crunchyroll.com/watch/GWDU8JD0Z/extreme-justice-is-extreme-injustice
[debug] [crunchyroll] Using cxApiParam=noaihdevm_6iyg0a8l0q
[crunchyroll] Authenticating with grant_type=etp_rt_cookie
[crunchyroll] GWDU8JD0Z: Downloading object info JSON (cms)
[crunchyroll] Retrieving signed policy
[crunchyroll] GWDU8JD0Z: Downloading stream info JSON (signed cms)
[crunchyroll] To get all formats of a hardsub language, use "--extractor-args crunchyrollbeta:hardsub=<language_code or all>". See https://github.com/yt-dlp/yt-dlp#crunchyrollbeta-crunchyroll for more info
[crunchyroll] GWDU8JD0Z: Downloading adaptive_hls HLS manifest
WARNING: [crunchyroll] Failed to download m3u8 information: HTTP Error 403: Forbidden
[crunchyroll] GWDU8JD0Z: Downloading chapter info
[info] GWDU8JD0Z: Downloading subtitles: en-US
ERROR: [crunchyroll] GWDU8JD0Z: No video formats found!; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
Traceback (most recent call last):
  File "yt_dlp\YoutubeDL.py", line 1594, in wrapper
  File "yt_dlp\YoutubeDL.py", line 1750, in __extract_info
  File "yt_dlp\YoutubeDL.py", line 1809, in process_ie_result
  File "yt_dlp\YoutubeDL.py", line 2797, in process_video_result
  File "yt_dlp\YoutubeDL.py", line 1092, in raise_no_formats
yt_dlp.utils.ExtractorError: [crunchyroll] GWDU8JD0Z: No video formats found!; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
```
here's the response body for the failed m3u8 requests:
```html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>ERROR: The request could not be satisfied</TITLE>
</HEAD><BODY>
<H1>403 ERROR</H1>
<H2>The request could not be satisfied.</H2>
<HR noshade size="1px">
Request blocked.
We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner.
<BR clear="all">
If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation.
```

looks like this might be a temporary server-side issue (hopefully)
@Tama47 Your cookies were exposed in your original post's log. I've since edited it and removed them, but you should still sign out of all your CR sessions to be on the safe side. The original post was emailed to anyone who watches the repository and may be available via the github API or wayback machine, etc. I'd suggest changing your password as well
Any news on this? I got the same problem, always getting 403 even when I try to login and get token and so on. 
@bashonly Thanks for letting me know and editing it out! I didn't know that running the yt-dlp with the -vU flag would include them. Should I not have passed --cookies-from-browser? Or was I supposed to remove them later? Also, you can mark the discussion regarding cookies as off topic.
@HiSHiR0 Bashonly said it's a server-side issue, so maybe the servers are just down for a bit? Hopefully, the issue just fixes itself in a few days.

Edit: @bashonly wouldn't this affect regular streaming though? Or do they not use the m3u8? Because I can watch from Crunchyroll directly just fine.
Same here. I can only get it to play in firefox if I enable DRM. Hopefully this doesn't mean they disabled the non-drm streams entirely.
@AgentConDier You can no longer play the stream with DRM disabled? I hope they are not doing what Hidive did…
DRM free ist still available. I have wrote a script myself and those streams are still available. Only requests to endpoints like token and so on ending up in 403
With `--impersonate chrome:110` I got a bit further. But then it failed again with a 403 error on the last step.

<details><summary>Details</summary>

```
[debug] Invoking ffmpeg downloader on "https://pl.crunchyroll.com/evs3/cf13ecc54f2d00ebac3c7818bf7983dd/assets/d2482e99d16d79af6cc74670ee3bc9ef_,5069720.mp4,5069721.mp4,5069719.mp4,5069718.mp4,5069717.mp4,.urlset/master.m3u8?Policy=__REDACTED__ path=/; domain=.crunchyroll.com;
SSRT_GuUe=__REDACTED__ path=/; domain=.crunchyroll.com;
_ga=__REDACTED__ path=/; domain=.crunchyroll.com;
_ga_SYYQC1VW88=__REDACTED__ path=/; domain=.crunchyroll.com;
ab.storage.deviceId.__REDACTED__=__REDACTED__ path=/; domain=.crunchyroll.com;
ab.storage.sessionId.__REDACTED__=__REDACTED__ path=/; domain=.crunchyroll.com;
ab.storage.userId.__REDACTED__=__REDACTED__ path=/; domain=.crunchyroll.com;
ajs_anonymous_id=__REDACTED__ path=/; domain=.crunchyroll.com;
ajs_user_id=__REDACTED__ path=/; domain=.crunchyroll.com;
c_locale=__REDACTED__ path=/; domain=.crunchyroll.com;
c_visitor=__REDACTED__ path=/; domain=.crunchyroll.com;
cf_clearance=__REDACTED__ path=/; domain=.crunchyroll.com;
etp_rt=__REDACTED__ path=/; domain=.crunchyroll.com;
__cf_bm=__REDACTED__ path=/; domain=.crunchyroll.com;
' -headers 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=__REDACTED__q=0.8
Accept-Language: en-us,en;q=0.5
Sec-Fetch-Mode: navigate
' -i 'https://pl.crunchyroll.com/evs3/cf13ecc54f2d00ebac3c7818bf7983dd/assets/d2482e99d16d79af6cc74670ee3bc9ef_,5069720.mp4,5069721.mp4,5069719.mp4,5069718.mp4,5069717.mp4,.urlset/master.m3u8?Policy=__REDACTED__&Signature=__REDACTED__&Key-Pair-Id=__REDACTED__' -c copy -f mp4 'file:KAGUYA-SAMA： LOVE IS WAR/S25/E04 - Kaguya macht es nichts aus.mp4.part'
ffmpeg version 4.3.5-0+deb11u1+rpt2 Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr --extra-version=0+deb11u1+rpt2 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-mmal --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --enable-sand --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[tcp @ 0x5564a9dcc0] Starting connection attempt to 2600:9000:2070:8c00:9:dffa:87c0:93a1 port 443
[tcp @ 0x5564a9dcc0] Successfully connected to 2600:9000:2070:8c00:9:dffa:87c0:93a1 port 443
[https @ 0x5564aede10] HTTP error 403 Forbidden
https://pl.crunchyroll.com/evs3/cf13ecc54f2d00ebac3c7818bf7983dd/assets/d2482e99d16d79af6cc74670ee3bc9ef_,5069720.mp4,5069721.mp4,5069719.mp4,5069718.mp4,5069717.mp4,.urlset/master.m3u8?Policy=__REDACTED__&Signature=__REDACTED__&Key-Pair-Id=__REDACTED__
```

</details> 
@KasumiDev @HiSHiR0 the 403 error on the final/m3u8 step ***is*** the issue. Any 403 errors occurring prior to that are a different known issue tracked by #7442 (with known solutions/workarounds).

@HiSHiR0 are you willing to share how your script is able to download the HLS stream without getting 403'd?
Unfortunately I can’t share that script cause it’s part of a larger project. But normally ytdlp should also be able to grab those streams. 

Not really sure if that problem is only about cloudflare I saw on their status site that since yesterday there are marked problems with their apps and till yesterday login with credentials worked perfect. But maybe they made adjustments on their cf protection 
The m3u8 issue (this issue) has nothing to do with cloudflare AFAICT. The error response body posted above specifically states the request was blocked by cloud**front**

Resolving patch:
diff --git a/yt_dlp/extractor/crunchyroll.py b/yt_dlp/extractor/crunchyroll.py
--- a/yt_dlp/extractor/crunchyroll.py
+++ b/yt_dlp/extractor/crunchyroll.py
@@ -136,7 +136,7 @@ def _call_api(self, path, internal_id, lang, note='api', query={}):
         return result
 
     def _extract_formats(self, stream_response, display_id=None):
-        requested_formats = self._configuration_arg('format') or ['adaptive_hls']
+        requested_formats = self._configuration_arg('format') or ['vo_adaptive_hls']
         available_formats = {}
         for stream_type, streams in traverse_obj(
                 stream_response, (('streams', ('data', 0)), {dict.items}, ...)):


Test patch: