]> jfr.im git - yt-dlp.git/blobdiff - yt_dlp/extractor/shemaroome.py
[extractor/youtube] Handle `consent.youtube`
[yt-dlp.git] / yt_dlp / extractor / shemaroome.py
index 00a5b00cdd4e52de4ad44a854f1b0d3934edd7c9..7a78c6e054aa9aaf18dc0bb1c6e189099fd92da6 100644 (file)
@@ -1,11 +1,7 @@
-# coding: utf-8
-from __future__ import unicode_literals
-
 from .common import InfoExtractor
-from ..aes import aes_cbc_decrypt
+from ..aes import aes_cbc_decrypt, unpad_pkcs7
 from ..compat import (
     compat_b64decode,
-    compat_ord,
 )
 from ..utils import (
     bytes_to_intlist,
@@ -76,10 +72,8 @@ def _real_extract(self, url):
         url_data = bytes_to_intlist(compat_b64decode(data_json['new_play_url']))
         key = bytes_to_intlist(compat_b64decode(data_json['key']))
         iv = [0] * 16
-        m3u8_url = intlist_to_bytes(aes_cbc_decrypt(url_data, key, iv))
-        m3u8_url = m3u8_url[:-compat_ord((m3u8_url[-1]))].decode('ascii')
+        m3u8_url = unpad_pkcs7(intlist_to_bytes(aes_cbc_decrypt(url_data, key, iv))).decode('ascii')
         formats, m3u8_subs = self._extract_m3u8_formats_and_subtitles(m3u8_url, video_id, fatal=False, headers={'stream_key': data_json['stream_key']})
-        self._sort_formats(formats)
 
         release_date = self._html_search_regex(
             (r'itemprop="uploadDate">\s*([\d-]+)', r'id="release_date" value="([\d-]+)'),