From 96933fc1b6043060498f2c85c25457bd526ba793 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Wed, 22 Sep 2021 00:15:56 +0530 Subject: [PATCH] [aria2c] Fix IV for some AES-128 streams Authored by: shirt --- yt_dlp/downloader/external.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/yt_dlp/downloader/external.py b/yt_dlp/downloader/external.py index 1057382e0b..a0d346c12e 100644 --- a/yt_dlp/downloader/external.py +++ b/yt_dlp/downloader/external.py @@ -11,6 +11,7 @@ from ..aes import aes_cbc_decrypt_bytes from ..compat import ( compat_setenv, compat_str, + compat_struct_pack, ) from ..postprocessor.ffmpeg import FFmpegPostProcessor, EXT_TO_OUT_FORMATS from ..utils import ( @@ -155,7 +156,7 @@ class ExternalFD(FileDownloader): decrypt_info = fragment.get('decrypt_info') if decrypt_info: if decrypt_info['METHOD'] == 'AES-128': - iv = decrypt_info.get('IV') + iv = decrypt_info.get('IV') or compat_struct_pack('>8xq', fragment['media_sequence']) decrypt_info['KEY'] = decrypt_info.get('KEY') or self.ydl.urlopen( self._prepare_url(info_dict, info_dict.get('_decryption_key_url') or decrypt_info['URI'])).read() encrypted_data = src.read()