Repository: yt-dlp
Issue: [olympics.com] Data must be padded to 16 byte boundary in CBC mode
Labels: bug,core:downloader

### Checklist

- [X] I'm reporting a bug unrelated to a specific site
- [X] I've verified that I'm running yt-dlp version **2022.04.08** ([update instructions](https://github.com/yt-dlp/yt-dlp#update)) or later (specify commit)
- [X] I've checked that all provided URLs are alive and playable in a browser
- [X] I've checked that all URLs and arguments with special characters are [properly quoted or escaped](https://github.com/ytdl-org/youtube-dl#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 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)

### Description

Trying to download an olympics replay using the native downloader. I'm getting the same 16 byte padding error as in #1297 

### Verbose log

```shell
[debug] Command-line config: ['-vU', '-o', '%(upload_date)s %(title)s [%(id)s].%(ext)s', '--write-info-json', 'https://olympics.com/en/video/women-s-heat-1-2-skeleton-beijing-2022-replays']
[debug] System config "/etc/yt-dlp.conf": []
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, err utf-8, pref UTF-8
[debug] yt-dlp version 2022.04.08 [7884ade65]
[debug] Python version 3.8.10 (CPython 64bit) - Linux-5.4.162-1-pve-x86_64-with-glibc2.29
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 4.2.4, ffprobe 4.2.4
[debug] Optional libraries: brotli, certifi, Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
Latest version: 2022.04.08, Current version: 2022.04.08
yt-dlp is up to date (2022.04.08)
[debug] [OlympicsReplay] Extracting URL: https://olympics.com/en/video/women-s-heat-1-2-skeleton-beijing-2022-replays
[OlympicsReplay] women-s-heat-1-2-skeleton-beijing-2022-replays: Downloading webpage
[OlympicsReplay] bd56bbb2-545d-472f-97b0-72261ff43cc6: Downloading m3u8 url
[OlympicsReplay] bd56bbb2-545d-472f-97b0-72261ff43cc6: Downloading m3u8 information
[debug] Formats sorted by: hasvid, ie_pref, lang, quality, res, fps, hdr:12(7), vcodec:vp9.2(10), acodec, filesize, fs_approx, tbr, vbr, abr, asr, proto, vext, aext, hasaud, source, id
[debug] Default format spec: bestvideo*+bestaudio/best
[info] bd56bbb2-545d-472f-97b0-72261ff43cc6: Downloading 1 format(s): hls-6321+hls-audio_group-ENGLISH
[info] Writing video metadata as JSON to: 20220211 Women's Heat 1 & 2 - Skeleton _ Beijing 2022 Replays [bd56bbb2-545d-472f-97b0-72261ff43cc6].info.json
WARNING: Requested formats are incompatible for merge and will be merged into mkv
[debug] Invoking downloader on "https://vod-b.olympicchannel.com/output/bei1000234/hdntl=exp=1651208831~acl=%2f*~data=hdntl~hmac=b61c289241dc78ff269e4bf009f33a0e7d183c3cd74c94fb5411bd50a6fe493c/video_1920_6000000-1644750005.m3u8?aka_me_session_id=AAAAAAAAAAB%2fcmtiAAAAALga06PYRdjS8WBqGVmWAMcWSD232RBUvTRVjjtMdEpwR5jiQBy3vz+RqWOiVaXxf+f%2fSVdbHitZ&aka_media_format_type=hls"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 1887
[download] Destination: 20220211 Women's Heat 1 & 2 - Skeleton _ Beijing 2022 Replays [bd56bbb2-545d-472f-97b0-72261ff43cc6].fhls-6321.mp4
[download] 20220211 Women's Heat 1 & 2 - Skeleton _ Beijing 2022 Replays [bd56bbb2-545d-472f-97b0-72261ff43cc6].fhls-6321.mp4.part-Frag321 has already been downloaded
[download]  17.0% of ~5.39GiB at 98.23MiB/s ETA Unknown (frag 321/1887)ERROR: Data must be padded to 16 byte boundary in CBC mode
Traceback (most recent call last):
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/YoutubeDL.py", line 1408, in wrapper
    return func(self, *args, **kwargs)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/YoutubeDL.py", line 1492, in __extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/YoutubeDL.py", line 1548, in process_ie_result
    ie_result = self.process_video_result(ie_result, download=download)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/YoutubeDL.py", line 2648, in process_video_result
    self.process_info(new_info)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/YoutubeDL.py", line 3120, in process_info
    partial_success, real_download = self.dl(fname, new_info)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/YoutubeDL.py", line 2846, in dl
    return fd.download(name, new_info, subtitle)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/downloader/common.py", line 457, in download
    ret = self.real_download(filename, info_dict)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/downloader/hls.py", line 358, in real_download
    return self.download_and_append_fragments(ctx, fragments, info_dict)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/downloader/fragment.py", line 531, in download_and_append_fragments
    result = append_fragment(decrypt_fragment(fragment, self._read_fragment(ctx)), fragment['frag_index'], ctx)
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/downloader/fragment.py", line 375, in decrypt_fragment
    return unpad_pkcs7(aes_cbc_decrypt_bytes(frag_content, decrypt_info['KEY'], iv))
  File "/root/.local/lib/python3.8/site-packages/yt_dlp/aes.py", line 19, in aes_cbc_decrypt_bytes
    return compat_pycrypto_AES.new(key, compat_pycrypto_AES.MODE_CBC, iv).decrypt(data)
  File "/root/.local/lib/python3.8/site-packages/Cryptodome/Cipher/_mode_cbc.py", line 246, in decrypt
    raise ValueError("Data must be padded to %d byte boundary in CBC mode" % self.block_size)
ValueError: Data must be padded to 16 byte boundary in CBC mode
```