mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2026-07-06 10:18:57 +00:00
[cleanup] Misc (#17031)
Closes #17104 Authored by: seproDev, bashonly Co-authored-by: bashonly <88596187+bashonly@users.noreply.github.com>
This commit is contained in:
parent
b6590aaa1e
commit
997fa14084
@ -78,6 +78,13 @@ Core Maintainers are responsible for reviewing and merging contributions, publis
|
|||||||
* Improved/fixed/added ArdMediathek, DRTV, Floatplane, MagentaMusik, Naver, Nebula, OnDemandKorea, Vbox7 etc
|
* Improved/fixed/added ArdMediathek, DRTV, Floatplane, MagentaMusik, Naver, Nebula, OnDemandKorea, Vbox7 etc
|
||||||
|
|
||||||
|
|
||||||
|
## Maintainers
|
||||||
|
|
||||||
|
Maintainers are stewards of the project's codebase who can review and merge pull requests.
|
||||||
|
|
||||||
|
- [doe1080](https://github.com/doe1080)
|
||||||
|
|
||||||
|
|
||||||
## Triage Maintainers
|
## Triage Maintainers
|
||||||
|
|
||||||
Triage Maintainers are frequent contributors who can manage issues and pull requests.
|
Triage Maintainers are frequent contributors who can manage issues and pull requests.
|
||||||
@ -86,5 +93,4 @@ Triage Maintainers are frequent contributors who can manage issues and pull requ
|
|||||||
- [garret1317](https://github.com/garret1317)
|
- [garret1317](https://github.com/garret1317)
|
||||||
- [pzhlkj6612](https://github.com/pzhlkj6612)
|
- [pzhlkj6612](https://github.com/pzhlkj6612)
|
||||||
- [DTrombett](https://github.com/dtrombett)
|
- [DTrombett](https://github.com/dtrombett)
|
||||||
- [doe1080](https://github.com/doe1080)
|
|
||||||
- [grqz](https://github.com/grqz)
|
- [grqz](https://github.com/grqz)
|
||||||
|
|||||||
@ -367,5 +367,20 @@
|
|||||||
"action": "add",
|
"action": "add",
|
||||||
"when": "25056f0d2d47adbd235a8d422fa62d68d0be2bc2",
|
"when": "25056f0d2d47adbd235a8d422fa62d68d0be2bc2",
|
||||||
"short": "[priority] Security: [[CVE-2026-50574](https://nvd.nist.gov/vuln/detail/CVE-2026-50574)] [Arbitrary code execution via manifest downloads with aria2c](https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-vx4q-3cr2-7cg2)\n - Impact is limited to users of `--downloader aria2c`\n - Support for downloading HLS and DASH formats with aria2c has been removed. Users affected by this change should migrate to use `-N` for concurrent fragment downloads via the native downloader"
|
"short": "[priority] Security: [[CVE-2026-50574](https://nvd.nist.gov/vuln/detail/CVE-2026-50574)] [Arbitrary code execution via manifest downloads with aria2c](https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-vx4q-3cr2-7cg2)\n - Impact is limited to users of `--downloader aria2c`\n - Support for downloading HLS and DASH formats with aria2c has been removed. Users affected by this change should migrate to use `-N` for concurrent fragment downloads via the native downloader"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"when": "7b03011294c0210802ffc901390006c39152b999",
|
||||||
|
"short": "[priority] **The minimum *recommended* Python version has been raised to 3.11**\n - Since Python 3.10 will reach its end-of-life in October 2026, support for it will be dropped soon. [Read more](https://github.com/yt-dlp/yt-dlp/issues/16916)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"when": "7b03011294c0210802ffc901390006c39152b999",
|
||||||
|
"short": "[priority] **The official Windows release binaries will soon require Windows 10 or later.** [Read more](https://github.com/yt-dlp/yt-dlp/issues/16917)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action": "add",
|
||||||
|
"when": "b6590aaa1e3808155d69c9a79a797ae484163789",
|
||||||
|
"short": "[priority] Security: [[CVE-2026-55404](https://nvd.nist.gov/vuln/detail/CVE-2026-55404)] [Downstream command injection via improper sanitization of --write-link output](https://github.com/yt-dlp/yt-dlp/security/advisories/GHSA-6v4j-43gg-vj32)\n - Shortcut file data is now properly validated and sanitized when the `--write-link` options are used"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1145,7 +1145,7 @@ class YoutubeDL:
|
|||||||
self.params['logger'].warning(message)
|
self.params['logger'].warning(message)
|
||||||
elif self.params.get('no_warnings'):
|
elif self.params.get('no_warnings'):
|
||||||
if self.params.get('verbose'):
|
if self.params.get('verbose'):
|
||||||
self.to_stderr(f'[debug:warning] {message}', only_once=only_once)
|
self.to_stderr(f'[debug] WARNING: {message}', only_once=only_once)
|
||||||
else:
|
else:
|
||||||
self.to_stderr(f'{self._format_err("WARNING:", self.Styles.WARNING)} {message}', only_once)
|
self.to_stderr(f'{self._format_err("WARNING:", self.Styles.WARNING)} {message}', only_once)
|
||||||
|
|
||||||
|
|||||||
@ -296,7 +296,7 @@ def validate_options(opts):
|
|||||||
default_step = start if op or limit else 0
|
default_step = start if op or limit else 0
|
||||||
return lambda n: min(float(start) + float(step or default_step) * n, float(limit or 'inf'))
|
return lambda n: min(float(start) + float(step or default_step) * n, float(limit or 'inf'))
|
||||||
|
|
||||||
for key, expr in opts.retry_sleep.items():
|
for key, expr in list(opts.retry_sleep.items()):
|
||||||
if not expr:
|
if not expr:
|
||||||
del opts.retry_sleep[key]
|
del opts.retry_sleep[key]
|
||||||
continue
|
continue
|
||||||
|
|||||||
@ -4,6 +4,7 @@ from .common import InfoExtractor
|
|||||||
|
|
||||||
|
|
||||||
class AdobeConnectIE(InfoExtractor):
|
class AdobeConnectIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
_VALID_URL = r'https?://\w+\.adobeconnect\.com/(?P<id>[\w-]+)'
|
_VALID_URL = r'https?://\w+\.adobeconnect\.com/(?P<id>[\w-]+)'
|
||||||
|
|
||||||
def _real_extract(self, url):
|
def _real_extract(self, url):
|
||||||
|
|||||||
@ -11,6 +11,7 @@ from ..utils import (
|
|||||||
|
|
||||||
|
|
||||||
class DigitallySpeakingIE(InfoExtractor):
|
class DigitallySpeakingIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
_VALID_URL = r'https?://(?:s?evt\.dispeak|events\.digitallyspeaking)\.com/(?:[^/]+/)+xml/(?P<id>[^.]+)\.xml'
|
_VALID_URL = r'https?://(?:s?evt\.dispeak|events\.digitallyspeaking)\.com/(?:[^/]+/)+xml/(?P<id>[^.]+)\.xml'
|
||||||
|
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
|
|||||||
@ -10,6 +10,7 @@ from ..utils import (
|
|||||||
|
|
||||||
|
|
||||||
class FolketingetIE(InfoExtractor):
|
class FolketingetIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
IE_DESC = 'Folketinget (ft.dk; Danish parliament)'
|
IE_DESC = 'Folketinget (ft.dk; Danish parliament)'
|
||||||
_VALID_URL = r'https?://(?:www\.)?ft\.dk/webtv/video/[^?#]*?\.(?P<id>[0-9]+)\.aspx'
|
_VALID_URL = r'https?://(?:www\.)?ft\.dk/webtv/video/[^?#]*?\.(?P<id>[0-9]+)\.aspx'
|
||||||
_TEST = {
|
_TEST = {
|
||||||
|
|||||||
@ -2,6 +2,7 @@ from .common import InfoExtractor
|
|||||||
|
|
||||||
|
|
||||||
class KaraoketvIE(InfoExtractor):
|
class KaraoketvIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
_VALID_URL = r'https?://(?:www\.)?karaoketv\.co\.il/[^/]+/(?P<id>\d+)'
|
_VALID_URL = r'https?://(?:www\.)?karaoketv\.co\.il/[^/]+/(?P<id>\d+)'
|
||||||
_TEST = {
|
_TEST = {
|
||||||
'url': 'http://www.karaoketv.co.il/%D7%A9%D7%99%D7%A8%D7%99_%D7%A7%D7%A8%D7%99%D7%95%D7%A7%D7%99/58356/%D7%90%D7%99%D7%96%D7%95%D7%9F',
|
'url': 'http://www.karaoketv.co.il/%D7%A9%D7%99%D7%A8%D7%99_%D7%A7%D7%A8%D7%99%D7%95%D7%A7%D7%99/58356/%D7%90%D7%99%D7%96%D7%95%D7%9F',
|
||||||
|
|||||||
@ -55,6 +55,18 @@ class MangomoloVideoIE(MangomoloBaseIE):
|
|||||||
_TYPE = 'video'
|
_TYPE = 'video'
|
||||||
IE_NAME = 'mangomolo:' + _TYPE
|
IE_NAME = 'mangomolo:' + _TYPE
|
||||||
_SLUG = r'video\?.*?\bid=(?P<id>\d+)'
|
_SLUG = r'video\?.*?\bid=(?P<id>\d+)'
|
||||||
|
_TESTS = [{
|
||||||
|
'url': 'https://player.mangomolo.com/v1/video?id=29431242&user_id=168&signature=b40e58d964532fe09bf81fc08d850752&autoplay=true&fullscreen=yes&base_url=aHR0cHM6Ly9heW4ub20vdmlkZW8vMjk0MzEyNDIvJUQ4JUE3JUQ5JTg0JUQ4JUEzJUQ5JTg1JUQ5JTg2JUQ5JThBJUQ4JUE3JUQ4JUFBLSVEOCVBNyVEOSU4NCVEOCVCMyVEOCVBOCVEOCVCOS0lRDglQTclRDklODQlRDglQUQlRDklODQlRDklODIlRDglQTktOQ%3D%3D&vast=true&app_id=&zone=&filter=DENY&countries=Q0M%3D&language=ar&player_profile=',
|
||||||
|
'info_dict': {
|
||||||
|
'id': '29431242',
|
||||||
|
'ext': 'flv',
|
||||||
|
'title': '29431242',
|
||||||
|
},
|
||||||
|
'expected_warnings': [
|
||||||
|
'Failed to download m3u8 information',
|
||||||
|
'Failed to download MPD manifest',
|
||||||
|
],
|
||||||
|
}]
|
||||||
|
|
||||||
_IS_LIVE = False
|
_IS_LIVE = False
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ from .common import InfoExtractor
|
|||||||
|
|
||||||
|
|
||||||
class OktoberfestTVIE(InfoExtractor):
|
class OktoberfestTVIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
_VALID_URL = r'https?://(?:www\.)?oktoberfest-tv\.de/[^/]+/[^/]+/video/(?P<id>[^/?#]+)'
|
_VALID_URL = r'https?://(?:www\.)?oktoberfest-tv\.de/[^/]+/[^/]+/video/(?P<id>[^/?#]+)'
|
||||||
|
|
||||||
_TEST = {
|
_TEST = {
|
||||||
|
|||||||
@ -10,6 +10,7 @@ from ..utils import (
|
|||||||
|
|
||||||
|
|
||||||
class PlaytvakIE(InfoExtractor):
|
class PlaytvakIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
IE_DESC = 'Playtvak.cz, iDNES.cz and Lidovky.cz'
|
IE_DESC = 'Playtvak.cz, iDNES.cz and Lidovky.cz'
|
||||||
_VALID_URL = r'https?://(?:.+?\.)?(?:playtvak|idnes|lidovky|metro)\.cz/.*\?(?:c|idvideo)=(?P<id>[^&]+)'
|
_VALID_URL = r'https?://(?:.+?\.)?(?:playtvak|idnes|lidovky|metro)\.cz/.*\?(?:c|idvideo)=(?P<id>[^&]+)'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
|
|||||||
@ -5,6 +5,7 @@ from ..utils import int_or_none
|
|||||||
|
|
||||||
|
|
||||||
class RTL2IE(InfoExtractor):
|
class RTL2IE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
IE_NAME = 'rtl2'
|
IE_NAME = 'rtl2'
|
||||||
_VALID_URL = r'https?://(?:www\.)?rtl2\.de/sendung/[^/]+/(?:video/(?P<vico_id>\d+)[^/]+/(?P<vivi_id>\d+)-|folge/)(?P<id>[^/?#]+)'
|
_VALID_URL = r'https?://(?:www\.)?rtl2\.de/sendung/[^/]+/(?:video/(?P<vico_id>\d+)[^/]+/(?P<vivi_id>\d+)-|folge/)(?P<id>[^/?#]+)'
|
||||||
_TESTS = [{
|
_TESTS = [{
|
||||||
|
|||||||
@ -7,6 +7,7 @@ from ..utils import (
|
|||||||
|
|
||||||
|
|
||||||
class ShowRoomLiveIE(InfoExtractor):
|
class ShowRoomLiveIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
_VALID_URL = r'https?://(?:www\.)?showroom-live\.com/(?!onlive|timetable|event|campaign|news|ranking|room)(?P<id>[^/?#&]+)'
|
_VALID_URL = r'https?://(?:www\.)?showroom-live\.com/(?!onlive|timetable|event|campaign|news|ranking|room)(?P<id>[^/?#&]+)'
|
||||||
_TEST = {
|
_TEST = {
|
||||||
'url': 'https://www.showroom-live.com/48_Nana_Okada',
|
'url': 'https://www.showroom-live.com/48_Nana_Okada',
|
||||||
|
|||||||
@ -331,7 +331,7 @@ class KnownLiabilityIE(UnsupportedInfoExtractor):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
URLS = (
|
URLS = (
|
||||||
r'motherless\.com',
|
r'motherless\.\w+',
|
||||||
r'suno\.com',
|
r'suno\.com',
|
||||||
r'udio\.com',
|
r'udio\.com',
|
||||||
)
|
)
|
||||||
|
|||||||
@ -8,6 +8,7 @@ from ..utils import (
|
|||||||
|
|
||||||
|
|
||||||
class WallaIE(InfoExtractor):
|
class WallaIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
_VALID_URL = r'https?://vod\.walla\.co\.il/[^/]+/(?P<id>\d+)/(?P<display_id>.+)'
|
_VALID_URL = r'https?://vod\.walla\.co\.il/[^/]+/(?P<id>\d+)/(?P<display_id>.+)'
|
||||||
_TEST = {
|
_TEST = {
|
||||||
'url': 'http://vod.walla.co.il/movie/2642630/one-direction-all-for-one',
|
'url': 'http://vod.walla.co.il/movie/2642630/one-direction-all-for-one',
|
||||||
|
|||||||
@ -9,6 +9,7 @@ from ..utils import (
|
|||||||
|
|
||||||
|
|
||||||
class WhoWatchIE(InfoExtractor):
|
class WhoWatchIE(InfoExtractor):
|
||||||
|
_WORKING = False
|
||||||
IE_NAME = 'whowatch'
|
IE_NAME = 'whowatch'
|
||||||
_VALID_URL = r'https?://whowatch\.tv/viewer/(?P<id>\d+)'
|
_VALID_URL = r'https?://whowatch\.tv/viewer/(?P<id>\d+)'
|
||||||
|
|
||||||
|
|||||||
@ -181,8 +181,7 @@ def _get_system_deprecation():
|
|||||||
# Do not inappropriately warn for unofficial/third-party binaries
|
# Do not inappropriately warn for unofficial/third-party binaries
|
||||||
if not ORIGIN.startswith('yt-dlp/'):
|
if not ORIGIN.startswith('yt-dlp/'):
|
||||||
return None
|
return None
|
||||||
platform_name = platform.platform()
|
if platform.platform().startswith(('Windows-8', 'Windows-2012Server')):
|
||||||
if any(platform_name.startswith(f'Windows-{name}') for name in ('8', '2012Server')):
|
|
||||||
return (
|
return (
|
||||||
'Support for Windows 8.x and Windows Server 2012 has been deprecated. '
|
'Support for Windows 8.x and Windows Server 2012 has been deprecated. '
|
||||||
'See https://github.com/yt-dlp/yt-dlp/issues/16917 for details.\n'
|
'See https://github.com/yt-dlp/yt-dlp/issues/16917 for details.\n'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user