commit: 291844e122e255c128602ebe8a1267942f5eec96
parent 5534966dacec277867596ec2af030691801a7574
Author: hovercats <hovercatswithlasereyes@protonmail.com>
Date: Tue, 21 Jan 2025 20:27:36 +0100
yt-dlp: 2025.01.15
Diffstat:
5 files changed, 46 insertions(+), 31 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
@@ -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
diff --git a/pkg/yt-dlp/pylibs.txt b/pkg/yt-dlp/pylibs.txt
@@ -10,7 +10,6 @@ yt_dlp/compat/__init__.py
yt_dlp/compat/_deprecated.py
yt_dlp/compat/_legacy.py
yt_dlp/compat/compat_utils.py
-yt_dlp/compat/functools.py
yt_dlp/compat/imghdr.py
yt_dlp/compat/shutil.py
yt_dlp/compat/types.py
@@ -105,8 +104,10 @@ yt_dlp/extractor/baidu.py
yt_dlp/extractor/banbye.py
yt_dlp/extractor/bandaichannel.py
yt_dlp/extractor/bandcamp.py
+yt_dlp/extractor/bandlab.py
yt_dlp/extractor/bannedvideo.py
yt_dlp/extractor/bbc.py
+yt_dlp/extractor/beacon.py
yt_dlp/extractor/beatbump.py
yt_dlp/extractor/beatport.py
yt_dlp/extractor/beeg.py
@@ -128,6 +129,7 @@ yt_dlp/extractor/bleacherreport.py
yt_dlp/extractor/blerp.py
yt_dlp/extractor/blogger.py
yt_dlp/extractor/bloomberg.py
+yt_dlp/extractor/bluesky.py
yt_dlp/extractor/bokecc.py
yt_dlp/extractor/bongacams.py
yt_dlp/extractor/boosty.py
@@ -249,6 +251,7 @@ yt_dlp/extractor/dreisat.py
yt_dlp/extractor/drooble.py
yt_dlp/extractor/dropbox.py
yt_dlp/extractor/dropout.py
+yt_dlp/extractor/drtalks.py
yt_dlp/extractor/drtuber.py
yt_dlp/extractor/drtv.py
yt_dlp/extractor/dtube.py
@@ -322,6 +325,7 @@ yt_dlp/extractor/funker530.py
yt_dlp/extractor/fuyintv.py
yt_dlp/extractor/gab.py
yt_dlp/extractor/gaia.py
+yt_dlp/extractor/gamedevtv.py
yt_dlp/extractor/gamejolt.py
yt_dlp/extractor/gamespot.py
yt_dlp/extractor/gamestar.py
@@ -333,6 +337,7 @@ yt_dlp/extractor/gedidigital.py
yt_dlp/extractor/generic.py
yt_dlp/extractor/genericembeds.py
yt_dlp/extractor/genius.py
+yt_dlp/extractor/germanupa.py
yt_dlp/extractor/getcourseru.py
yt_dlp/extractor/gettr.py
yt_dlp/extractor/giantbomb.py
@@ -429,10 +434,12 @@ yt_dlp/extractor/kaltura.py
yt_dlp/extractor/kankanews.py
yt_dlp/extractor/karaoketv.py
yt_dlp/extractor/kelbyone.py
+yt_dlp/extractor/kenh14.py
yt_dlp/extractor/khanacademy.py
yt_dlp/extractor/kick.py
yt_dlp/extractor/kicker.py
yt_dlp/extractor/kickstarter.py
+yt_dlp/extractor/kika.py
yt_dlp/extractor/kinja.py
yt_dlp/extractor/kinopoisk.py
yt_dlp/extractor/kommunetv.py
@@ -471,7 +478,7 @@ yt_dlp/extractor/litv.py
yt_dlp/extractor/livejournal.py
yt_dlp/extractor/livestream.py
yt_dlp/extractor/livestreamfails.py
-yt_dlp/extractor/lnkgo.py
+yt_dlp/extractor/lnk.py
yt_dlp/extractor/loom.py
yt_dlp/extractor/lovehomeporn.py
yt_dlp/extractor/lrt.py
@@ -510,7 +517,6 @@ yt_dlp/extractor/metacritic.py
yt_dlp/extractor/mgtv.py
yt_dlp/extractor/microsoftembed.py
yt_dlp/extractor/microsoftstream.py
-yt_dlp/extractor/mildom.py
yt_dlp/extractor/minds.py
yt_dlp/extractor/minoto.py
yt_dlp/extractor/mirrativ.py
@@ -522,6 +528,7 @@ yt_dlp/extractor/mixcloud.py
yt_dlp/extractor/mlb.py
yt_dlp/extractor/mlssoccer.py
yt_dlp/extractor/mocha.py
+yt_dlp/extractor/mojevideo.py
yt_dlp/extractor/mojvideo.py
yt_dlp/extractor/monstercat.py
yt_dlp/extractor/motherless.py
@@ -643,8 +650,8 @@ yt_dlp/extractor/pgatour.py
yt_dlp/extractor/philharmoniedeparis.py
yt_dlp/extractor/phoenix.py
yt_dlp/extractor/photobucket.py
+yt_dlp/extractor/pialive.py
yt_dlp/extractor/piapro.py
-yt_dlp/extractor/piaulizaportal.py
yt_dlp/extractor/picarto.py
yt_dlp/extractor/piksel.py
yt_dlp/extractor/pinkbike.py
@@ -659,10 +666,10 @@ yt_dlp/extractor/playtvak.py
yt_dlp/extractor/playwire.py
yt_dlp/extractor/pluralsight.py
yt_dlp/extractor/plutotv.py
+yt_dlp/extractor/plvideo.py
yt_dlp/extractor/podbayfm.py
yt_dlp/extractor/podchaser.py
yt_dlp/extractor/podomatic.py
-yt_dlp/extractor/pokemon.py
yt_dlp/extractor/pokergo.py
yt_dlp/extractor/polsatgo.py
yt_dlp/extractor/polskieradio.py
@@ -695,6 +702,7 @@ yt_dlp/extractor/radiode.py
yt_dlp/extractor/radiofrance.py
yt_dlp/extractor/radiojavan.py
yt_dlp/extractor/radiokapital.py
+yt_dlp/extractor/radioradicale.py
yt_dlp/extractor/radiozet.py
yt_dlp/extractor/radlive.py
yt_dlp/extractor/rai.py
@@ -751,10 +759,12 @@ yt_dlp/extractor/screen9.py
yt_dlp/extractor/screencast.py
yt_dlp/extractor/screencastify.py
yt_dlp/extractor/screencastomatic.py
+yt_dlp/extractor/screenrec.py
yt_dlp/extractor/scrippsnetworks.py
yt_dlp/extractor/scrolller.py
yt_dlp/extractor/scte.py
yt_dlp/extractor/sejmpl.py
+yt_dlp/extractor/sen.py
yt_dlp/extractor/senalcolombia.py
yt_dlp/extractor/senategov.py
yt_dlp/extractor/sendtonews.py
@@ -781,6 +791,7 @@ yt_dlp/extractor/slideshare.py
yt_dlp/extractor/slideslive.py
yt_dlp/extractor/slutload.py
yt_dlp/extractor/smotrim.py
+yt_dlp/extractor/snapchat.py
yt_dlp/extractor/snotr.py
yt_dlp/extractor/sohu.py
yt_dlp/extractor/sonyliv.py
@@ -921,6 +932,7 @@ yt_dlp/extractor/udn.py
yt_dlp/extractor/ufctv.py
yt_dlp/extractor/ukcolumn.py
yt_dlp/extractor/uktvplay.py
+yt_dlp/extractor/uliza.py
yt_dlp/extractor/umg.py
yt_dlp/extractor/unistra.py
yt_dlp/extractor/unity.py
@@ -937,7 +949,6 @@ yt_dlp/extractor/utreon.py
yt_dlp/extractor/varzesh3.py
yt_dlp/extractor/vbox7.py
yt_dlp/extractor/veo.py
-yt_dlp/extractor/veoh.py
yt_dlp/extractor/vesti.py
yt_dlp/extractor/vevo.py
yt_dlp/extractor/vgtv.py
@@ -951,6 +962,7 @@ yt_dlp/extractor/videofyme.py
yt_dlp/extractor/videoken.py
yt_dlp/extractor/videomore.py
yt_dlp/extractor/videopress.py
+yt_dlp/extractor/vidflex.py
yt_dlp/extractor/vidio.py
yt_dlp/extractor/vidlii.py
yt_dlp/extractor/vidly.py
@@ -960,7 +972,6 @@ yt_dlp/extractor/viidea.py
yt_dlp/extractor/viki.py
yt_dlp/extractor/vimeo.py
yt_dlp/extractor/vimm.py
-yt_dlp/extractor/vine.py
yt_dlp/extractor/viously.py
yt_dlp/extractor/viqeo.py
yt_dlp/extractor/viu.py
diff --git a/pkg/yt-dlp/sha256 b/pkg/yt-dlp/sha256
@@ -1 +1 @@
-e08331fb9a36eba56b4efd074b5b25fbf08413e9cb47009a28ecbffe47150310 yt-dlp.tar.gz
+e410c5fbbc84af848a02ac985bcfae6089586c62ffa95d1ed87dadd96babac8d yt-dlp.tar.gz
diff --git a/pkg/yt-dlp/url b/pkg/yt-dlp/url
@@ -1 +1 @@
-url = "https://github.com/yt-dlp/yt-dlp/releases/download/2024.08.06/yt-dlp.tar.gz"
+url = "https://github.com/yt-dlp/yt-dlp/releases/download/2025.01.15/yt-dlp.tar.gz"
diff --git a/pkg/yt-dlp/ver b/pkg/yt-dlp/ver
@@ -1 +1 @@
-2024.08.06 r0
+2025.01.15 r0