]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/downloader/fragment.py
[fragments] Pad fragments before decrypting (#1298)
[yt-dlp.git] / yt_dlp / downloader / fragment.py
index 6a490131b112ed69e2af35300f8c0fab097c0cce..d0eaede7eef10193f798ee2ed5bbdbe02d10b246 100644 (file)
@@ -355,7 +355,8 @@ def decrypt_fragment(fragment, frag_content):
             # not what it decrypts to.
             if self.params.get('test', False):
                 return frag_content
-            decrypted_data = aes_cbc_decrypt_bytes(frag_content, decrypt_info['KEY'], iv)
+            padding_len = 16 - (len(frag_content) % 16)
+            decrypted_data = aes_cbc_decrypt_bytes(frag_content + bytes([padding_len] * padding_len), decrypt_info['KEY'], iv)
             return decrypted_data[:-decrypted_data[-1]]
 
         return decrypt_fragment