diff --git a/Changelog.md b/Changelog.md
index 95635350d5..f4b4f1e720 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -11,7 +11,7 @@
-->
-## 2023.01.02
+### 2023.01.02
* **Improve plugin architecture** by [Grub4K](https://github.com/Grub4K), [coletdjnz](https://github.com/coletdjnz), [flashdagger](https://github.com/flashdagger), [pukkandan](https://github.com/pukkandan)
* Plugins can be loaded in any distribution of yt-dlp (binary, pip, source, etc.) and can be distributed and installed as packages. See [the readme](https://github.com/yt-dlp/yt-dlp/tree/05997b6e98e638d97d409c65bb5eb86da68f3b64#plugins) for more information
diff --git a/Collaborators.md b/Collaborators.md
index 58748ec919..3bce437c9b 100644
--- a/Collaborators.md
+++ b/Collaborators.md
@@ -42,7 +42,7 @@ You can also find lists of all [contributors of yt-dlp](CONTRIBUTORS) and [autho
* Improved/fixed support for HiDive, HotStar, Hungama, LBRY, LinkedInLearning, Mxplayer, SonyLiv, TV2, Vimeo, VLive etc
-## [Lesmiscore](https://github.com/Lesmiscore) (nao20010128nao)
+## [Lesmiscore](https://github.com/Lesmiscore) (nao20010128nao)
**Bitcoin**: bc1qfd02r007cutfdjwjmyy9w23rjvtls6ncve7r3s
**Monacoin**: mona1q3tf7dzvshrhfe3md379xtvt2n22duhglv5dskr
diff --git a/pyproject.toml b/pyproject.toml
index 75e0100fef..97718ec431 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,3 +1,5 @@
[build-system]
-requires = ['setuptools']
build-backend = 'setuptools.build_meta'
+# https://github.com/yt-dlp/yt-dlp/issues/5941
+# https://github.com/pypa/distutils/issues/17
+requires = ['setuptools > 50']
diff --git a/setup.cfg b/setup.cfg
index 2def390f51..6deaa79715 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -26,12 +26,12 @@ markers =
[tox:tox]
skipsdist = true
-envlist = py{36,37,38,39,310},pypy{36,37,38,39}
+envlist = py{36,37,38,39,310,311},pypy{36,37,38,39}
skip_missing_interpreters = true
[testenv] # tox
deps =
- pytest
+ pytest
commands = pytest {posargs:"-m not download"}
passenv = HOME # For test_compat_expanduser
setenv =
diff --git a/supportedsites.md b/supportedsites.md
index a8740e0a2b..a41bb239c2 100644
--- a/supportedsites.md
+++ b/supportedsites.md
@@ -1199,7 +1199,6 @@
- **SaltTVLive**: [salttv]
- **SaltTVRecordings**: [salttv]
- **SampleFocus**
- - **SamplePlugin**: (**Currently broken**)
- **Sangiin**: 参議院インターネット審議中継 (archive)
- **Sapo**: SAPO Vídeos
- **savefrom.net**
@@ -1694,7 +1693,7 @@
- **YouPorn**
- **YourPorn**
- **YourUpload**
- - **youtube+sample+NSIG+AGB**: YouTube
+ - **youtube**: YouTube
- **youtube:clip**
- **youtube:favorites**: YouTube liked videos; ":ytfav" keyword (requires cookies)
- **youtube:history**: Youtube watch history; ":ythis" keyword (requires cookies)
diff --git a/yt_dlp/extractor/common.py b/yt_dlp/extractor/common.py
index b18d2e73eb..ef97599740 100644
--- a/yt_dlp/extractor/common.py
+++ b/yt_dlp/extractor/common.py
@@ -1263,11 +1263,8 @@ class InfoExtractor:
"""
res = self._search_regex(pattern, string, name, default, fatal, flags, group)
if isinstance(res, tuple):
- return [clean_html(r).strip() for r in res]
- elif res:
- return clean_html(res).strip()
- else:
- return res
+ return tuple(map(clean_html, res))
+ return clean_html(res)
def _get_netrc_login_info(self, netrc_machine=None):
username = None
diff --git a/yt_dlp/extractor/drtv.py b/yt_dlp/extractor/drtv.py
index f4df3e2462..d3e197551d 100644
--- a/yt_dlp/extractor/drtv.py
+++ b/yt_dlp/extractor/drtv.py
@@ -2,14 +2,13 @@ import binascii
import hashlib
import re
-
from .common import InfoExtractor
from ..aes import aes_cbc_decrypt_bytes, unpad_pkcs7
from ..compat import compat_urllib_parse_unquote
from ..utils import (
ExtractorError,
- int_or_none,
float_or_none,
+ int_or_none,
mimetype2ext,
str_or_none,
traverse_obj,
@@ -19,7 +18,6 @@ from ..utils import (
url_or_none,
)
-
SERIES_API = 'https://production-cdn.dr-massive.com/api/page?device=web_browser&item_detail_expand=all&lang=da&max_list_prefetch=3&path=%s'
diff --git a/yt_dlp/extractor/xanimu.py b/yt_dlp/extractor/xanimu.py
index 2a1ec2775d..e0b7bf9680 100644
--- a/yt_dlp/extractor/xanimu.py
+++ b/yt_dlp/extractor/xanimu.py
@@ -1,7 +1,7 @@
import re
-from ..utils import int_or_none
from .common import InfoExtractor
+from ..utils import int_or_none
class XanimuIE(InfoExtractor):