Repository: yt-dlp
Issue: ERROR: unable to download video data: IncompleteRead (16 bytes read) even If I use aria2c as an external downloader
Labels: geo-blocked,site-bug

### Checklist

- [X] I'm reporting a broken site
- [X] I've verified that I'm running yt-dlp version **2022.02.03**. ([update instructions](https://github.com/yt-dlp/yt-dlp#update))
- [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)
- [ ] 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

Latin America

### Description

Whenever I try to download something from PlutoTV I get this error: 

_ERROR: unable to download video data: IncompleteRead (16 bytes read)_

Even if I use aria2c as an external downloader, it is worth mentioning that I already updated yt-dlp (from source). I get this error when I try to download using this command
 _yt-dlp https://pluto.tv/es/on-demand/series/monster-rancher-las-ptv1/season/1/episode/tigre-del-viento-1999-1-5-ptv1_ 

or using this command 
_yt-dlp --downloader aria2c --no-hls-split-discontinuity -P "Download" https://pluto.tv/es/on-demand/series/monster-rancher-las-ptv1/season/1/episode/tigre-del-viento-1999-1-5-ptv1_

I have also tried this command to download the whole season:

_yt-dlp -vU --check-formats --downloader aria2c --no-hls-split-discontinuity -P "Download" -o "%(series)s/%(season_number)s - %(season)s/%(episode_number)s - %(episode)s.%(ext)s" "https://pluto.tv/es/on-demand/series/atlantis-series-las"_

### Verbose log

```shell
C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03>yt-dlp -vU --check-formats --downloader aria2c --no-hls-split-discontinuity -P "Download" -o "%(series)s/%(season_number)s - %(season)s/%(episode_number)s - %(episode)s.%(ext)s" "https://pluto.tv/es/on-demand/series/atlantis-series-las"
[debug] Command-line config: ['-vU', '--check-formats', '--downloader', 'aria2c', '--no-hls-split-discontinuity', '-P', 'Download', '-o', '%(series)s/%(season_number)s - %(season)s/%(episode_number)s - %(episode)s.%(ext)s', 'https://pluto.tv/es/on-demand/series/atlantis-series-las']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, err utf-8, pref cp1252
[debug] yt-dlp version 2022.02.03 [28469edd7] (source)
[debug] Lazy loading extractors is disabled
[debug] Plugins: ['SamplePluginIE', 'SamplePluginPP']
[debug] Python version 3.9.7 (CPython 64bit) - Windows-10-10.0.19042-SP0
[debug] exe versions: ffmpeg git-2019-10-31-7c872df, ffprobe git-2019-10-31-7c872df
[debug] Optional libraries: Cryptodome, mutagen, sqlite, websockets
[debug] Proxy map: {}
Latest version: 2022.02.03, Current version: 2022.02.03
yt-dlp is up to date (2022.02.03)
[debug] [PlutoTV] Extracting URL: https://pluto.tv/es/on-demand/series/atlantis-series-las
[PlutoTV] atlantis-series-las: Downloading JSON metadata
[PlutoTV] 6176be9a829284001a945303: Downloading m3u8 information
[PlutoTV] 6176be9a829284001a945303: Downloading m3u8 playlist
[PlutoTV] 6176be9a829284001a945303: Downloading m3u8 playlist
[PlutoTV] 6176be9a829284001a945303: Downloading m3u8 playlist
[PlutoTV] 6176be9a829284001a945303: Downloading m3u8 playlist
[PlutoTV] 6176be9a829284001a945303: Downloading m3u8 playlist
[PlutoTV] 6176be9a829284001a945303: 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
[download] Downloading playlist: Atlantis
[PlutoTV] playlist Atlantis: Collected 26 videos; downloading 26 of them
[download] Downloading video 1 of 26
[debug] Default format spec: bestvideo*+bestaudio/best
[info] Testing format hls-2453
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 545
[download] Destination: C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\Download\tmp4_vpqr10.tmp
[download] 100% of 10.00KiB in 00:00
[info] Testing format hls-2453
[hlsnative] Downloading m3u8 manifest
[hlsnative] Total fragments: 545
[download] Destination: C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\Download\tmpz9h1i4ov.tmp
[download] 100% of 10.00KiB in 00:00
[info] 6176be9a829284001a945303: Downloading 1 format(s): hls-2453
[debug] Invoking downloader on "https://siloh-latam-aka.plutotv.net/a61d00_BBC/clip/6176be9a829284001a9452eb_The_Earth_Bull/720p/20211027_095929/hls/0-end/hls_2400.m3u8"
[hlsnative] Downloading m3u8 manifest
[hlsnative] Fragment downloads will be delegated to aria2c
[hlsnative] Total fragments: 545
[download] Destination: Download\Atlantis\1 - Season 1\1 - El Toro de la Tierra.mp4
[debug] aria2c command line: aria2c -c "--console-log-level=warn" "--summary-interval=0" "--download-result=hide" "--file-allocation=none" -x16 -j16 -s16 "--allow-overwrite=true" "--allow-piece-length-change=true" --header "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" --header "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" --header "Accept-Encoding: gzip, deflate" --header "Accept-Language: en-us,en;q=0.5" --header "Sec-Fetch-Mode: navigate" "--check-certificate=true" "--remote-time=true" "--show-console-readout=true" --dir ".\Download\Atlantis\1 - Season 1\" "--auto-file-renaming=false" "--file-allocation=none" "--uri-selector=inorder" -i "Download\Atlantis\1 - Season 1\1 - El Toro de la Tierra.mp4.part.frag.urls"
[#a94fca 1.4MiB/1.5MiB(91%) CN:1 DL:269KiB]ERROR: unable to download video data: IncompleteRead(16 bytes read)
Traceback (most recent call last):
  File "C:\Users\Charles Dickens\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 559, in _get_chunk_left
    chunk_left = self._read_next_chunk_size()
  File "C:\Users\Charles Dickens\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 526, in _read_next_chunk_size
    return int(line, 16)
ValueError: invalid literal for int() with base 16: b''

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Charles Dickens\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 576, in _readall_chunked
    chunk_left = self._get_chunk_left()
  File "C:\Users\Charles Dickens\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 561, in _get_chunk_left
    raise IncompleteRead(b'')
http.client.IncompleteRead: IncompleteRead(0 bytes read)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\yt_dlp\YoutubeDL.py", line 3086, in process_info
    success, real_download = self.dl(temp_filename, info_dict)
  File "C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\yt_dlp\YoutubeDL.py", line 2801, in dl
    return fd.download(name, new_info, subtitle)
  File "C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\yt_dlp\downloader\common.py", line 440, in download
    ret = self.real_download(filename, info_dict)
  File "C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\yt_dlp\downloader\hls.py", line 262, in real_download
    return fd.real_download(filename, info_dict)
  File "C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\yt_dlp\downloader\external.py", line 40, in real_download
    retval = self._call_downloader(tmpfilename, info_dict)
  File "C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\yt_dlp\downloader\external.py", line 159, in _call_downloader
    dest.write(decrypt_fragment(fragment, src.read()))
  File "C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\yt_dlp\downloader\fragment.py", line 363, in decrypt_fragment
    decrypt_info['KEY'] = decrypt_info.get('KEY') or _get_key(info_dict.get('_decryption_key_url') or decrypt_info['URI'])
  File "C:\Users\Charles Dickens\Desktop\ty\yt-dlp-2022.02.03\yt_dlp\downloader\fragment.py", line 355, in _get_key
    _key_cache[url] = self.ydl.urlopen(self._prepare_url(info_dict, url)).read()
  File "C:\Users\Charles Dickens\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 469, in read
    return self._readall_chunked()
  File "C:\Users\Charles Dickens\AppData\Local\Programs\Python\Python39\lib\http\client.py", line 583, in _readall_chunked
    raise IncompleteRead(b''.join(value))
http.client.IncompleteRead: IncompleteRead(16 bytes read)
```