commit: a141473246997fce369599e1a8731e0f4bd32147
parent fcfe41367c0fbf235526543c2cc2f61f8fc7637a
Author: Michael Forney <mforney@mforney.org>
Date: Thu, 10 Feb 2022 13:41:23 -0800
yt-dlp: Update to 2022.02.04
Diffstat:
5 files changed, 62 insertions(+), 24 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,27 +1,27 @@
-From 52d1ea4b111432f7a8c3e14f06b4fc2431fe6a5b Mon Sep 17 00:00:00 2001
+From 80d23f5b00895685d4ab1535757dbd3ee88ad72d 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/compat.py | 8 ---
- yt_dlp/cookies.py | 69 --------------------
- yt_dlp/utils.py | 161 +---------------------------------------------
- 3 files changed, 1 insertion(+), 237 deletions(-)
+ yt_dlp/cookies.py | 76 ----------------------
+ yt_dlp/utils.py | 160 +---------------------------------------------
+ 3 files changed, 1 insertion(+), 243 deletions(-)
diff --git a/yt_dlp/compat.py b/yt_dlp/compat.py
-index 79c8e3494..28f3b065b 100644
+index b97d4512e..f02b8900b 100644
--- a/yt_dlp/compat.py
+++ b/yt_dlp/compat.py
-@@ -2,7 +2,6 @@
-
+@@ -3,7 +3,6 @@
import asyncio
import base64
+ import collections
-import ctypes
import getpass
import html
import html.parser
-@@ -34,12 +33,6 @@ class compat_HTMLParseError(Exception):
+@@ -35,12 +34,6 @@ class compat_HTMLParseError(Exception):
pass
@@ -34,7 +34,7 @@ index 79c8e3494..28f3b065b 100644
class _TreeBuilder(etree.TreeBuilder):
def doctype(self, name, pubid, system):
pass
-@@ -249,7 +242,6 @@ __all__ = [
+@@ -254,7 +247,6 @@ __all__ = [
'compat_cookiejar_Cookie',
'compat_cookies',
'compat_cookies_SimpleCookie',
@@ -43,16 +43,17 @@ index 79c8e3494..28f3b065b 100644
'compat_etree_fromstring',
'compat_etree_register_namespace',
diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py
-index ec68a809d..0ea322074 100644
+index fc033a8ae..7ccf9b19e 100644
--- a/yt_dlp/cookies.py
+++ b/yt_dlp/cookies.py
-@@ -1,4 +1,3 @@
+@@ -1,5 +1,4 @@
+ import contextlib
-import ctypes
import json
import os
import shutil
-@@ -311,8 +310,6 @@ def get_cookie_decryptor(browser_root, browser_keyring_name, logger):
- return LinuxChromeCookieDecryptor(browser_keyring_name, logger)
+@@ -323,8 +322,6 @@ def get_cookie_decryptor(browser_root, browser_keyring_name, logger, *, keyring=
+ return LinuxChromeCookieDecryptor(browser_keyring_name, logger, keyring=keyring)
elif sys.platform == 'darwin':
return MacChromeCookieDecryptor(browser_keyring_name, logger)
- elif sys.platform == 'win32':
@@ -60,7 +61,7 @@ index ec68a809d..0ea322074 100644
else:
raise NotImplementedError('Chrome cookie decryption is not supported '
'on this platform: {}'.format(sys.platform))
-@@ -379,40 +376,6 @@ class MacChromeCookieDecryptor(ChromeCookieDecryptor):
+@@ -404,47 +401,6 @@ class MacChromeCookieDecryptor(ChromeCookieDecryptor):
return encrypted_value
@@ -68,12 +69,18 @@ index ec68a809d..0ea322074 100644
- def __init__(self, browser_root, logger):
- self._logger = logger
- self._v10_key = _get_windows_v10_key(browser_root, logger)
+- self._cookie_counts = {'v10': 0, 'other': 0}
+-
+- @property
+- def cookie_counts(self):
+- return self._cookie_counts
-
- def decrypt(self, encrypted_value):
- version = encrypted_value[:3]
- ciphertext = encrypted_value[3:]
-
- if version == b'v10':
+- self._cookie_counts['v10'] += 1
- if self._v10_key is None:
- self._logger.warning('cannot decrypt v10 cookies: no key found', only_once=True)
- return None
@@ -93,6 +100,7 @@ index ec68a809d..0ea322074 100644
- return _decrypt_aes_gcm(ciphertext, self._v10_key, nonce, authentication_tag, self._logger)
-
- else:
+- self._cookie_counts['other'] += 1
- # any other prefix means the data is DPAPI encrypted
- # https://chromium.googlesource.com/chromium/src/+/refs/heads/main/components/os_crypt/os_crypt_win.cc
- return _decrypt_windows_dpapi(encrypted_value, self._logger).decode('utf-8')
@@ -101,7 +109,7 @@ index ec68a809d..0ea322074 100644
def _extract_safari_cookies(profile, logger):
if profile is not None:
logger.error('safari does not support profiles')
-@@ -663,38 +626,6 @@ def _decrypt_aes_gcm(ciphertext, key, nonce, authentication_tag, logger):
+@@ -872,38 +828,6 @@ def _decrypt_aes_gcm(ciphertext, key, nonce, authentication_tag, logger):
return None
@@ -141,7 +149,7 @@ index ec68a809d..0ea322074 100644
return os.environ.get('XDG_CONFIG_HOME', os.path.expanduser('~/.config'))
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
-index 81c95f3e9..34b2eab51 100644
+index fe1096168..4f8e75642 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -9,7 +9,6 @@ import calendar
@@ -160,7 +168,7 @@ index 81c95f3e9..34b2eab51 100644
compat_etree_fromstring,
compat_expanduser,
compat_html_entities,
-@@ -1857,90 +1855,11 @@ def get_windows_version():
+@@ -1967,89 +1965,11 @@ def get_windows_version():
return None
@@ -169,7 +177,6 @@ index 81c95f3e9..34b2eab51 100644
- False if it has yet to be written out."""
- # Adapted from http://stackoverflow.com/a/3259271/35070
-
-- import ctypes
- import ctypes.wintypes
-
- WIN_OUTPUT_IDS = {
@@ -251,7 +258,7 @@ index 81c95f3e9..34b2eab51 100644
if ('b' in getattr(out, 'mode', '')
or sys.version_info[0] < 3): # Python 2 lies about mode of sys.stderr
byt = s.encode(encoding or preferredencoding(), 'ignore')
-@@ -1969,62 +1888,6 @@ def intlist_to_bytes(xs):
+@@ -2078,62 +1998,6 @@ def intlist_to_bytes(xs):
return compat_struct_pack('%dB' % len(xs), *xs)
@@ -314,7 +321,7 @@ index 81c95f3e9..34b2eab51 100644
# Some platforms, such as Jython, is missing fcntl
try:
import fcntl
-@@ -2287,29 +2150,7 @@ def fix_xml_ampersands(xml_str):
+@@ -2407,29 +2271,7 @@ def fix_xml_ampersands(xml_str):
def setproctitle(title):
@@ -346,5 +353,5 @@ index 81c95f3e9..34b2eab51 100644
def remove_start(s, start):
--
-2.34.0
+2.34.1
diff --git a/pkg/yt-dlp/pylibs.txt b/pkg/yt-dlp/pylibs.txt
@@ -114,6 +114,7 @@ yt_dlp/extractor/buzzfeed.py
yt_dlp/extractor/byutv.py
yt_dlp/extractor/c56.py
yt_dlp/extractor/cableav.py
+yt_dlp/extractor/callin.py
yt_dlp/extractor/cam4.py
yt_dlp/extractor/camdemy.py
yt_dlp/extractor/cammodels.py
@@ -171,6 +172,7 @@ yt_dlp/extractor/cozytv.py
yt_dlp/extractor/cracked.py
yt_dlp/extractor/crackle.py
yt_dlp/extractor/crooksandliars.py
+yt_dlp/extractor/crowdbunker.py
yt_dlp/extractor/crunchyroll.py
yt_dlp/extractor/cspan.py
yt_dlp/extractor/ctsnews.py
@@ -179,6 +181,7 @@ yt_dlp/extractor/ctvnews.py
yt_dlp/extractor/cultureunplugged.py
yt_dlp/extractor/curiositystream.py
yt_dlp/extractor/cwtv.py
+yt_dlp/extractor/daftsex.py
yt_dlp/extractor/dailymail.py
yt_dlp/extractor/dailymotion.py
yt_dlp/extractor/damtomo.py
@@ -191,6 +194,7 @@ yt_dlp/extractor/democracynow.py
yt_dlp/extractor/dfb.py
yt_dlp/extractor/dhm.py
yt_dlp/extractor/digg.py
+yt_dlp/extractor/digitalconcerthall.py
yt_dlp/extractor/digiteka.py
yt_dlp/extractor/discovery.py
yt_dlp/extractor/discoverygo.py
@@ -204,7 +208,9 @@ yt_dlp/extractor/douyutv.py
yt_dlp/extractor/dplay.py
yt_dlp/extractor/drbonanza.py
yt_dlp/extractor/dreisat.py
+yt_dlp/extractor/drooble.py
yt_dlp/extractor/dropbox.py
+yt_dlp/extractor/dropout.py
yt_dlp/extractor/drtuber.py
yt_dlp/extractor/drtv.py
yt_dlp/extractor/dtube.py
@@ -228,10 +234,12 @@ yt_dlp/extractor/engadget.py
yt_dlp/extractor/epicon.py
yt_dlp/extractor/eporner.py
yt_dlp/extractor/eroprofile.py
+yt_dlp/extractor/ertgr.py
yt_dlp/extractor/escapist.py
yt_dlp/extractor/espn.py
yt_dlp/extractor/esri.py
yt_dlp/extractor/europa.py
+yt_dlp/extractor/europeantour.py
yt_dlp/extractor/euscreen.py
yt_dlp/extractor/everyonesmixtape.py
yt_dlp/extractor/expotv.py
@@ -275,6 +283,7 @@ yt_dlp/extractor/fxnetworks.py
yt_dlp/extractor/gab.py
yt_dlp/extractor/gaia.py
yt_dlp/extractor/gameinformer.py
+yt_dlp/extractor/gamejolt.py
yt_dlp/extractor/gamespot.py
yt_dlp/extractor/gamestar.py
yt_dlp/extractor/gaskrank.py
@@ -289,8 +298,10 @@ yt_dlp/extractor/giga.py
yt_dlp/extractor/gigya.py
yt_dlp/extractor/glide.py
yt_dlp/extractor/globo.py
+yt_dlp/extractor/glomex.py
yt_dlp/extractor/go.py
yt_dlp/extractor/godtube.py
+yt_dlp/extractor/gofile.py
yt_dlp/extractor/golem.py
yt_dlp/extractor/googledrive.py
yt_dlp/extractor/googlepodcasts.py
@@ -320,6 +331,7 @@ yt_dlp/extractor/howcast.py
yt_dlp/extractor/howstuffworks.py
yt_dlp/extractor/hrfensehen.py
yt_dlp/extractor/hrti.py
+yt_dlp/extractor/hse.py
yt_dlp/extractor/huajiao.py
yt_dlp/extractor/huffpost.py
yt_dlp/extractor/hungama.py
@@ -357,6 +369,7 @@ yt_dlp/extractor/kankan.py
yt_dlp/extractor/karaoketv.py
yt_dlp/extractor/karrierevideos.py
yt_dlp/extractor/keezmovies.py
+yt_dlp/extractor/kelbyone.py
yt_dlp/extractor/ketnet.py
yt_dlp/extractor/khanacademy.py
yt_dlp/extractor/kickstarter.py
@@ -398,6 +411,7 @@ yt_dlp/extractor/lynda.py
yt_dlp/extractor/m6.py
yt_dlp/extractor/magentamusik360.py
yt_dlp/extractor/mailru.py
+yt_dlp/extractor/mainstreaming.py
yt_dlp/extractor/malltv.py
yt_dlp/extractor/mangomolo.py
yt_dlp/extractor/manoto.py
@@ -415,6 +429,7 @@ yt_dlp/extractor/mediaset.py
yt_dlp/extractor/mediasite.py
yt_dlp/extractor/medici.py
yt_dlp/extractor/megaphone.py
+yt_dlp/extractor/megatvcom.py
yt_dlp/extractor/meipai.py
yt_dlp/extractor/melonvod.py
yt_dlp/extractor/meta.py
@@ -451,6 +466,7 @@ yt_dlp/extractor/msn.py
yt_dlp/extractor/mtv.py
yt_dlp/extractor/muenchentv.py
yt_dlp/extractor/musescore.py
+yt_dlp/extractor/musicdex.py
yt_dlp/extractor/mwave.py
yt_dlp/extractor/mxplayer.py
yt_dlp/extractor/mychannels.py
@@ -460,6 +476,7 @@ yt_dlp/extractor/myvi.py
yt_dlp/extractor/myvideoge.py
yt_dlp/extractor/myvidster.py
yt_dlp/extractor/n1.py
+yt_dlp/extractor/nate.py
yt_dlp/extractor/nationalgeographic.py
yt_dlp/extractor/naver.py
yt_dlp/extractor/nba.py
@@ -472,6 +489,7 @@ yt_dlp/extractor/neteasemusic.py
yt_dlp/extractor/netzkino.py
yt_dlp/extractor/newgrounds.py
yt_dlp/extractor/newstube.py
+yt_dlp/extractor/newsy.py
yt_dlp/extractor/nextmedia.py
yt_dlp/extractor/nexx.py
yt_dlp/extractor/nfhsnetwork.py
@@ -489,6 +507,7 @@ yt_dlp/extractor/njpwworld.py
yt_dlp/extractor/nobelprize.py
yt_dlp/extractor/noco.py
yt_dlp/extractor/nonktube.py
+yt_dlp/extractor/noodlemagazine.py
yt_dlp/extractor/noovo.py
yt_dlp/extractor/normalboots.py
yt_dlp/extractor/nosvideo.py
@@ -519,6 +538,7 @@ yt_dlp/extractor/onefootball.py
yt_dlp/extractor/onet.py
yt_dlp/extractor/onionstudios.py
yt_dlp/extractor/ooyala.py
+yt_dlp/extractor/opencast.py
yt_dlp/extractor/openload.py
yt_dlp/extractor/openrec.py
yt_dlp/extractor/ora.py
@@ -546,6 +566,7 @@ yt_dlp/extractor/picarto.py
yt_dlp/extractor/piksel.py
yt_dlp/extractor/pinkbike.py
yt_dlp/extractor/pinterest.py
+yt_dlp/extractor/pixivsketch.py
yt_dlp/extractor/pladform.py
yt_dlp/extractor/planetmarathi.py
yt_dlp/extractor/platzi.py
@@ -560,12 +581,14 @@ yt_dlp/extractor/pluralsight.py
yt_dlp/extractor/plutotv.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
yt_dlp/extractor/popcorntimes.py
yt_dlp/extractor/popcorntv.py
yt_dlp/extractor/porn91.py
yt_dlp/extractor/porncom.py
+yt_dlp/extractor/pornez.py
yt_dlp/extractor/pornflip.py
yt_dlp/extractor/pornhd.py
yt_dlp/extractor/pornhub.py
@@ -575,6 +598,7 @@ yt_dlp/extractor/pornoxo.py
yt_dlp/extractor/presstv.py
yt_dlp/extractor/projectveritas.py
yt_dlp/extractor/prosiebensat1.py
+yt_dlp/extractor/prx.py
yt_dlp/extractor/puhutv.py
yt_dlp/extractor/puls4.py
yt_dlp/extractor/pyvideo.py
@@ -616,6 +640,7 @@ yt_dlp/extractor/rtbf.py
yt_dlp/extractor/rte.py
yt_dlp/extractor/rtl2.py
yt_dlp/extractor/rtlnl.py
+yt_dlp/extractor/rtnews.py
yt_dlp/extractor/rtp.py
yt_dlp/extractor/rtrfm.py
yt_dlp/extractor/rts.py
@@ -623,6 +648,7 @@ yt_dlp/extractor/rtve.py
yt_dlp/extractor/rtvnh.py
yt_dlp/extractor/rtvs.py
yt_dlp/extractor/ruhd.py
+yt_dlp/extractor/rule34video.py
yt_dlp/extractor/rumble.py
yt_dlp/extractor/rutube.py
yt_dlp/extractor/rutv.py
@@ -652,6 +678,7 @@ yt_dlp/extractor/showroomlive.py
yt_dlp/extractor/simplecast.py
yt_dlp/extractor/sina.py
yt_dlp/extractor/sixplay.py
+yt_dlp/extractor/skeb.py
yt_dlp/extractor/sky.py
yt_dlp/extractor/skyit.py
yt_dlp/extractor/skylinewebcams.py
@@ -745,6 +772,7 @@ yt_dlp/extractor/tinypic.py
yt_dlp/extractor/tmz.py
yt_dlp/extractor/tnaflix.py
yt_dlp/extractor/toggle.py
+yt_dlp/extractor/toggo.py
yt_dlp/extractor/tokentube.py
yt_dlp/extractor/tonline.py
yt_dlp/extractor/toongoggles.py
@@ -753,6 +781,7 @@ yt_dlp/extractor/toypics.py
yt_dlp/extractor/traileraddict.py
yt_dlp/extractor/trilulilu.py
yt_dlp/extractor/trovo.py
+yt_dlp/extractor/trueid.py
yt_dlp/extractor/trunews.py
yt_dlp/extractor/trutv.py
yt_dlp/extractor/tube8.py
@@ -779,6 +808,7 @@ yt_dlp/extractor/tvn24.py
yt_dlp/extractor/tvnet.py
yt_dlp/extractor/tvnoe.py
yt_dlp/extractor/tvnow.py
+yt_dlp/extractor/tvopengr.py
yt_dlp/extractor/tvp.py
yt_dlp/extractor/tvplay.py
yt_dlp/extractor/tvplayer.py
@@ -831,6 +861,7 @@ yt_dlp/extractor/viewlift.py
yt_dlp/extractor/viidea.py
yt_dlp/extractor/viki.py
yt_dlp/extractor/vimeo.py
+yt_dlp/extractor/vimm.py
yt_dlp/extractor/vimple.py
yt_dlp/extractor/vine.py
yt_dlp/extractor/viqeo.py
diff --git a/pkg/yt-dlp/sha256 b/pkg/yt-dlp/sha256
@@ -1 +1 @@
-bf0cc22d17ffbe59c0d0378026ff135a996b86c546ec9713d838f952dea61e0f yt-dlp.tar.gz
+c8dd119c28a5d256322ddb3a2fff72bc02ace43fc5880c0065d97f7a48d7a8e3 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/2021.12.01/yt-dlp.tar.gz"
+url = "https://github.com/yt-dlp/yt-dlp/releases/download/2022.02.04/yt-dlp.tar.gz"
diff --git a/pkg/yt-dlp/ver b/pkg/yt-dlp/ver
@@ -1 +1 @@
-2021.12.01 r0
+2022.02.04 r0