summaryrefslogtreecommitdiff
path: root/pkg/yt-dlp/patch
diff options
context:
space:
mode:
authorhovercats <hovercatswithlasereyes@protonmail.com>2025-01-21 20:27:36 +0100
committerMichael Forney <mforney@mforney.org>2025-02-01 20:04:32 -0800
commit291844e122e255c128602ebe8a1267942f5eec96 (patch)
tree3e4802a5193ac7a386a379aa6eb00423d25073d1 /pkg/yt-dlp/patch
parent5534966dacec277867596ec2af030691801a7574 (diff)
yt-dlp: 2025.01.15
Diffstat (limited to 'pkg/yt-dlp/patch')
-rw-r--r--pkg/yt-dlp/patch/0001-Disable-use-of-ctypes-and-dynamic-loading.patch46
1 files changed, 25 insertions, 21 deletions
diff --git a/pkg/yt-dlp/patch/0001-Disable-use-of-ctypes-and-dynamic-loading.patch b/pkg/yt-dlp/patch/0001-Disable-use-of-ctypes-and-dynamic-loading.patch
index 96e66dcf..5a72e434 100644
--- a/pkg/yt-dlp/patch/0001-Disable-use-of-ctypes-and-dynamic-loading.patch
+++ b/pkg/yt-dlp/patch/0001-Disable-use-of-ctypes-and-dynamic-loading.patch
@@ -1,35 +1,36 @@
-From 85781c9dc7a882b8638dcfdd60da14261178f437 Mon Sep 17 00:00:00 2001
+From 1b166dc9a491440db655fa3c7b49df329683ef45 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Mon, 4 Jul 2016 16:14:18 -0700
Subject: [PATCH] Disable use of ctypes and dynamic loading
---
- yt_dlp/cookies.py | 100 -----------------------------------------
- yt_dlp/utils/_utils.py | 85 +----------------------------------
- 2 files changed, 2 insertions(+), 183 deletions(-)
+ yt_dlp/cookies.py | 104 -----------------------------------------
+ yt_dlp/utils/_utils.py | 85 +--------------------------------
+ 2 files changed, 2 insertions(+), 187 deletions(-)
diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py
-index 070d2fcb9..e527fdec4 100644
+index fad323c90..5e5c9df81 100644
--- a/yt_dlp/cookies.py
+++ b/yt_dlp/cookies.py
-@@ -400,8 +400,6 @@ def decrypt(self, encrypted_value):
- def get_cookie_decryptor(browser_root, browser_keyring_name, logger, *, keyring=None):
+@@ -416,8 +416,6 @@ def decrypt(self, encrypted_value):
+ def get_cookie_decryptor(browser_root, browser_keyring_name, logger, *, keyring=None, meta_version=None):
if sys.platform == 'darwin':
- return MacChromeCookieDecryptor(browser_keyring_name, logger)
+ return MacChromeCookieDecryptor(browser_keyring_name, logger, meta_version=meta_version)
- elif sys.platform in ('win32', 'cygwin'):
-- return WindowsChromeCookieDecryptor(browser_root, logger)
- return LinuxChromeCookieDecryptor(browser_keyring_name, logger, keyring=keyring)
+- return WindowsChromeCookieDecryptor(browser_root, logger, meta_version=meta_version)
+ return LinuxChromeCookieDecryptor(browser_keyring_name, logger, keyring=keyring, meta_version=meta_version)
-@@ -488,43 +486,6 @@ def decrypt(self, encrypted_value):
+@@ -511,46 +509,6 @@ def decrypt(self, encrypted_value):
return encrypted_value
-class WindowsChromeCookieDecryptor(ChromeCookieDecryptor):
-- def __init__(self, browser_root, logger):
+- def __init__(self, browser_root, logger, meta_version=None):
- self._logger = logger
- self._v10_key = _get_windows_v10_key(browser_root, logger)
- self._cookie_counts = {'v10': 0, 'other': 0}
+- self._meta_version = meta_version or 0
-
- def decrypt(self, encrypted_value):
- version = encrypted_value[:3]
@@ -53,7 +54,9 @@ index 070d2fcb9..e527fdec4 100644
- ciphertext = raw_ciphertext[nonce_length:-authentication_tag_length]
- authentication_tag = raw_ciphertext[-authentication_tag_length:]
-
-- return _decrypt_aes_gcm(ciphertext, self._v10_key, nonce, authentication_tag, self._logger)
+- return _decrypt_aes_gcm(
+- ciphertext, self._v10_key, nonce, authentication_tag, self._logger,
+- hash_prefix=self._meta_version >= 24)
-
- else:
- self._cookie_counts['other'] += 1
@@ -65,7 +68,7 @@ index 070d2fcb9..e527fdec4 100644
def _extract_safari_cookies(profile, logger):
if sys.platform != 'darwin':
raise ValueError(f'unsupported platform: {sys.platform}')
-@@ -971,33 +932,6 @@ def _get_mac_keyring_password(browser_keyring_name, logger):
+@@ -997,33 +955,6 @@ def _get_mac_keyring_password(browser_keyring_name, logger):
return None
@@ -99,7 +102,7 @@ index 070d2fcb9..e527fdec4 100644
def pbkdf2_sha1(password, salt, iterations, key_length):
return hashlib.pbkdf2_hmac('sha1', password, salt, iterations, key_length)
-@@ -1027,40 +961,6 @@ def _decrypt_aes_gcm(ciphertext, key, nonce, authentication_tag, logger):
+@@ -1057,41 +988,6 @@ def _decrypt_aes_gcm(ciphertext, key, nonce, authentication_tag, logger, hash_pr
return None
@@ -129,8 +132,9 @@ index 070d2fcb9..e527fdec4 100644
- ctypes.byref(blob_out), # pDataOut
- )
- if not ret:
-- logger.warning('failed to decrypt with DPAPI', only_once=True)
-- return None
+- message = 'Failed to decrypt with DPAPI. See https://github.com/yt-dlp/yt-dlp/issues/10927 for more info'
+- logger.error(message)
+- raise DownloadError(message) # force exit
-
- result = ctypes.string_at(blob_out.pbData, blob_out.cbData)
- ctypes.windll.kernel32.LocalFree(blob_out.pbData)
@@ -141,10 +145,10 @@ index 070d2fcb9..e527fdec4 100644
return os.environ.get('XDG_CONFIG_HOME', os.path.expanduser('~/.config'))
diff --git a/yt_dlp/utils/_utils.py b/yt_dlp/utils/_utils.py
-index 0d3e707c5..357f145d7 100644
+index 699bf1e7f..710668036 100644
--- a/yt_dlp/utils/_utils.py
+++ b/yt_dlp/utils/_utils.py
-@@ -1482,64 +1482,7 @@ def __init__(self):
+@@ -1506,64 +1506,7 @@ def __init__(self):
super().__init__(self.msg)
@@ -210,7 +214,7 @@ index 0d3e707c5..357f145d7 100644
try:
import fcntl
-@@ -1888,31 +1831,7 @@ def fix_xml_ampersands(xml_str):
+@@ -1912,31 +1855,7 @@ def fix_xml_ampersands(xml_str):
def setproctitle(title):
@@ -244,5 +248,5 @@ index 0d3e707c5..357f145d7 100644
def remove_start(s, start):
--
-2.44.0
+2.45.2