Repository: yt-dlp
Issue: AdultSwim: 404 errors on all payload fragments for certain videos
Labels: site-bug,triage

### 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

United States

### Provide a description that is worded well enough to be understood

I'm trying to download season-2 episodes of “Ghost in the Shell: Stand Alone Complex” from the Adult Swim website. Season 1 episodes download without difficulty, but season 2 fails 100% of the time with 404 errors downloading any fragment, whether of the subtitles file(s) or of the video. I'm able to play the video, with captions, in Safari.

I'm downloading the hls-8628 format of the video. I tried both `--downloader m3u8:native` and `--downloader m3u8:ffmpeg` and both failed with 404s. The verbose output below is with neither, and is consistent with the native-downloader output.

I have tried this on both Raspberry Pi OS and macOS. No difference.  
I have tested yt-dlp versions 2023.10.13, 2024.04.09 (I updated today upon encountering this), and [yt-dlp master 2024.05.18.183345](https://github.com/yt-dlp/yt-dlp-master-builds/releases/tag/2024.05.18.183345). No difference.

### 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', '--downloader-args', 'ffmpeg:-http_persistent 0', '--downloader-args', 'ffmpeg:-loglevel warning -stats', '--embed-subs', '--format=hls-8628', '--add-metadata', '--embed-thumbnail', '--embed-chapters', '--sub-langs=en', 'https://www.adultswim.com/videos/ghost-in-the-shell/reembody']
[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.04.09 from yt-dlp/yt-dlp [ff0779267] (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, phantomjs broken
[debug] Optional libraries: Cryptodome-3.19.0, brotli-1.1.0, certifi-2020.06.20, mutagen-1.47.0, requests-2.32.0, sqlite3-3.34.1, urllib3-2.2.1, websockets-12.0
[debug] Proxy map: {}
[debug] Request Handlers: urllib, requests, websockets
[debug] Loaded 1810 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2024.04.09 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2024.04.09 from yt-dlp/yt-dlp)
[AdultSwim] Extracting URL: https://www.adultswim.com/videos/ghost-in-the-shell/reembody
[AdultSwim] reembody: Downloading JSON metadata
[AdultSwim] 36974239e37c8560fc1a1379cd63c75c511ed658: Downloading JSON metadata
[AdultSwim] 36974239e37c8560fc1a1379cd63c75c511ed658: Downloading XML
[AdultSwim] 36974239e37c8560fc1a1379cd63c75c511ed658: Downloading m3u8 information
[AdultSwim] 1_QUa04dR56u-Hscc6qAkw: Downloading JSON metadata
[AdultSwim] 1_QUa04dR56u-Hscc6qAkw: Downloading m3u8 information
[info] 1_QUa04dR56u-Hscc6qAkw: Downloading subtitles: en
[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
[info] 1_QUa04dR56u-Hscc6qAkw: Downloading 1 format(s): hls-8628
[info] Writing video subtitles to: Ghost in the Shell - Reembody [1_QUa04dR56u-Hscc6qAkw].en.scc
[debug] Invoking http downloader on "http://amd.cdn.turner.com/adultswim/episodes/us_geo/gits2/2017/08/gits2_2ndgig_001_Digital_Reembody/cc_sidecars/gits2_2ndgig_001_Digital_Reembody_hls_scenarist.scc"
ERROR: Unable to download video subtitles for 'en': HTTP Error 404: Not Found
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 4320, in _write_subtitles
    self.dl(sub_filename, sub_copy, subtitle=True)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 3169, in dl
    return fd.download(name, new_info, subtitle)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/downloader/common.py", line 466, in download
    ret = self.real_download(filename, info_dict)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/downloader/http.py", line 369, in real_download
    establish_connection()
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/downloader/http.py", line 120, in establish_connection
    ctx.data = self.ydl.urlopen(request)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 4131, in urlopen
    return self._request_director.send(req)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/networking/common.py", line 115, in send
    response = handler.send(request)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/networking/_helper.py", line 208, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/networking/common.py", line 335, in send
    return self._send(request)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/networking/_requests.py", line 350, in _send
    raise HTTPError(res, redirect_loop=max_redirects_exceeded)
yt_dlp.networking.exceptions.HTTPError: HTTP Error 404: Not Found

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 1606, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 1762, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 1821, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 2982, in process_video_result
    self.process_info(new_info)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 3236, in process_info
    sub_files = self._write_subtitles(info_dict, temp_filename)
  File "/usr/local/lib/python3.9/dist-packages/yt_dlp/YoutubeDL.py", line 4328, in _write_subtitles
    raise DownloadError(msg)
yt_dlp.utils.DownloadError: Unable to download video subtitles for 'en': HTTP Error 404: Not Found
```